Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v4.5
Search
    Français
    v4.5

      Gestion des Accès

      Cette section introduit les méthodes sur un objet Connection pour gérer l'accès à l'instance et aux graphsets qu'elle contient, y compris les privilèges, stratégies et utilisateurs.

      Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'exemple complet.

      Privilège

      showPrivilege()

      Récupère tous les privilèges système et privilèges de graph, qui sont en réalité des noms de commandes UQL classés selon leur champ d'application.

      Paramètres :

      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Privilege : Tous les privilèges système et privilèges de graph.

      // Récupère tous les privilèges système et privilèges de graph
      
      let resp = await conn.showPrivilege();
      console.log(resp);
      

      {
        graph_privileges: [
          'TEMPLATE',       'KHOP',            'AB',
          'SPREAD',         'AUTONET',         'FIND',
          'FIND_NODE',      'FIND_EDGE',       'INSERT',
          'EXPORT',         'UPSERT',          'UPDATE',
          'DELETE',         'DELETE_NODE',     'DELETE_EDGE',
          'CREATE_SCHEMA',  'DROP_SCHEMA',     'ALTER_SCHEMA',
          'SHOW_SCHEMA',    'CREATE_TRIGGER',  'DROP_TRIGGER',
          'SHOW_TRIGGER',   'CREATE_BACKUP',   'RESTORE_BACKUP',
          'SHOW_BACKUP',    'CREATE_PROPERTY', 'DROP_PROPERTY',
          'ALTER_PROPERTY', 'SHOW_PROPERTY',   'CREATE_FULLTEXT',
          'DROP_FULLTEXT',  'SHOW_FULLTEXT',   'CREATE_INDEX',
          'DROP_INDEX',     'SHOW_INDEX',      'LTE',
          'UFE',            'CLEAR_TASK',      'STOP_TASK',
          'PAUSE_TASK',     'RESUME_TASK',     'SHOW_TASK',
          'ALGO',           'SHOW_ALGO'
        ],
        system_privileges: [
          'TRUNCATE',      'COMPACT',
          'CREATE_GRAPH',  'SHOW_GRAPH',
          'DROP_GRAPH',    'ALTER_GRAPH',
          'MOUNT_GRAPH',   'UNMOUNT_GRAPH',
          'TOP',           'KILL',
          'STAT',          'SHOW_POLICY',
          'CREATE_POLICY', 'DROP_POLICY',
          'ALTER_POLICY',  'SHOW_USER',
          'CREATE_USER',   'DROP_USER',
          'ALTER_USER',    'GRANT',
          'REVOKE',        'SHOW_PRIVILEGE'
        ]
      }
      

      Stratégie

      showPolicy()

      Récupère toutes les stratégies de l'instance. Une stratégie inclut les privilèges système, privilèges de graph, privilèges de propriété et autres stratégies.

      Paramètres :

      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Policy[] : La liste de toutes les stratégies dans l'instance.

      // Récupère toutes les stratégies et affiche leurs informations
      
      let resp = await conn.showPolicy();
      for (let i of resp.data) {
        console.log("Policy ", i.name, " includes: "),
          console.log("- System privileges: ", i.system_privileges),
          console.log("- Graph privileges: ", i.graph_privileges),
          console.log("- Property privileges: ", i.property_privileges),
          console.log("- Policies: ", i.policies);
      }
      

      Policy  manager  includes: 
      - System privileges:  [ 'DROP_POLICY', 'COMPACT' ]
      - Graph privileges:  { '*': [ 'CREATE_INDEX', 'DROP_TRIGGER', 'CREATE_FULLTEXT' ] }
      - Property privileges:  {
        node: { read: [], write: [], deny: [] },
        edge: { read: [], write: [], deny: [] }
      }
      - Policies:  [ 'operator' ]
      Policy  operator  includes:
      - System privileges:  [ 'MOUNT_GRAPH', 'TRUNCATE', 'SHOW_GRAPH' ]
      - Graph privileges:  { miniCircle: [ 'UPDATE', 'INSERT', 'TEMPLATE', 'UPSERT', 'AUTONET' ] }
      - Property privileges:  {
        node: { read: [], write: [ [Array] ], deny: [] },
        edge: { read: [], write: [], deny: [] }
      }
      - Policies:  []
      

      getPolicy()

      Récupère une stratégie de l'instance par son nom.

      Paramètres :

      • string : Nom de la stratégie.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Policy : La stratégie récupérée.

      // Récupère une stratégie 'operator' et affiche ses informations
      
      let resp = await conn.getPolicy("operator");
      console.log("Policy ", resp.data.name, " includes: "),
        console.log("- System privileges: ", resp.data.system_privileges),
        console.log("- Graph privileges: ", resp.data.graph_privileges),
        console.log("- Property privileges: ", resp.data.property_privileges),
        console.log("- Policies: ", resp.data.policies);
      

      Policy  operator  includes: 
      - System privileges:  [ 'MOUNT_GRAPH', 'TRUNCATE', 'SHOW_GRAPH' ]
      - Graph privileges:  { miniCircle: [ 'UPDATE', 'INSERT', 'TEMPLATE', 'UPSERT', 'AUTONET' ] }
      - Property privileges:  {
        node: { read: [], write: [ [Array] ], deny: [] },
        edge: { read: [], write: [], deny: [] }
      }
      - Policies:  []
      

      createPolicy()

      Crée une stratégie dans l'instance.

      Paramètres :

      • Policy : La stratégie à créer ; le champ name doit être défini, system_privileges, graph_privileges, property_privileges et policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Crée une nouvelle stratégie 'sales' et la récupère ensuite
      
      let myCreate = await conn.createPolicy({
        name: "sales",
        system_privileges: ["SHOW_GRAPH", "TRUNCATE"],
        graph_privileges: {
          miniCircle: [
            "SHOW_ALGO",
            "ALGO",
            "RESUME_TASK",
            "UFE",
            "CREATE_PROPERTY",
          ],
        },
        property_privileges: {
          node: {
            read: [],
            write: [],
            deny: [],
          },
          edge: {
            read: [],
            write: [],
            deny: [],
          },
        },
        policies: ["manager", "operator"],
      });
      
      // Affiche la nouvelle stratégie créée 'sales'
      
      let resp = await conn.getPolicy("sales");
      console.log("Policy", resp.data.name, "includes: "),
        console.log("- System privileges: ", resp.data.system_privileges),
        console.log("- Graph privileges: ", resp.data.graph_privileges),
        console.log("- Property privileges: ", resp.data.property_privileges),
        console.log("- Policies: ", resp.data.policies);
      

      Policy sales includes: 
      - System privileges:  [ 'SHOW_GRAPH', 'TRUNCATE' ]
      - Graph privileges:  {
        '*': [ 'SHOW_ALGO', 'ALGO', 'RESUME_TASK', 'CREATE_PROPERTY', 'UFE' ]
      }
      - Property privileges:  {
        node: { read: [ [Array] ], write: [], deny: [] },
        edge: { read: [ [Array] ], write: [], deny: [] }
      }
      - Policies:  [ 'manager', 'operator' ]
      

      alterPolicy()

      Modifie les privilèges système, privilèges de graph, privilèges de propriété et stratégies d'une stratégie existante dans l'instance par son nom.

      Paramètres :

      • Policy : La stratégie à modifier ; le champ name doit être défini, system_privileges, graph_privileges, property_privileges et policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Modifie la stratégie 'sales' et la récupère ensuite
      
      let myCreate = await conn.alterPolicy({
        name: "sales",
        system_privileges: ["SHOW_GRAPH"],
        graph_privileges: {
          miniCircle: [
            "SHOW_ALGO",
            "ALGO",
            "RESUME_TASK",
            "UFE",
            "CREATE_PROPERTY",
            "FIND",
          ],
          lcc: ["UPDATE"],
        },
        policies: ["operator"],
      });
      
      let resp = await conn.getPolicy("sales");
      console.log("Policy", resp.data.name, "includes: "),
        console.log("- System privileges: ", resp.data.system_privileges),
        console.log("- Graph privileges: ", resp.data.graph_privileges),
        console.log("- Property privileges: ", resp.data.property_privileges),
        console.log("- Policies: ", resp.data.policies);
      

      Policy sales includes: 
      - System privileges:  [ 'SHOW_GRAPH' ]
      - Graph privileges:  {
        miniCircle: [
          'SHOW_ALGO',
          'ALGO',
          'RESUME_TASK',
          'FIND',
          'UFE',
          'CREATE_PROPERTY'
        ],
        lcc: [ 'UPDATE' ]
      }
      - Property privileges:  {
        node: { read: [ [Array] ], write: [], deny: [] },
        edge: { read: [ [Array] ], write: [], deny: [] }
      }
      - Policies:  [ 'operator' ]
      

      dropPolicy()

      Supprime une stratégie de l'instance par son nom.

      Paramètres :

      • string : Nom de la stratégie.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Supprime la stratégie 'sales' et affiche le code d'erreur
      
      let resp = await conn.dropPolicy("sales");
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      Utilisateur

      showUser()

      Récupère tous les utilisateurs de base de données de l'instance.

      Paramètres :

      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • User[] : La liste de tous les utilisateurs dans l'instance.

      // Récupère tous les utilisateurs et affiche les informations du premier retourné
      
      let resp = await conn.showUser();
      let user1 = resp.data[0];
      console.log("Username:", user1.username);
      console.log("Creation timestamp:", user1.create.valueOf());
      console.log("System privileges:", user1.system_privileges);
      console.log("Graph privileges:", user1.graph_privileges);
      console.log("Property privileges:", user1.property_privileges);
      console.log("Policies:", user1.policies);
      

      Username: test006
      Creation timestamp: 1693550276
      System privileges: [
        'SHOW_PRIVILEGE', 'ALTER_USER',
        'DROP_USER',      'CREATE_USER',
        'SHOW_GRAPH',     'ALTER_GRAPH',
        'DROP_GRAPH',     'COMPACT',
        'MOUNT_GRAPH',    'TOP',
        'CREATE_GRAPH',   'STAT',
        'UNMOUNT_GRAPH',  'SHOW_POLICY',
        'TRUNCATE',       'KILL',
        'ALTER_POLICY',   'CREATE_POLICY',
        'DROP_POLICY',    'SHOW_USER'
      ]
      Graph privileges: {}
      Property privileges: {
        node: { read: [], write: [], deny: [ [Array] ] },
        edge: { read: [], write: [], deny: [ [Array] ] }
      }
      Policies: [ 'operator' ]
      

      getUser()

      Récupère un utilisateur de base de données de l'instance par son nom d'utilisateur.

      Paramètres :

      • string : Nom d'utilisateur.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • User : L'utilisateur récupéré.

      // Récupère l'utilisateur 'test005' et affiche ses informations
      
      let resp = await conn.getUser("test005");
      console.log("Username:", resp.data.username);
      console.log("Creation timestamp:", resp.data.create.valueOf());
      console.log("System privileges:", resp.data.system_privileges);
      console.log("Graph privileges:", resp.data.graph_privileges);
      console.log("Property privileges:", resp.data.property_privileges);
      console.log("Policies:", resp.data.policies);
      

      Username: test005
      Creation timestamp: 1693473359
      System privileges: [
        'SHOW_PRIVILEGE', 'ALTER_USER',
        'DROP_USER',      'CREATE_USER',
        'SHOW_GRAPH',     'ALTER_GRAPH',
        'DROP_GRAPH',     'COMPACT',
        'MOUNT_GRAPH',    'TOP',
        'CREATE_GRAPH',   'STAT',
        'UNMOUNT_GRAPH',  'SHOW_POLICY',
        'TRUNCATE',       'KILL',
        'ALTER_POLICY',   'CREATE_POLICY',
        'DROP_POLICY',    'SHOW_USER'
      ]
      Graph privileges: {}
      Property privileges: {
        node: { read: [], write: [], deny: [] },
        edge: { read: [], write: [], deny: [] }
      }
      Policies: [ 'operator' ]
      

      createUser()

      Crée un utilisateur de base de données dans l'instance.

      Paramètres :

      • CreateUser : L'utilisateur à créer ; les champs username et password doivent être définis, system_privileges, graph_privileges, property_privilege et policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Crée un nouvel utilisateur 'NodeJsUser' et affiche le code d'erreur
      
      let resp = await conn.createUser({
        username: "NodeJsUser",
        password: "Password",
        system_privileges: ["SHOW_GRAPH", "TRUNCATE"],
        graph_privileges: {
          miniCircle: [
            "SHOW_ALGO",
            "ALGO",
            "RESUME_TASK",
            "UFE",
            "CREATE_PROPERTY",
            "FIND",
          ],
        },
        property_privileges: {
          node: {
            read: [],
            write: [],
            deny: [],
          },
          edge: {
            read: [],
            write: [],
            deny: [],
          },
        },
        policies: ["manager"],
      });
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      alterUser()

      Modifie le mot de passe, privilèges système, privilèges de graph, privilèges de propriété et stratégies d'un utilisateur de base de données existant dans l'instance par son nom d'utilisateur.

      Paramètres :

      • AlterUser : L'utilisateur à modifier ; le champ username doit être défini, password, systemPrivileges, graphPrivileges, propertyPrivilege et policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Modifie l'utilisateur 'NodeJsUser' et affiche le code d'erreur
      
      let resp = await conn.alterUser({
        username: "NodeJsUser",
        system_privileges: ["SHOW_GRAPH"],
        graph_privileges: {
          miniCircle: ["FIND"],
        },
      
        policies: ["operator"],
      });
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      dropUser()

      Supprime un utilisateur de base de données de l'instance par son nom d'utilisateur.

      Paramètres :

      • string : Nom d'utilisateur.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Supprime l'utilisateur 'NodeJsUser' et affiche le code d'erreur
      
      let resp = await conn.dropUser("NodeJsUser");
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      grantPolicy()

      Accorde de nouveaux privilèges système, privilèges de graph, privilèges de propriété et stratégies à un utilisateur de base de données dans l'instance.

      Paramètres :

      • string : Nom d'utilisateur.
      • GraphPrivilege : Privilèges de graph à accorder ; définit à null pour ignorer l'attribution de privilèges de graph.
      • string[] : Privilèges système à accorder ; définit à null pour ignorer l'attribution de privilèges système.
      • string[] : Stratégies à accorder ; définit à null pour ignorer l'attribution de stratégies.
      • PropertyPrivilege : Privilèges de propriété à accorder ; définit à null pour ignorer l'attribution de privilèges de propriété.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      // Accorde des privilèges et des stratégies à l'utilisateur 'johndoe' et affiche le code d'erreur
      
      let resp = await conn.grantPolicy(
        "johndoe",
        {
          miniCircle: [
            "SHOW_ALGO",
            "ALGO",
            "RESUME_TASK",
            "UFE",
            "CREATE_PROPERTY",
            "FIND",
          ],
        },
        null,
        ["manager"],
        null
      );
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      revokePolicy()

      Révoque les privilèges système, privilèges de graph, privilèges de propriété et stratégies d'un utilisateur de base de données dans l'instance.

      Paramètres :

      • string : Nom d'utilisateur.
      • GraphPrivilege : Privilèges de graph à révoquer ; définit à null pour ignorer la révocation de privilèges de graph.
      • string[] : Privilèges système à révoquer ; définit à null pour ignorer la révocation de privilèges système.
      • string[] : Stratégies à révoquer ; définit à null pour ignorer la révocation de stratégies.
      • PropertyPrivilege : Privilèges de propriété à révoquer ; définit à null pour ignorer la révocation de privilèges de propriété.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Renvoie :

      • Response : Résultat de la requête.

      let resp = await conn.revokePolicy(
        "johndoe",
        {
          miniCircle: ["SHOW_ALGO", "ALGO", "RESUME_TASK"],
        },
        null,
        ["manager"],
        null
      );
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      Exemple Complet

      import { ConnectionPool, ULTIPA } from "@ultipa-graph/ultipa-node-sdk";
      import { GraphExra } from "@ultipa-graph/ultipa-node-sdk/dist/connection/extra/graph.extra";
      import { getEdgesPrintInfo } from "@ultipa-graph/ultipa-node-sdk/dist/printers/edge";
      import { RequestType } from "@ultipa-graph/ultipa-node-sdk/dist/types";
      import { ListFormat } from "typescript";
      
      let sdkUsage = async () => {
        // Paramètres de connexion
        //Exemple d'URI : hosts="mqj4zouys.us-east-1.cloud.ultipa.com:60010"
        let hosts = [
          "192.168.1.85:60061",
          "192.168.1.86:60061",
          "192.168.1.87:60061",
        ];
        let username = "***";
        let password = "***";
        let connPool = new ConnectionPool(hosts, username, password);
      
        // Établit une connexion à la base de données
        let conn = await connPool.getActive();
        let isSuccess = await conn.test();
        console.log(isSuccess);
      
        // Paramètres de la requête
        let requestConfig = <RequestType.RequestConfig>{
          useMaster: true,
        };
      
        // Récupère toutes les stratégies et affiche leurs informations
        let resp = await conn.showPolicy();
        for (let i of resp.data) {
          console.log("Policy ", i.name, " includes: "),
            console.log("- System privileges: ", i.system_privileges),
            console.log("- Graph privileges: ", i.graph_privileges),
            console.log("- Property privileges: ", i.property_privileges),
            console.log("- Policies: ", i.policies);
        }
      };
      
      sdkUsage().then(console.log).catch(console.log);
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写