授权概述¶
授权决定用户能否连接服务组,以及能对其中的资源执行哪些操作。完成用户创建后,按为用户配置访问权限邀请用户并授权。
访问服务组需要满足的条件¶
使用密码连接并访问资源时,需要满足以下条件:
| 条件 | 说明 |
|---|---|
| 用户账号已创建且可以正常使用 | 用户处于启用状态且未被锁定。更多信息,请参见用户管理。 |
| 用户已加入目标服务组 | 具有ADMIN角色的用户使用 INVITE USER 邀请用户。 |
用户具有CONNECT |
允许用户连接目标服务组。 |
| 用户可以访问 Schema | 访问非默认 Schema 需要USAGE。 |
| 用户具有操作资源所需的权限 | 例如,查询图需要MATCH;写入数据可能需要INSERT、UPDATE或DELETE。 |
这些条件相互独立。例如,INVITE USER不会授予CONNECT,CONNECT也不会授予 Schema 或图的访问权限。完整操作步骤请参见为用户配置访问权限。
权限与来源¶
权限表示用户可以对某个资源执行某项操作。例如,图/finance/transactions上的MATCH允许用户查询该图。
Owner(所有者)是负责管理服务组或资源的用户。权限有以下来源:
- 直接授予用户的权限。
- 授予用户的角色中包含的权限。
- 服务组 Owner 自动拥有的内置角色
ADMIN。 - 用户作为资源 Owner 获得的权限。
- 系统提供的权限,例如
/default_schema的USAGE。
用户从不同来源获得的权限会合并生效。只要其中一个来源仍提供某项权限,用户就仍可执行相应操作。
直接授权和角色授权¶
- 直接授权只对指定用户生效,适合临时或个别授权。
- 角色是一组可以重复使用的权限,适合职责相同的多个用户。
每个用户最多可以拥有 16 个自定义角色。不能将角色授予另一个角色。操作步骤请参见管理角色和权限。
ADMIN 角色¶
每个服务组有一个 Owner。该用户具有内置角色ADMIN,可以管理服务组中的用户、角色、权限和资源。
不能使用GRANT ROLE或REVOKE ROLE授予或撤销ADMIN。
资源 Owner¶
资源 Owner 无需显式授权即可管理所拥有的资源。Schema、图类型、图、用户定义过程(UDP)和用户定义函数(UDF)都有 Owner。
如果资源位于非默认 Schema,Owner 身份不会自动提供该 Schema 的访问权限。Owner 仍需具有 Schema 的USAGE。查看或更改 Owner 的方法请参见 SHOW OBJECTS 和 ALTER OWNER。
上级资源权限的适用范围¶
Schema 上的部分权限也适用于其中的资源。例如,Schema /finance上的MATCH ANY GRAPH允许用户查询/finance中的所有图。
Schema USAGE与资源操作权限相互独立。用户需要同时具有USAGE和目标操作所需的权限。完整列表请参见权限参考。
授权方式¶
| 场景 | 推荐方式 |
|---|---|
| 多个用户承担相同职责 | 将权限授予角色,再将角色授予这些用户。 |
| 单个用户需要临时或特殊权限 | 直接向用户授予权限。 |
| 用户需要管理整个服务组 | 更改服务组 Owner。 |
| 用户需要管理特定资源 | 授予所需权限。对于支持变更 Owner 的资源,也可以将 Owner 转移给该用户。 |
权限变更的生效时间¶
- 用户建立新会话时,系统会检查
CONNECT。撤销CONNECT不会结束已有会话。如需立即结束会话,请使用 KILL SESSION。 - 其他权限变更会在同步到 Graph 服务后生效。要验证结果,请使用目标用户重新连接并执行预期操作。
操作指南¶
| 目标 | 阅读内容 |
|---|---|
| 首次为用户开通访问权限 | 为用户配置访问权限 |
| 控制非默认 Schema 的访问 | Schema 访问控制 |
| 为多个用户复用同一组权限 | 管理角色和权限 |
| 查询某类资源支持哪些操作 | 权限参考 |