Un utilisateur est une combinaison de plusieurs privilèges et stratégies, il a une composition similaire à une stratégie.
Conventions de Nommage
Le nom d'utilisateur ne peut pas être partagé entre les utilisateurs dans une instance Ultipa.
- 2 ~ 64 caractères
- Doit commencer par des lettres
- Autoriser l'utilisation de lettres, de soulignés et de chiffres ( _ , A-Z, a-z, 0-9)
- Longueur du mot de passe est de 6~64 sans contrainte sur les caractères utilisés
Afficher l'Utilisateur
Nom de la table retournée : _user
En-tête de la table retournée : username
| create
| graphPrivileges
| systemPrivileges
| propertyPrivileges
| policies
(nom d'utilisateur, heure de création, privilèges de graph, privilèges système, privilèges de propriété, sous stratégies)
Syntaxe:
// Pour afficher tous les utilisateurs dans l'instance actuelle d'Ultipa
show().user()
// Pour afficher un certain utilisateur dans l'instance actuelle d'Ultipa
show().user("<name>")
// Pour afficher l'utilisateur actuellement connecté
show().self()
Créer un Utilisateur
Syntaxe:
// Pour créer un utilisateur dans l'instance actuelle d'Ultipa
create().user(
"<username>",
"<password>",
<{}graph_privileges?>,
<[]system_privileges?>,
<[]policies?>,
<{}property_privileges?>
)
Où les structures de données sont:
// <{}graph_privileges>
{
"<graph1>":["<graph_privilege>", "<graph_privilege>", ...],
"<graph2>":["<graph_privilege>", "<graph_privilege>", ...],
...
}
// <{}property_privileges>
{
"node": {
"read": [
["<graph>", "<@schema?>", "<property?>"],
["<graph>", "<@schema?>", "<property?>"],
...
],
"write": [
["<graph>", "<@schema?>", "<property?>"],
["<graph>", "<@schema?>", "<property?>"],
...
],
"deny": [
["<graph>", "<@schema?>", "<property?>"],
["<graph>", "<@schema?>", "<property?>"],
...
],
},
"edge": {
"read": [
["<graph>", "<@schema?>", "<property?>"],
["<graph>", "<@schema?>", "<property?>"],
...
],
"write": [
["<graph>", "<@schema?>", "<property?>"],
["<graph>", "<@schema?>", "<property?>"],
...
],
"deny": [
["<graph>", "<@schema?>", "<property?>"],
["<graph>", "<@schema?>", "<property?>"],
...
],
}
}
Note 1: Lors de l'utilisation d'un astérisque *
pour remplacer le nom du GraphSet <graphSet>
, le "*"
signifie tous les GraphSets dans l'instance Ultipa actuelle. De même, le "*"
pour remplacer "<@schema>"
ou "<property>"
représente tous les schémas ou toutes les propriétés.
Note 2: Lorsque les principaux éléments du paramètre user()
ne sont pas à déclarer, leurs emplacements doivent encore être tenus par des accolades vides si les éléments suivants doivent être déclarés.
Exemple: Créer l'utilisateur "Ultipa" avec le mot de passe "ultipaABC123", accorder les privilèges de graph UPDATE, ALGO, LTE et UFE pour tous les GraphSets, les privilèges système STAT, TOP et KILL, et le privilège de propriété WRITE à toutes les propriétés de tous les GraphSets
create().user(
"Ultipa",
"ultipaABC123",
{"*": ["UPDATE","ALGO","LTE","UFE"]},
["STAT","TOP","KILL"],
[],
{
"node": {
"write": [["*","*","*"]]
},
"edge": {
"write": [["*","*","*"]]
}
}
)
Modifier un Utilisateur
Syntaxe:
// Pour modifier un certain utilisateur dans l'instance actuelle d'Ultipa
alter().user("<username>").set({
password:"<new?>",
graph_privileges: <{}graph_privileges?>,
system_privileges: <[]system_privileges?>,
policies: <[]policies?>,
property_privileges: <{}property_privileges?>
})
Où les structures de données <{}graph_privileges>
et <{}property_privileges>
sont les mêmes que celles dans la commande create().user()
.
Exemple:Modifier le mot de passe de l'utilisateur Ultipa à "ultipaFast"
alter().user("Ultipa")
.set({password: "ultipaFast"})
Exemple:Modifier l'utilisateur Ultipa, le rendre capable seulement d'acquérir des métadonnées du GraphSet "default"
alter().user("Ultipa").set({
graph_privileges: {"default": ["FIND"]},
property_privileges: {
"node": {
"read": [["default","*","*"]]
},
"edge": {
"read": [["default","*","*"]]
}
}
})
Analyse : Les utilisateurs peuvent interroger et retourner des métadonnées de 'default' seulement lorsque FIND et READ sont accordés pour 'default' et ses métadonnées.
Supprimer un Utilisateur
Syntaxe:
// Pour supprimer un certain utilisateur dans l'instance actuelle d'Ultipa
drop().user("<name>")
Réinitialiser un Utilisateur Admin
La réinitialisation de l'utilisateur admin doit être effectuée sur le serveur Ultipa avec l'outil ultipa-reset-user
, qui n'est pas dans le cadre de l'opération UQL.