用户权限
1.介绍
TuGraph 的权限是基于角色的访问控制进行管理,定义访问控制的权限分配给角色,角色再分配给用户。
2.权限层级
Global 层:即全局权限,对管理、图操作均有权限;
Graph 层:即图级别,对每个图的权限;
(仅商业化版本支持)Property 层:即属性级别,对某个属性的权限控制
3.权限关键字
目前权限的控制较为简洁
Global 层目前为 admin 权限,并且预置了 admin 用户;
Graph 层的操作权限分为四种:none,read,write,full
none:无权限,对于图没有任何操作权限
read:只读权限,对于图只具备读取权限
write:读写权限,对于图不仅具备读取权限,还具备了写入的权限
full:所有权限,对于图不仅具备读写权限,同时也具备删除图、修改图、修改 Schema 等权限
(仅商业化版本支持)Property 层的权限分别为:none,read,write
none:无权限,对于该属性没有任何操作权限
read:只读权限,对于该属性只具备读取权限
write:读写权限,对于该属性不仅具备读取权限,还具备了写入的权限
4.常用权限操作
4.1.用户操作
创建用户
CALL dbms.security.createUser(user_name::STRING,password::STRING)
删除用户
CALL dbms.security.deleteUser(user_name::STRING)
修改当前用户密码
CALL dbms.security.changePassword(current_password::STRING,new_password::STRING)
修改指定用户密码
CALL dbms.security.changeUserPassword(user_name::STRING,new_password::STRING)
禁用/启用用户
CALL dbms.security.disableUser(user::STRING,disable::BOOLEAN)
列出所有用户
CALL dbms.security.listUsers()
列出当前用户信息
CALL dbms.security.showCurrentUser()
获取用户详情
CALL dbms.security.getUserInfo(user::STRING)
4.2.角色操作
创建角色
CALL dbms.security.createRole(role_name::STRING,desc::STRING)
删除角色
CALL dbms.security.deleteRole(role_name::STRING
列出所有角色
CALL dbms.security.listRoles()
禁用/启用角色
CALL dbms.security.disableRole(role::STRING,disable::BOOLEAN)
4.3.赋予用户角色
新增用户与角色的联系
CALL dbms.security.addUserRoles(user::STRING,roles::LIST)
删除用户与角色的联系
CALL dbms.security.deleteUserRoles(user::STRING,roles::LIST)
清空用户角色的关系并重建
CALL dbms.security.rebuildUserRoles(user::STRING,roles::LIST)
4.4.角色赋权
修改角色对指定图的访问权限
CALL dbms.security.modRoleAccessLevel(role::STRING,access_level::MAP)
示例
CALL dbms.security.modRoleAccessLevel("test_role", {test_graph1:"FULL", test_graph2:"NONE"})