管理角色和权限¶
角色用于向多个用户分配同一组权限。本页介绍如何查看授权、创建和分配角色,以及调整或撤销已有权限。首次开通访问权限时,先按为用户配置访问权限操作。
前提条件¶
- 已连接目标服务组。更多信息,请参见连接并完成首次查询。
- 要创建角色、将角色授予用户或从用户撤销角色,执行操作的用户必须具有
ADMIN角色。 - 待授权用户已创建,并已通过
INVITE USER加入当前服务组。 - 示例使用
/default_schema/movie;先加载 movie 示例数据,或将其替换为已有图路径。
查看用户已有的角色和权限¶
查看用户拥有的角色:
SHOW ROLES FOR USER user1
查看已有角色中的权限。将movie_reader替换为实际角色名;尚未创建角色时,先完成下一节:
SHOW PRIVILEGES FOR ROLE movie_reader
查看用户的直接授权和角色授权记录:
SHOW PRIVILEGES FOR USER user1
SHOW PRIVILEGES FOR USER不会完整显示ADMIN、资源 Owner(所有者)或上级资源权限带来的实际权限。因此,调整权限后,还应使用目标用户执行实际操作,确认最终结果。
创建并分配角色¶
如果多个用户需要相同权限,可以创建一个角色并将其分配给这些用户。
-
创建角色。例如,创建只读角色
movie_reader:CREATE ROLE IF NOT EXISTS movie_reader COMMENT "Read movie graph"创建角色的用户将成为角色 Owner(所有者)。角色 Owner 或具有
ADMIN角色的用户可以修改角色描述或删除该角色。只有具有ADMIN角色的用户可以将角色授予用户或从用户撤销角色。 -
向角色授予权限:
''' GRANT CONNECT TO ROLE movie_reader ''' ''' GRANT MATCH ON GRAPH /default_schema/movie TO ROLE movie_reader '''资源位于非默认 Schema 时,还需授予该 Schema 的
USAGE。完整示例见使用角色配置访问权限。执行授权的用户必须是目标资源的 Owner,或者具有
ADMIN角色。有关支持的资源和操作,请参见权限参考。 -
将角色授予用户:
GRANT ROLE movie_reader TO USER user1
一个用户最多可以拥有 16 个自定义角色。用户可以同时拥有多个角色,这些角色中的权限会合并生效。角色只能授予用户,不能授予其他角色。
调整角色¶
向角色增加权限:
GRANT INSERT ON GRAPH /default_schema/movie TO ROLE movie_reader
从角色中撤销权限:
REVOKE INSERT ON GRAPH /default_schema/movie FROM ROLE movie_reader
修改角色描述:
ALTER ROLE movie_reader SET COMMENT = "Read movie data"
修改角色会影响所有拥有该角色的用户。用SHOW PRIVILEGES FOR ROLE movie_reader核对授权记录,再以目标用户验证操作结果。
撤销或删除角色¶
从用户撤销角色:
REVOKE ROLE movie_reader FROM USER user1
删除不再需要的角色:
DROP ROLE movie_reader
如果用户仍通过其他角色、直接授权或 Owner 身份获得相同权限,撤销或删除一个角色后,用户可能仍能执行相应操作。
管理直接授予用户的权限¶
对于单个用户临时或特殊的授权需求,可以直接授权:
GRANT MATCH ON GRAPH /default_schema/movie TO USER user1
不再需要时,撤销该权限:
REVOKE MATCH ON GRAPH /default_schema/movie FROM USER user1
直接授权适合少量特殊情况。多个用户需要相同权限时,建议使用角色,避免逐个调整用户权限。
管理资源 Owner¶
即使没有显式授权,资源 Owner 也可以管理其拥有的资源。可以使用ALTER OWNER转移 Schema、图类型、图或 UDP 的 Owner:
ALTER OWNER GRAPH /default_schema/movie TO USER user1
转移 Owner 不会自动授予非默认 Schema 的USAGE。新 Owner 如果需要访问该资源,仍必须具有父级 Schema 的访问权限。Owner 可以执行的操作请参见权限参考,命令语法请参见 ALTER OWNER。
命令参考¶
- 角色管理:CREATE ROLE、ALTER ROLE 和 DROP ROLE。
- 为用户分配角色:GRANT ROLE 和 REVOKE ROLE。
- 授予或撤销权限:GRANT 和 REVOKE。
- 查看角色、权限和 Owner:SHOW ALL ROLES、SHOW ROLES、SHOW PRIVILEGES 和 SHOW OBJECTS。