用户权限

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"})