GRANT ROLE¶
为用户或其他角色分配角色:
将一个角色授予另一个角色时,会在角色之间建立“父子”关系(也称为 * 角色层次结构 *)。
将角色授予用户后,用户即可执行该角色允许的所有操作(通过授予角色的访问权限实现)。
有关更多详细信息,请参阅 访问控制概述。
语法¶
GRANT ROLE <name> TO { ROLE <parent_role_name> | USER <user_name> }
参数¶
name
指定要授予的角色的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
ROLE parent_role_name
将角色授予指定角色。
USER user_name
将角色授予指定用户。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
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 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
无需将系统定义的角色(包括 PUBLIC)授予其他角色,因为系统角色的角色层次结构由 Snowflake 定义和维护。
示例¶
GRANT ROLE analyst TO ROLE SYSADMIN;
GRANT ROLE analyst TO USER user1;