跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

管理角色和权限

角色用于向多个用户分配同一组权限。本页介绍如何查看授权、创建和分配角色,以及调整或撤销已有权限。首次开通访问权限时,先按为用户配置访问权限操作。

前提条件

  • 已连接目标服务组。更多信息,请参见连接并完成首次查询。
  • 要创建角色、将角色授予用户或从用户撤销角色,执行操作的用户必须具有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(所有者)或上级资源权限带来的实际权限。因此,调整权限后,还应使用目标用户执行实际操作,确认最终结果。

创建并分配角色

如果多个用户需要相同权限,可以创建一个角色并将其分配给这些用户。

  1. 创建角色。例如,创建只读角色movie_reader:

    CREATE ROLE IF NOT EXISTS movie_reader COMMENT "Read movie graph"
    

    创建角色的用户将成为角色 Owner(所有者)。角色 Owner 或具有ADMIN角色的用户可以修改角色描述或删除该角色。只有具有ADMIN角色的用户可以将角色授予用户或从用户撤销角色。

  2. 向角色授予权限:

    '''
    GRANT CONNECT TO ROLE movie_reader
    '''
    
    '''
    GRANT MATCH ON GRAPH /default_schema/movie TO ROLE movie_reader
    '''
    

    资源位于非默认 Schema 时,还需授予该 Schema 的USAGE。完整示例见使用角色配置访问权限。

    执行授权的用户必须是目标资源的 Owner,或者具有ADMIN角色。有关支持的资源和操作,请参见权限参考。

  3. 将角色授予用户:

    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。

命令参考