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, 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 de graph, qui sont en fait des noms de commandes UQL catégorisées en fonction de leur champ d'application.
Paramètres :
RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
Privilege
: Tous les privilèges système et les privilèges de graph.
# Récupère tous les privilèges système et les privilèges de graph
privilege = Conn.showPrivilege()
print("Privilèges système:", privilege.systemPrivileges)
print("Privilèges de graph:", privilege.graphPrivileges)
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']
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']
Stratégie
showPolicy()
Récupère toutes les stratégies de l'instance. Une stratégie comprend des privilèges système, des privilèges de graph, des privilèges de propriété et d'autres stratégies.
Paramètres :
RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
List[Policy]
: La liste de toutes les stratégies dans l'instance.
# Récupère toutes les stratégies et imprime leurs informations
policyList = Conn.showPolicy()
for policy in policyList:
print("Policy", policy.name, "include:")
print("- Privilèges système:", policy.systemPrivileges)
print("- Privilèges de graph:", policy.graphPrivileges)
print("- Privilèges de propriété:", policy.propertyPrivileges)
print("- Stratégies:", policy.policies)
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 :
str
: Nom de la stratégie.RequestConfig
(Facultatif): 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 imprime ses informations
policy = Conn.getPolicy("operator")
print("Policy", policy.name, "include:")
print("- Privilèges système:", policy.systemPrivileges)
print("- Privilèges de graph:", policy.graphPrivileges)
print("- Privilèges de propriété:", policy.propertyPrivileges)
print("- Stratégies:", policy.policies)
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: []
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 facultatifs.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
# Crée une nouvelle stratégie 'sales' et la récupère ensuite
policy = Policy(
name="sales",
systemPrivileges=["SHOW_GRAPH","TRUNCATE"],
graphPrivileges={
"lcc": ["UPDATE","INSERT","DELETE","UPSERT"]
},
propertyPrivileges={
"node": {
"read": [
["miniCircle", "account", "*"],
["miniCircle", "movie", "name"]
],
"write": [
["lcc", "*", "*"]
]
},
"edge": {
"read": [
["*", "*", "*"]
],
"write": [
["miniCircle", "*", "*"]
]
}
},
policies=['manager', "operator"]
)
response = Conn.createPolicy(policy)
print(response.status.code)
time.sleep(3)
createdPolicy = Conn.getPolicy("sales")
print("Policy", createdPolicy.name, "include:")
print("- Privilèges système:", createdPolicy.systemPrivileges)
print("- Privilèges de graph:", createdPolicy.graphPrivileges)
print("- Privilèges de propriété:", createdPolicy.propertyPrivileges)
print("- Stratégies:", createdPolicy.policies)
0
Policy sales include:
- System privileges: ['SHOW_GRAPH', 'TRUNCATE']
- Graph privileges: {'lcc': ['UPDATE', 'INSERT', 'DELETE', 'UPSERT']}
- Property privileges: {"node":{"read":[["miniCircle","account","*"],["miniCircle","movie","name"]],"write":[["lcc","*","*"]],"deny":[]},"edge":{"read":[["*","*","*"]],"write":[["miniCircle","*","*"]],"deny":[]}}
- Policies: ['manager', 'operator']
alterPolicy()
Modifie les privilèges système, les privilèges de graph, les privilèges de 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 champname
doit être défini,systemPrivileges
,graphPrivileges
,propertyPrivilege
etpolicies
sont facultatifs.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
# Modifie la stratégie 'sales' et la récupère ensuite
policy = Policy(
name="sales",
systemPrivileges=["SHOW_GRAPH"],
graphPrivileges={
"miniCircle": ["FIND"],
"lcc": ["UPDATE"]
},
policies=["operator"]
)
response = Conn.alterPolicy(policy)
print(response.status.code)
time.sleep(3)
alteredPolicy = Conn.getPolicy("sales")
print("Policy", alteredPolicy.name, "include:")
print("- Privilèges système:", alteredPolicy.systemPrivileges)
print("- Privilèges de graph:", alteredPolicy.graphPrivileges)
print("- Privilèges de propriété:", alteredPolicy.propertyPrivileges)
print("- Stratégies:", alteredPolicy.policies)
0
Policy sales include:
- System privileges: ['SHOW_GRAPH']
- Graph privileges: {'miniCircle': ['FIND'], 'lcc': ['UPDATE']}
- Property privileges: {"node":{"read":[["miniCircle","account","*"],["miniCircle","movie","name"]],"write":[["lcc","*","*"]],"deny":[]},"edge":{"read":[["*","*","*"]],"write":[["miniCircle","*","*"]],"deny":[]}}
- Policies: ['operator']
dropPolicy()
Supprime une stratégie de l'instance par son nom.
Paramètres :
str
: Nom de la stratégie.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
# Supprime la stratégie 'sales' et imprime le code d'erreur
response = Conn.dropPolicy("sales")
print(response.status.code)
0
Utilisateur
showUser()
Récupère tous les utilisateurs de la base de données de l'instance.
Paramètres :
RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
List[User]
: La liste de tous les utilisateurs dans l'instance.
# Récupère tous les utilisateurs et imprime les informations du premier retourné
userList = Conn.showUser()
print("Nom d'utilisateur:", userList[0].username)
print("Créé le:", userList[0].create)
print("Privilèges système:", userList[0].systemPrivileges)
print("Privilèges de graph:", userList[0].graphPrivileges)
print("Privilèges de propriété:", userList[0].propertyPrivileges)
print("Stratégies:", userList[0].policies)
Username: test006
Created On: 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":[["*","*","*"]]},"edge":{"read":[],"write":[],"deny":[["*","*","*"]]}}
Policies: ['operator']
getUser()
Récupère un utilisateur de la base de données de l'instance par son nom d'utilisateur.
Paramètres :
str
: Nom d'utilisateur.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
User
: L'utilisateur récupéré.
# Récupère l'utilisateur 'test005' et imprime ses informations
user = Conn.getUser("test005")
print("Nom d'utilisateur:", user.username)
print("Créé le:", user.create)
print("Privilèges système:", user.systemPrivileges)
print("Privilèges de graph:", user.graphPrivileges)
print("Privilèges de propriété:", user.propertyPrivileges)
print("Stratégies:", user.policies)
Username: test005
Created On: 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 champsusername
etpassword
doivent être définis,systemPrivileges
,graphPrivileges
,propertyPrivilege
etpolicies
sont facultatifs.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
# Crée un nouvel utilisateur 'pythonUser' et imprime le code d'erreur
createUser = CreateUser(
username="pythonUser",
password="@#pythonUser",
systemPrivileges=["SHOW_GRAPH", "TRUNCATE"],
graphPrivileges={
"miniCircle": ["FIND", "SPREAD", "AUTONET", "AB", "TEMPLATE", "KHOP"],
"lcc": ["UPDATE", "INSERT", "DELETE", "UPSERT"]
},
propertyPrivileges={
"node": {
"read": [
["miniCircle", "account", "*"],
["miniCircle", "movie", "name"]
],
"write": [
["lcc", "*", "*"]
]
},
"edge": {
"read": [
["*", "*", "*"]
],
"write": [
["miniCircle", "*", "*"]
]
}
},
policies=["manager"]
)
response = Conn.createUser(createUser)
print(response.status.code)
0
alterUser()
Modifie le mot de passe, les privilèges système, les privilèges de graph, les privilèges de propriété et les 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 facultatifs.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
# Modifie l'utilisateur 'pythonUser' et imprime le code d'erreur
user = AlterUser(
username="pythonUser",
password="!!@#pythonUser",
systemPrivileges=["SHOW_GRAPH"],
graphPrivileges={
"miniCircle": ["FIND"],
"lcc": ["UPDATE"]
},
policies=["operator"]
)
response = Conn.alterUser(user)
print(response.status.code)
0
dropUser()
Supprime un utilisateur de base de données de l'instance par son nom d'utilisateur.
Paramètres :
str
: Nom d'utilisateur.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
# Supprime l'utilisateur 'javaUser' et imprime le code d'erreur
response = Conn.dropUser("pythonUser")
print(response.status.code)
0
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 :
str
: Nom d'utilisateur.dict
: Privilèges de graph à accorder ; met ànull
pour ignorer l'octroi de privilèges de graph.List[str]
: Privilèges système à accorder ; met ànull
pour ignorer l'octroi de privilèges système.List[str]
: Stratégies à accorder ; met ànull
pour ignorer l'octroi de stratégies.dict
: Privilèges de propriété à accorder ; met ànull
pour ignorer l'octroi de privilèges de propriété.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
graphPrivileges = {
"miniCircle": ["FIND", "SPREAD", "AUTONET", "AB", "TEMPLATE", "KHOP"],
"default": ["UPDATE", "INSERT", "DELETE", "UPSERT"]
}
systemPrivileges = ["SHOW_GRAPH", "TRUNCATE"]
propertyPrivileges = {
"node": {
"read": [
["miniCircle", "account", "*"],
["miniCircle", "movie", "name"]
],
"write": [
["lcc", "*", "*"]
]
},
"edge": {
"read": [
["*", "*", "*"]
],
"write": [
["miniCircle", "*", "*"]
]
}
}
policies = ["operator", "manager"]
response1 = Conn.grantPolicy("johndoe", graphPrivileges)
print(response1.status.code)
response2 = Conn.grantPolicy("Tester", graphPrivileges, systemPrivileges, policies, propertyPrivileges)
print(response2.status.code)
0
0
revokePolicy()
Révoque des privilèges système, des privilèges de graph, des privilèges de propriété et des stratégies à un utilisateur de base de données dans l'instance.
Paramètres :
str
: Nom d'utilisateur.dict
: Privilèges de graph à révoquer ; met ànull
pour ignorer la révocation de privilèges de graph.List[str]
: Privilèges système à révoquer ; met ànull
pour ignorer la révocation de privilèges système.List[str]
: Stratégies à révoquer ; met ànull
pour ignorer la révocation de stratégies.dict
: Privilèges de propriété à révoquer ; met ànull
pour ignorer la révocation de privilèges de propriété.RequestConfig
(Facultatif): Paramètres de configuration pour la requête.
Renvoie :
UltipaResponse
: Résultat de la requête.
graphPrivileges = {
"miniCircle": ["FIND", "SPREAD", "AUTONET", "AB", "TEMPLATE", "KHOP"],
"default": ["UPDATE", "INSERT", "DELETE", "UPSERT"]
}
systemPrivileges = ["SHOW_GRAPH", "TRUNCATE"]
propertyPrivileges = {
"node": {
"read": [
["miniCircle", "account", "*"],
["miniCircle", "movie", "name"]
],
"write": [
["lcc", "*", "*"]
]
},
"edge": {
"read": [
["*", "*", "*"]
],
"write": [
["miniCircle", "*", "*"]
]
}
}
policies = ["operator", "manager"]
response1 = Conn.revokePolicy("johndoe", graphPrivileges)
print(response1.status.code)
response2 = Conn.revokePolicy("Tester", graphPrivileges, systemPrivileges, policies, propertyPrivileges)
print(response2.status.code)
0
0
Exemple Complet
from ultipa import Connection, UltipaConfig
ultipaConfig = UltipaConfig()
# URI example: ultipaConfig.hosts = ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"]
ultipaConfig.username = "<username>"
ultipaConfig.password = "<password>"
Conn = Connection.NewConnection(defaultConfig=ultipaConfig)
# Récupère toutes les stratégies et imprime leurs informations
policyList = Conn.showPolicy()
for policy in policyList:
print("Policy", policy.name, "include:")
print("- Privilèges système:", policy.systemPrivileges)
print("- Privilèges de graph:", policy.graphPrivileges)
print("- Privilèges de propriété:", policy.propertyPrivileges)
print("- Stratégies:", policy.policies)