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 présente des méthodes sur un objet Connection pour gérer l'accès à l'instance et aux graphsets qu'il contient, y compris les privilèges, les stratégies et les 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 les privilèges graph, qui sont en réalité des noms de commandes UQL classés selon leur champ d'application opérationnel.

      Paramètres :

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

      Retourne :

      • List<Privilege> : Tous les privilèges système et les privilèges graph.

      // Récupère tous les privilèges système et les privilèges graph
      
      var res = await ultipa.ShowPrivilege();
      var graphL = new List<string>();
      var systemL = new List<string>();
      foreach (var item in res)
      {
          if (item.Level == 0)
          {
              graphL.Add(item.Name);
          }
          else
          {
              systemL.Add(item.Name);
          }
      }
      Console.WriteLine("Graph privileges: ");
      Console.WriteLine(JsonConvert.SerializeObject(graphL));
      Console.WriteLine("System privileges: ");
      Console.WriteLine(JsonConvert.SerializeObject(systemL));
      

      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, les privilèges graph, les privilèges propriété et d'autres stratégies.

      Paramètres :

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

      Retourne :

      • List<Policy> : La liste de toutes les stratégies dans l'instance.

      // Récupère toutes les stratégies et imprime leurs informations
      
      var res = await ultipa.ShowPolicy();
      foreach (var item in res)
      {
          Console.WriteLine($"Policy '{item.Name}' include:");
          Console.WriteLine(
              "- System privileges: " + JsonConvert.SerializeObject(item.SystemPrivileges)
          );
          Console.WriteLine(
              "- Graph privileges: " + JsonConvert.SerializeObject(item.GraphPrivileges)
          );
          Console.WriteLine(
              "- Property privileges:" + JsonConvert.SerializeObject(item.PropertyPrivileges)
          );
          Console.WriteLine("- Policies:" + JsonConvert.SerializeObject(item.SubPolicies));
      }
      

      Policy 'operator' include:
      - System privileges: ["MOUNT_GRAPH","TRUNCATE","SHOW_GRAPH"]
      - Graph privileges: {"miniCircle":["UPDATE","INSERT","TEMPLATE","UPSERT","AUTONET"]}
      - Property privileges:{"node":{"read":[["*","*","*"]],"write":[["*","*","*"],["miniCircle","account","*"]],"deny":[]},"edge":{"read":[["*","*","*"]],"write":[["*","*","*"]],"deny":[]}}
      - Policies:[]
      Policy 'manager' include:
      - 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"]
      

      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.

      Retourne :

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

      // Récupère une stratégie 'operator' et imprime ses informations
      
      var res = await ultipa.GetPolicy("operator");
      Console.WriteLine("Policy 'operator' includes:");
      Console.WriteLine(
          "- System privileges: " + JsonConvert.SerializeObject(res.SystemPrivileges)
      );
      Console.WriteLine(
          "- Graph privileges: " + JsonConvert.SerializeObject(res.GraphPrivileges)
      );
      Console.WriteLine(
          "- Property privileges: " + JsonConvert.SerializeObject(res.PropertyPrivileges)
      );
      Console.WriteLine("- Policies: " + JsonConvert.SerializeObject(res.SubPolicies));
      

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

      CreatePolicy()

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

      Paramètres :

      • Policy: La stratégie à modifier; le champ Name doit être défini, SystemPrivileges, GraphPrivileges, PropertyPrivileges et Policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

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

      // Crée une nouvelle stratégie 'sales' et la récupère ensuite
      
      Policy policy = new Policy()
      {
          Name = "sales",
          
          // Privilèges système
          SystemPrivileges = new List<string> { "SHOW_GRAPH", "TRUNCATE" },
          
          // Privilèges graph
          GraphPrivileges = new()
          {
              {
                  "miniCircle",
                  new List<string>
                  {
                      "SHOW_ALGO",
                      "ALGO",
                      "RESUME_TASK",
                      "UFE",
                      "CREATE_PROPERTY",
                  }
              },
              {
                  "lcc",
                  new List<string> { "UPDATE", "INSERT", "DELETE", "UPSERT" }
              },
          },
      
          //Privilèges propriété
          PropertyPrivileges = new PropertyPrivilegeMap()
          {
              NodePrivileges = new PropertyPrivilegeMapItem()
              {
                  Read = new List<List<string>>()
                  {
                      new() { "miniCircle", "account", "*" },
                      new() { "miniCircle", "movie", "name" },
                  },
                  Write = new List<List<string>>()
                  {
                      new() { "lcc", "*", "*" },
                  },
                  Deny = new List<List<string>>(),
              },
          },
      
          // Politiques
          SubPolicies = new List<string> { "manager", "operator" },
      };
      
      var newPol = await ultipa.CreatePolicy(policy);
      
      // Imprime la nouvelle stratégie 'sales' 
      
      var res = await ultipa.GetPolicy("sales");
      Console.WriteLine($"Policy '{res.Name}' includes:");
      Console.WriteLine(
          "- System privileges: " + JsonConvert.SerializeObject(res.SystemPrivileges)
      );
      Console.WriteLine(
          "- Graph privileges: " + JsonConvert.SerializeObject(res.GraphPrivileges)
      );
      Console.WriteLine(
          "- Property privileges: " + JsonConvert.SerializeObject(res.PropertyPrivileges)
      );
      Console.WriteLine("- Policies: " + JsonConvert.SerializeObject(res.SubPolicies));
      

      Policy 'sales' includes:
      - System privileges: ["SHOW_GRAPH","TRUNCATE"]
      - Graph privileges: {"miniCircle":["SHOW_ALGO","ALGO","RESUME_TASK","CREATE_PROPERTY","UFE"],"lcc":["UPDATE","INSERT","DELETE","UPSERT"]}
      - Property privileges: {"node":{"read":[["*","*","*"],["miniCircle","account","*"],["miniCircle","movie","name"]],"write":[["*","*","*"],["lcc","*","*"]],"deny":[]},"edge":{"read":[["*","*","*"],["*","*","*"]],"write":[["*","*","*"],["*","*","*"]],"deny":[]}}
      - Policies: ["manager","operator"]
      

      AlterPolicy()

      Modifie les privilèges système, les privilèges graph, les privilèges propriété et les 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, SystemPrivileges, GraphPrivileges, PropertyPrivileges et Policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

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

      // Modifie la stratégie 'sales' et la récupère ensuite
      
      Policy policy = new Policy()
      {
          Name = "sales",
          SystemPrivileges = new List<string> { "SHOW_GRAPH" },
          GraphPrivileges = new()
          {
              {
                  "miniCircle",
                  new List<string> { "FIND" }
              },
              {
                  "lcc",
                  new List<string> { "UPDATE" }
              },
          },
          SubPolicies = new List<string> { "operator" },
      }
      
      var alterPol = await ultipa.AlterPolicy(policy);
      Console.WriteLine(alterPol.Status.ErrorCode);
      
      var res = await ultipa.GetPolicy("sales");
      Console.WriteLine($"Policy '{res.Name}' includes:");
      Console.WriteLine(
          "- System privileges: " + JsonConvert.SerializeObject(res.SystemPrivileges)
      );
      Console.WriteLine(
          "- Graph privileges: " + JsonConvert.SerializeObject(res.GraphPrivileges)
      );
      Console.WriteLine(
          "- Property privileges: " + JsonConvert.SerializeObject(res.PropertyPrivileges)
      );
      Console.WriteLine("- Policies: " + JsonConvert.SerializeObject(res.SubPolicies));
      

      Success
      Policy 'sales' includes:
      - System privileges: ["SHOW_GRAPH"]
      - Graph privileges: {"miniCircle":["FIND"],"lcc":["UPDATE"]}
      - Property privileges: {"node":{"read":[["*","*","*"],["*","*","*"]],"write":[["*","*","*"],["*","*","*"]],"deny":[]},"edge":{"read":[["*","*","*"],["*","*","*"]],"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.

      Retourne :

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

      // Supprime la stratégie 'sales' et imprime le code d'erreur
      
      var res = await ultipa.DropPolicy("sales");
      Console.WriteLine(res.Status.ErrorCode);
      

      Success
      

      Utilisateur

      ShowUser()

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

      Paramètres :

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

      Retourne :

      • List<User> : La liste de tous les utilisateurs dans l'instance.

      // Récupère tous les utilisateurs et imprime les informations du premier retourné
      
      var res = await ultipa.ShowUser();
      Console.WriteLine("Username: " + res[0].Username);
      Console.WriteLine("Created on: " + res[0].CreatedTime);
      Console.WriteLine(
          "System privileges: " + JsonConvert.SerializeObject(res[0].SystemPrivileges)
      );
      Console.WriteLine(
          "Graph privileges: " + JsonConvert.SerializeObject(res[0].GraphPrivileges)
      );
      Console.WriteLine(
          "Property privileges: " + JsonConvert.SerializeObject(res[0].GraphPrivileges)
      );
      Console.WriteLine("Policies: " + JsonConvert.SerializeObject(res[0].Policies));
      

      Username: test006
      Created on: 9/1/2023 6:37:56 AM
      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: {}
      Policies: ["operator"]
      

      GetUser()

      Récupère un utilisateur de la 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.

      Retourne :

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

      // Récupère l'utilisateur 'test005' et imprime ses informations
      
      var res = await ultipa.GetUser("test005");
      Console.WriteLine("Username: " + res.Username);
      Console.WriteLine("Created on: " + res.CreatedTime);
      Console.WriteLine(
          "System privileges: " + JsonConvert.SerializeObject(res.SystemPrivileges)
      );
      Console.WriteLine("Graph privileges: " + JsonConvert.SerializeObject(res.GraphPrivileges));
      Console.WriteLine(
          "Property privileges: " + JsonConvert.SerializeObject(res.GraphPrivileges)
      );
      Console.WriteLine("Policies: " + JsonConvert.SerializeObject(res.Policies));
      

      Username: test005
      Created on: 8/31/2023 9:15:59 AM
      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: {}
      Policies: ["operator"]
      

      CreateUser()

      Crée un utilisateur dans l'instance.

      Paramètres :

      • User: L'utilisateur à créer; les champs Username et Password doivent être définis, SystemPrivilegess, GraphPrivileges, PropertyPrivileges et Policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

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

      // Crée un nouvel utilisateur 'CSharpUser' et imprime le code d'erreur
      User newUser = new User()
      {
          Username = "CSharpUser",
          Password = "Password",
          Privileges = new Policy()
          {
              GraphPrivileges = new()
              {
                  {
                      "miniCircle",
                      new List<string>
                      {
                          "SHOW_ALGO",
                          "ALGO",
                          "RESUME_TASK",
                          "UFE",
                          "CREATE_PROPERTY",
                      }
                  },
              },
              SystemPrivileges = new() { "SHOW_GRAPH", "TRUNCATE" },
              PropertyPrivileges = new PropertyPrivilegeMap()
              {
                  NodePrivileges = new PropertyPrivilegeMapItem()
                  {
                      Read = new List<List<string>>()
                      {
                          new() { "miniCircle", "account", "*" },
                          new() { "miniCircle", "movie", "name" },
                      },
                      Write = new List<List<string>>()
                      {
                          new() { "lcc", "*", "*" },
                      },
                      Deny = new List<List<string>>(),
                  },
              },
              SubPolicies = new() { "manager", "operator" },
          },
      };
      

      Success
      

      AlterUser()

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

      Paramètres :

      • User: L'utilisateur à modifier; le champ Username doit être défini, Password, SystemPrivilegess, GraphPrivileges, PropertyPrivileges et Policies sont optionnels.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

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

      // Modifie l'utilisateur 'CSharpUser' et imprime le code d'erreur
      User newUser = new User()
      {
          Username = "CSharpUser",
          Password = "Password123",
          Privileges = new Policy()
          {
              GraphPrivileges = new()
              {
                  {
                      "miniCircle",
                      new() { "FIND" }
                  },
                  {
                      "lcc",
                      new() { "UPDATE" }
                  },
              },
              SystemPrivileges = new() { "SHOW_GRAPH" },
              SubPolicies = new() { "operator" },
          },
      };
      
      var res = await ultipa.AlterUser(newUser);
      Console.WriteLine(res.Status.ErrorCode);
      

      Success
      

      DropUser()

      Supprime un utilisateur de la 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.

      Retourne :

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

      // Supprime l'utilisateur 'CSharpUser' et imprime le code d'erreur
      
      var res = await ultipa.DropUser("CSharpUser");
      Console.WriteLine(res.Status.ErrorCode);
      

      Success
      

      GrantPolicy()

      Accorde des stratégies à un utilisateur de base de données dans l'instance.

      Paramètres :

      • string: Nom d'utilisateur.
      • List<string>: Stratégies à accorder.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

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

      // Accorde les stratégies 'operator' et 'manager' à l'utilisateur 'johndoe' et imprime le code d'erreur
      var res = await ultipa.GrantPolicy("johndoe", policies: new() { "operator", "manager" });
      Console.WriteLine(res.Status.ErrorCode);
      

      Success
      

      RevokePolicy()

      Révoque des stratégies à un utilisateur de base de données dans l'instance.

      Paramètres :

      • string: Nom d'utilisateur.
      • List<string>: Stratégies à révoquer.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

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

      var res = await ultipa.RevokePolicy("johndoe", policies: new() { "operator", "manager" });
      Console.WriteLine(res.Status.ErrorCode);
      

      Success
      

      Exemple Complet

      using System.Data;
      using System.Security.Cryptography.X509Certificates;
      using System.Xml.Linq;
      using Google.Protobuf.WellKnownTypes;
      using Microsoft.Extensions.Logging;
      using Newtonsoft.Json;
      using UltipaService;
      using UltipaSharp;
      using UltipaSharp.api;
      using UltipaSharp.configuration;
      using UltipaSharp.connection;
      using UltipaSharp.exceptions;
      using UltipaSharp.structs;
      using UltipaSharp.utils;
      using Logger = UltipaSharp.utils.Logger;
      using Property = UltipaSharp.structs.Property;
      using Schema = UltipaSharp.structs.Schema;
      
      class Program
      {
          static async Task Main(string[] args)
          {
              // Connexion configurations
              //URI example: Hosts=new[]{"mqj4zouys.us-east-1.cloud.ultipa.com:60010"}
              var myconfig = new UltipaConfig()
              {
                  Hosts = new[] { "192.168.1.85:60061", "192.168.1.86:60061", "192.168.1.87:60061" },
                  Username = "***",
                  Password = "***",
              };
      
              // Établit la connexion à la base de données
              var ultipa = new Ultipa(myconfig);
              var isSuccess = ultipa.Test();
              Console.WriteLine(isSuccess);
      
              // Configurations de requête
              RequestConfig requestConfig = new RequestConfig()
              {
                  UseMaster = true,
                  Graph = "miniCircle",
              };
      
      
              // Récupère toutes les stratégies et imprime leurs informations
              var res = await ultipa.ShowPolicy();
              foreach (var item in res)
              {
                  Console.WriteLine($"Policy '{item.Name}' include:");
                  Console.WriteLine(
                      "- System privileges: " + JsonConvert.SerializeObject(item.SystemPrivileges)
                  );
                  Console.WriteLine(
                      "- Graph privileges: " + JsonConvert.SerializeObject(item.GraphPrivileges)
                  );
                  Console.WriteLine(
                      "- Property privileges:" + JsonConvert.SerializeObject(item.PropertyPrivileges)
                  );
                  Console.WriteLine("- Policies:" + JsonConvert.SerializeObject(item.SubPolicies));
              }
            
          }
      }
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写