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