GRANT ROLE

为用户或其他角色分配角色:

  • 将一个角色授予另一个角色时,会在角色之间建立“父子”关系(也称为 * 角色层次结构 *)。

  • 将角色授予用户后,用户即可执行该角色允许的所有操作(通过授予角色的访问权限实现)。

有关更多详细信息,请参阅 访问控制概述

另请参阅:

REVOKE ROLE

GRANT DATABASE ROLEREVOKE DATABASE ROLE

GRANT <privileges>

语法

GRANT ROLE <name> TO { ROLE <parent_role_name> | USER <user_name> }
Copy

参数

name

指定要授予的角色的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

ROLE parent_role_name

将角色授予指定角色。

USER user_name

将角色授予指定用户。

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

OWNERSHIP

角色

授予用户或其他角色的角色。

或者,使用具有全局 MANAGE GRANTS 权限的角色。Only the SECURITYADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 无需将系统定义的角色(包括 PUBLIC)授予其他角色,因为系统角色的角色层次结构由 Snowflake 定义和维护。

示例

GRANT ROLE analyst TO ROLE SYSADMIN;
Copy
GRANT ROLE analyst TO USER user1;
Copy
语言: 中文