Cette section présente des 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 des graphs, qui sont en réalité des noms de commandes UQL classés en fonction de leur portée d'opération.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Privilege
: Tous les privilèges système et privilèges des graphs.
// Récupère tous les privilèges système et privilèges des graphs
Privilege privilege = client.showPrivilege();
System.out.println("Privilèges système: " + privilege.getSystemPrivileges());
System.out.println("Privilèges des graphs: " + privilege.getGraphPrivileges());
Privilèges système: [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]
Privilèges des graphs: [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]
Stratégie
showPolicy()
Récupère toutes les stratégies de l'instance. Une stratégie inclut les privilèges système, privilèges des graphs, privilèges des properties 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 de l'instance.
// Récupère toutes les stratégies et imprime leurs informations
List<Policy> policyList = client.showPolicy();
for (Policy policy : policyList) {
System.out.println("Stratégie '" + policy.getName() + "' inclut:");
System.out.println("- Privilèges système : " + policy.getSystemPrivileges());
System.out.println("- Privilèges des graphs : " + policy.getGraphPrivileges());
System.out.println("- Privilèges des properties : " + policy.getPropertyPrivileges());
System.out.println("- Stratégies : " + policy.getPolicies());
}
Stratégie 'manager' inclut:
- Privilèges système : [DROP_POLICY, COMPACT]
- Privilèges des graphs : {*=[CREATE_INDEX, DROP_TRIGGER, CREATE_FULLTEXT]}
- Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[], write=[], deny=[]), edge=PropertyPrivilegeElement(read=[], write=[], deny=[]))
- Stratégies : [operator]
Stratégie 'operator' inclut:
- Privilèges système : [MOUNT_GRAPH, TRUNCATE, SHOW_GRAPH]
- Privilèges des graphs : {miniCircle=[UPDATE, INSERT, TEMPLATE, UPSERT, AUTONET]}
- Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[], write=[PropertyPrivilegeValue(graphName=miniCircle, schemaName=account, propertyName=*)], deny=[]), edge=PropertyPrivilegeElement(read=[], write=[], deny=[]))
- Stratégies : []
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
Policy policy = client.getPolicy("operator");
System.out.println("Stratégie '" + policy.getName() + "' inclut:");
System.out.println("- Privilèges système : " + policy.getSystemPrivileges());
System.out.println("- Privilèges des graphs : " + policy.getGraphPrivileges());
System.out.println("- Privilèges des properties : " + policy.getPropertyPrivileges());
System.out.println("- Stratégies : " + policy.getPolicies());
Stratégie 'operator' inclut:
- Privilèges système : [MOUNT_GRAPH, TRUNCATE, SHOW_GRAPH]
- Privilèges des graphs : {miniCircle=[UPDATE, INSERT, TEMPLATE, UPSERT, AUTONET]}
- Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[], write=[PropertyPrivilegeValue(graphName=miniCircle, schemaName=account, propertyName=*)], deny=[]), edge=PropertyPrivilegeElement(read=[], write=[], deny=[]))
- Stratégies : []
createPolicy()
Crée une stratégie dans l'instance.
Paramètres :
Policy
: La stratégie à créer ; le champname
doit être défini,systemPrivileges
,graphPrivileges
,propertyPrivilege
etpolicies
sont optionnels.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Crée une nouvelle stratégie 'sales' et la récupère ensuite
Policy policy = new Policy();
policy.setName("sales");
// Privilèges système
policy.setSystemPrivileges(Lists.newArrayList("SHOW_GRAPH","TRUNCATE"));
// Privilèges des graphs
Map<String,List<String>> graphPrivileges = new HashMap<>();
graphPrivileges.put("miniCircle", Lists.newArrayList("FIND","SPREAD","AUTONET","AB","TEMPLATE","KHOP"));
graphPrivileges.put("lcc", Lists.newArrayList("UPDATE","INSERT","DELETE","UPSERT"));
policy.setGraphPrivileges(graphPrivileges);
// Privilèges des properties
PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
PropertyPrivilegeElement node = new PropertyPrivilegeElement();
PropertyPrivilegeValue nodeValue1 = new PropertyPrivilegeValue();
nodeValue1.setGraphName("miniCircle");
nodeValue1.setSchemaName("account");
PropertyPrivilegeValue nodeValue2 = new PropertyPrivilegeValue();
nodeValue2.setGraphName("miniCircle");
nodeValue2.setSchemaName("movie");
nodeValue2.setPropertyName("name");
PropertyPrivilegeValue nodeValue3 = new PropertyPrivilegeValue();
nodeValue3.setGraphName("lcc");
nodeValue3.setSchemaName("*");
nodeValue3.setPropertyName("*");
node.setRead(Lists.newArrayList(nodeValue1,nodeValue2));
node.setWrite(Lists.newArrayList(nodeValue3));
propertyPrivilege.setNode(node);
PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
PropertyPrivilegeValue edgeValue1 = new PropertyPrivilegeValue();
edgeValue1.setGraphName("*");
PropertyPrivilegeValue edgeValue2 = new PropertyPrivilegeValue();
edgeValue2.setGraphName("miniCircle");
edgeValue2.setSchemaName("*");
edgeValue2.setPropertyName("*");
edge.setRead(Lists.newArrayList(edgeValue1));
edge.setWrite(Lists.newArrayList(edgeValue2));
propertyPrivilege.setEdge(edge);
policy.setPropertyPrivileges(propertyPrivilege);
// Stratégies
policy.setPolicies(Lists.newArrayList("manager", "operator"));
Response response = client.createPolicy(policy);
System.out.println(response.getStatus().getErrorCode());
Thread.sleep(3000);
Policy policy1 = client.getPolicy("sales");
System.out.println("Stratégie '" + policy1.getName() + "' inclut:");
System.out.println("- Privilèges système : " + policy1.getSystemPrivileges());
System.out.println("- Privilèges des graphs : " + policy1.getGraphPrivileges());
System.out.println("- Privilèges des properties : " + policy1.getPropertyPrivileges());
System.out.println("- Stratégies : " + policy1.getPolicies());
SUCCESS
Stratégie 'sales' inclut:
- Privilèges système : [SHOW_GRAPH, TRUNCATE]
- Privilèges des graphs : {miniCircle=[FIND, SPREAD, AUTONET, AB, TEMPLATE, KHOP], lcc=[UPDATE, INSERT, DELETE, UPSERT]}
- Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[PropertyPrivilegeValue(graphName=miniCircle, schemaName=account, propertyName=*), PropertyPrivilegeValue(graphName=miniCircle, schemaName=movie, propertyName=name)], write=[PropertyPrivilegeValue(graphName=lcc, schemaName=*, propertyName=*)], deny=[]), edge=PropertyPrivilegeElement(read=[PropertyPrivilegeValue(graphName=*, schemaName=*, propertyName=*)], write=[PropertyPrivilegeValue(graphName=miniCircle, schemaName=*, propertyName=*)], deny=[]))
- Stratégies : [manager, operator]
alterPolicy()
Modifie les privilèges système, privilèges des graphs, privilèges des properties et stratégies d'une stratégie existante dans l'instance par son nom.
Paramètres :
Policy
: La stratégie à modifier ; le champname
doit être défini,systemPrivileges
,graphPrivileges
,propertyPrivilege
etpolicies
sont optionnels.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Modifie la stratégie 'sales' et la récupère ensuite
Policy policy = new Policy();
policy.setName("sales");
// Privilèges système
policy.setSystemPrivileges(Lists.newArrayList("SHOW_GRAPH"));
// Privilèges des graphs
Map<String,List<String>> graphPrivileges = new HashMap<>();
graphPrivileges.put("miniCircle", Lists.newArrayList("FIND"));
graphPrivileges.put("lcc", Lists.newArrayList("UPDATE"));
policy.setGraphPrivileges(graphPrivileges);
// Stratégies
policy.setPolicies(Lists.newArrayList("operator"));
Response response = client.alterPolicy(policy);
System.out.println(response.getStatus().getErrorCode());
Thread.sleep(3000);
Policy policy1 = client.getPolicy("sales");
System.out.println("Stratégie '" + policy1.getName() + "' inclut:");
System.out.println("- Privilèges système : " + policy1.getSystemPrivileges());
System.out.println("- Privilèges des graphs : " + policy1.getGraphPrivileges());
System.out.println("- Privilèges des properties : " + policy1.getPropertyPrivileges());
System.out.println("- Stratégies : " + policy1.getPolicies());
SUCCESS
Stratégie 'sales' inclut:
- Privilèges système : [SHOW_GRAPH]
- Privilèges des graphs : {miniCircle=[FIND], lcc=[UPDATE]}
- Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[PropertyPrivilegeValue(graphName=miniCircle, schemaName=account, propertyName=*), PropertyPrivilegeValue(graphName=miniCircle, schemaName=movie, propertyName=name)], write=[PropertyPrivilegeValue(graphName=lcc, schemaName=*, propertyName=*)], deny=[]), edge=PropertyPrivilegeElement(read=[PropertyPrivilegeValue(graphName=*, schemaName=*, propertyName=*)], write=[PropertyPrivilegeValue(graphName=miniCircle, schemaName=*, propertyName=*)], deny=[]))
- Stratégies : [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 :
Response
: Résultat de la requête.
// Supprime la stratégie 'sales' et imprime le code d'erreur
Response response = client.dropPolicy("sales");
System.out.println(response.getStatus().getErrorCode());
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 de l'instance.
// Récupère tous les utilisateurs et imprime les informations du premier utilisateur retourné
List<User> userList = client.showUser();
System.out.println("Nom d'utilisateur : " + userList.get(0).getUsername());
System.out.println("Créé le : " + userList.get(0).getCreate());
System.out.println("Privilèges système : " + userList.get(0).getSystemPrivileges());
System.out.println("Privilèges des graphs : " + userList.get(0).getGraphPrivileges());
System.out.println("Privilèges des properties : " + userList.get(0).getPropertyPrivileges());
System.out.println("Stratégies : " + userList.get(0).getPolicies());
Nom d'utilisateur : test006
Créé le : Fri Sep 01 14:37:56 CST 2023
Privilèges système : [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]
Privilèges des graphs : {miniCircle831=[SHOW_ALGO, DROP_SCHEMA, ALTER_PROPERTY, ALGO, CREATE_PROPERTY, SHOW_SCHEMA, FIND, DROP_PROPERTY, RESUME_TASK, UPDATE, EXPORT, KHOP, SHOW_INDEX, TEMPLATE, CREATE_SCHEMA, SHOW_TASK, ALTER_SCHEMA, AUTONET, SHOW_TRIGGER, LTE, CREATE_TRIGGER, UFE, DROP_TRIGGER, UPSERT, SHOW_PROPERTY, DELETE, CREATE_FULLTEXT, SPREAD, DROP_FULLTEXT, INSERT, CREATE_INDEX, DROP_INDEX, CLEAR_TASK, SHOW_FULLTEXT, STOP_TASK, AB, PAUSE_TASK]}
Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[], write=[], deny=[PropertyPrivilegeValue(graphName=*, schemaName=*, propertyName=*)]), edge=PropertyPrivilegeElement(read=[], write=[], deny=[PropertyPrivilegeValue(graphName=*, schemaName=*, propertyName=*)]))
Stratégies : [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.
Retourne :
User
: L'utilisateur récupéré.
// Récupère l'utilisateur 'test005' et imprime ses informations
User user = client.getUser("test005");
System.out.println("Nom d'utilisateur : " + user.getUsername());
System.out.println("Créé le : " + user.getCreate());
System.out.println("Privilèges système : " + user.getSystemPrivileges());
System.out.println("Privilèges des graphs : " + user.getGraphPrivileges());
System.out.println("Privilèges des properties : " + user.getPropertyPrivileges());
System.out.println("Stratégies : " + user.getPolicies());
Nom d'utilisateur : test005
Créé le : Thu Aug 31 17:15:59 CST 2023
Privilèges système : [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]
Privilèges des graphs : {miniCircle831=[SHOW_ALGO, DROP_SCHEMA, ALTER_PROPERTY, ALGO, CREATE_PROPERTY, SHOW_SCHEMA, FIND, DROP_PROPERTY, RESUME_TASK, UPDATE, EXPORT, KHOP, SHOW_INDEX, TEMPLATE, CREATE_SCHEMA, SHOW_TASK, ALTER_SCHEMA, AUTONET, SHOW_TRIGGER, LTE, CREATE_TRIGGER, UFE, DROP_TRIGGER, UPSERT, SHOW_PROPERTY, DELETE, CREATE_FULLTEXT, SPREAD, DROP_FULLTEXT, INSERT, CREATE_INDEX, DROP_INDEX, CLEAR_TASK, SHOW_FULLTEXT, STOP_TASK, AB, PAUSE_TASK]}
Privilèges des properties : PropertyPrivilege(node=PropertyPrivilegeElement(read=[], write=[], deny=[]), edge=PropertyPrivilegeElement(read=[], write=[], deny=[]))
Stratégies : [operator]
createUser()
Crée un utilisateur de base de données dans l'instance.
Paramètres :
CreateUser
: L'utilisateur à créer ; les champsusername
etpassword
doivent être définis,systemPrivileges
,graphPrivileges
,propertyPrivilege
etpolicies
sont optionnels.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Crée un nouvel utilisateur 'javaUser' et imprime le code d'erreur
CreateUser createUser = new CreateUser();
createUser.setUsername("javaUser");
createUser.setPassword("@#javaUser");
// Privilèges système
createUser.setSystemPrivileges(Lists.newArrayList(SystemPrivilege.SHOW_GRAPH, SystemPrivilege.TRUNCATE));
// Privilèges des graphs
Map<String,List<GraphPrivilege>> graphPrivileges = new HashMap<>();
graphPrivileges.put("miniCircle", Lists.newArrayList(GraphPrivilege.FIND, GraphPrivilege.SPREAD, GraphPrivilege.AUTONET, GraphPrivilege.AB, GraphPrivilege.TEMPLATE, GraphPrivilege.KHOP));
graphPrivileges.put("lcc", Lists.newArrayList(GraphPrivilege.UPDATE, GraphPrivilege.INSERT, GraphPrivilege.DELETE, GraphPrivilege.UPSERT));
createUser.setGraphPrivileges(graphPrivileges);
// Privilèges des properties
PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
PropertyPrivilegeElement node = new PropertyPrivilegeElement();
PropertyPrivilegeValue nodeValue1 = new PropertyPrivilegeValue();
nodeValue1.setGraphName("miniCircle");
nodeValue1.setSchemaName("account");
PropertyPrivilegeValue nodeValue2 = new PropertyPrivilegeValue();
nodeValue2.setGraphName("miniCircle");
nodeValue2.setSchemaName("movie");
nodeValue2.setPropertyName("name");
PropertyPrivilegeValue nodeValue3 = new PropertyPrivilegeValue();
nodeValue3.setGraphName("lcc");
nodeValue3.setSchemaName("*");
nodeValue3.setPropertyName("*");
node.setRead(Lists.newArrayList(nodeValue1,nodeValue2));
node.setWrite(Lists.newArrayList(nodeValue3));
propertyPrivilege.setNode(node);
PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
PropertyPrivilegeValue edgeValue1 = new PropertyPrivilegeValue();
edgeValue1.setGraphName("*");
PropertyPrivilegeValue edgeValue2 = new PropertyPrivilegeValue();
edgeValue2.setGraphName("miniCircle");
edgeValue2.setSchemaName("*");
edgeValue2.setPropertyName("*");
edge.setRead(Lists.newArrayList(edgeValue1));
edge.setWrite(Lists.newArrayList(edgeValue2));
propertyPrivilege.setEdge(edge);
createUser.setPropertyPrivileges(propertyPrivilege);
// Stratégies
createUser.setPolicies(Lists.newArrayList("manager"));
Response response = client.createUser(createUser);
System.out.println(response.getStatus().getErrorCode());
SUCCESS
alterUser()
Modifie le mot de passe, les privilèges système, les privilèges des graphs, les privilèges des properties 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 ; les champsusername
etpassword
doivent être définis,systemPrivileges
,graphPrivileges
,propertyPrivilege
etpolicies
sont optionnels.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Modifie l'utilisateur 'javaUser' et imprime le code d'erreur
AlterUser alterUser = new AlterUser();
alterUser.setUsername("javaUser");
alterUser.setPassword("!!@#javaUser");
// Privilèges système
alterUser.setSystemPrivileges(Lists.newArrayList(SystemPrivilege.SHOW_GRAPH));
// Privilèges des graphs
Map<String,List<GraphPrivilege>> graphPrivileges = new HashMap<>();
graphPrivileges.put("miniCircle", Lists.newArrayList(GraphPrivilege.FIND));
graphPrivileges.put("lcc", Lists.newArrayList(GraphPrivilege.UPDATE));
alterUser.setGraphPrivileges(graphPrivileges);
// Stratégies
alterUser.setPolicies(Lists.newArrayList("operator"));
Response response = client.alterUser(alterUser);
System.out.println(response.getStatus().getErrorCode());
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.
Retourne :
Response
: Résultat de la requête.
// Supprime l'utilisateur 'javaUser' et imprime le code d'erreur
Response response = client.dropUser("javaUser");
System.out.println(response.getStatus().getErrorCode());
SUCCESS
grantPolicy()
Accorde de nouveaux privilèges système, privilèges des graphs, privilèges des properties et stratégies à un utilisateur de base de données dans l'instance.
Paramètres :
String
: Nom d'utilisateur.Map<String,List<GraphPrivilege>>
: Privilèges des graphs à accorder ; définissez ànull
pour ignorer l'octroi de privilèges des graphs.List<SystemPrivilege>
: Privilèges système à accorder ; définissez ànull
pour ignorer l'octroi de privilèges système.PropertyPrivilege
: Privilèges des properties à accorder ; définissez ànull
pour ignorer l'octroi de privilèges des properties.List<String>
: Stratégies à accorder ; définissez ànull
pour ignorer l'octroi de stratégies.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Privilèges des graphs
Map<String,List<GraphPrivilege>> graphPrivileges = new HashMap<>();
graphPrivileges.put("miniCircle", Lists.newArrayList(GraphPrivilege.FIND,GraphPrivilege.SPREAD,GraphPrivilege.AUTONET,GraphPrivilege.AB,GraphPrivilege.TEMPLATE,GraphPrivilege.KHOP));
graphPrivileges.put("default", Lists.newArrayList(GraphPrivilege.UPDATE,GraphPrivilege.INSERT,GraphPrivilege.DELETE,GraphPrivilege.UPSERT));
// Privilèges système
List<SystemPrivilege> systemPrivileges = Lists.newArrayList(SystemPrivilege.SHOW_GRAPH,SystemPrivilege.TRUNCATE);
// Privilèges des properties
PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
PropertyPrivilegeElement node = new PropertyPrivilegeElement();
PropertyPrivilegeValue nodeValue1 = new PropertyPrivilegeValue();
nodeValue1.setGraphName("miniCircle");
nodeValue1.setSchemaName("account");
PropertyPrivilegeValue nodeValue2 = new PropertyPrivilegeValue();
nodeValue2.setGraphName("miniCircle");
nodeValue2.setSchemaName("movie");
nodeValue2.setPropertyName("name");
PropertyPrivilegeValue nodeValue3 = new PropertyPrivilegeValue();
nodeValue3.setGraphName("default");
nodeValue3.setSchemaName("*");
nodeValue3.setPropertyName("*");
node.setRead(Lists.newArrayList(nodeValue1, nodeValue2));
node.setWrite(Lists.newArrayList(nodeValue3));
propertyPrivilege.setNode(node);
PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
PropertyPrivilegeValue edgeValue1 = new PropertyPrivilegeValue();
edgeValue1.setGraphName("*");
PropertyPrivilegeValue edgeValue2 = new PropertyPrivilegeValue();
edgeValue2.setGraphName("miniCircle");
edgeValue2.setSchemaName("*");
edgeValue2.setPropertyName("*");
edge.setRead(Lists.newArrayList(edgeValue1));
edge.setWrite(Lists.newArrayList(edgeValue2));
propertyPrivilege.setEdge(edge);
// Stratégies
List<String> policyList = Arrays.asList("operator", "manager");
Response response1 = client.grantPolicy("johndoe", graphPrivileges,null,null,null);
System.out.println(response1.getStatus().getErrorCode());
Response response2 = client.grantPolicy("Tester", null,systemPrivileges,propertyPrivilege,policyList);
System.out.println(response2.getStatus().getErrorCode());
SUCCESS
SUCCESS
revokePolicy()
Révoque les privilèges système, privilèges des graphs, privilèges des properties et stratégies d'un utilisateur de base de données dans l'instance.
Paramètres :
String
: Nom d'utilisateur.Map<String,List<GraphPrivilege>>
: Privilèges des graphs à révoquer ; définissez ànull
pour ignorer la révocation de privilèges des graphs.List<SystemPrivilege>
: Privilèges système à révoquer ; définissez ànull
pour ignorer la révocation de privilèges système.PropertyPrivilege
: Privilèges des properties à révoquer ; définissez ànull
pour ignorer la révocation de privilèges des properties.List<String>
: Stratégies à révoquer ; définissez ànull
pour ignorer la révocation de stratégies.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Privilèges des graphs
Map<String,List<GraphPrivilege>> graphPrivileges = new HashMap<>();
graphPrivileges.put("miniCircle", Lists.newArrayList(GraphPrivilege.FIND,GraphPrivilege.SPREAD,GraphPrivilege.AUTONET,GraphPrivilege.AB,GraphPrivilege.TEMPLATE,GraphPrivilege.KHOP));
graphPrivileges.put("default", Lists.newArrayList(GraphPrivilege.UPDATE,GraphPrivilege.INSERT,GraphPrivilege.DELETE,GraphPrivilege.UPSERT));
// Privilèges système
List<SystemPrivilege> systemPrivileges = Lists.newArrayList(SystemPrivilege.SHOW_GRAPH,SystemPrivilege.TRUNCATE);
// Privilèges des properties
PropertyPrivilege propertyPrivilege = new PropertyPrivilege();
PropertyPrivilegeElement node = new PropertyPrivilegeElement();
PropertyPrivilegeValue nodeValue1 = new PropertyPrivilegeValue();
nodeValue1.setGraphName("miniCircle");
nodeValue1.setSchemaName("account");
PropertyPrivilegeValue nodeValue2 = new PropertyPrivilegeValue();
nodeValue2.setGraphName("miniCircle");
nodeValue2.setSchemaName("movie");
nodeValue2.setPropertyName("name");
PropertyPrivilegeValue nodeValue3 = new PropertyPrivilegeValue();
nodeValue3.setGraphName("default");
nodeValue3.setSchemaName("*");
nodeValue3.setPropertyName("*");
node.setRead(Lists.newArrayList(nodeValue1, nodeValue2));
node.setWrite(Lists.newArrayList(nodeValue3));
propertyPrivilege.setNode(node);
PropertyPrivilegeElement edge = new PropertyPrivilegeElement();
PropertyPrivilegeValue edgeValue1 = new PropertyPrivilegeValue();
edgeValue1.setGraphName("*");
PropertyPrivilegeValue edgeValue2 = new PropertyPrivilegeValue();
edgeValue2.setGraphName("miniCircle");
edgeValue2.setSchemaName("*");
edgeValue2.setPropertyName("*");
edge.setRead(Lists.newArrayList(edgeValue1));
edge.setWrite(Lists.newArrayList(edgeValue2));
propertyPrivilege.setEdge(edge);
// Stratégies
List<String> policyList = Arrays.asList("operator", "manager");
Response response1 = client.revokePolicy("johndoe", graphPrivileges,null,null,null);
System.out.println(response1.getStatus().getErrorCode());
Response response2 = client.revokePolicy("Tester", null,systemPrivileges,propertyPrivilege,policyList);
System.out.println(response2.getStatus().getErrorCode());
SUCCESS
SUCCESS
Exemple Complet
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.RequestConfig;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
import com.ultipa.sdk.operate.entity.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
// Connection configurations
UltipaConfiguration myConfig = UltipaConfiguration.config()
// URI example: .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60611,192.168.1.87:60611,192.168.1.88:60611")
.username("<username>")
.password("<password>");
UltipaClientDriver driver = null;
try {
// Establishes connection to the database
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
Thread.sleep(3000);
// Request configurations
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUseMaster(true);
// Retrieves all policies and prints their information
List<Policy> policyList = client.showPolicy(requestConfig);
for (Policy policy : policyList) {
System.out.println("Stratégie '" + policy.getName() + "' inclut:");
System.out.println("- Privilèges système : " + policy.getSystemPrivileges());
System.out.println("- Privilèges des graphs : " + policy.getGraphPrivileges());
System.out.println("- Privilèges des properties : " + policy.getPropertyPrivileges());
System.out.println("- Stratégies : " + policy.getPolicies());
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
if (driver != null) {
driver.close();
}
}
}
}