CREATE ROLE¶
创建新角色或替换系统中的现有角色。
创建角色后,您可以为该角色授予对象权限,然后将该角色授予其他角色或单个用户,以启用系统对象的访问控制安全性。
该命令支持以下变体:
CREATE OR ALTER ROLE:创建角色(如果不存在)或更改现有角色。
语法¶
CREATE [ OR REPLACE ] ROLE [ IF NOT EXISTS ] <name>
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
变体语法¶
CREATE OR ALTER ROLE¶
如果角色尚不存在,则创建一个新角色,或者将现有角色转换为语句中定义的角色。CREATE OR ALTER ROLE 语句遵循 CREATE ROLE 语句的语法规则,并具有与 ALTER ROLE 语句相同的限制。
CREATE OR ALTER ROLE <name>
[ COMMENT = '<string_literal>' ]
有关更多信息,请参阅 CREATE OR ALTER ROLE 使用说明。
必填参数¶
name
角色的标识符;对于您的账户来说,必须是唯一的。
标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
可选参数¶
COMMENT = 'string_literal'
指定角色的注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE ROLE |
账户 |
Only the USERADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
OWNERSHIP |
数据库角色 |
为 现有 角色执行 CREATE OR ALTER ROLE 语句时为必需。 OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
一般使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
CREATE OR ALTER ROLE 使用说明¶
ALTER ROLE 命令的所有限制均适用。
不支持设置或取消设置标签;然而,现有标签不会被 CREATE OR ALTER ROLE 语句所更改,而是保持不变。
示例¶
CREATE ROLE myrole;