CREATE APPLICATION ROLE¶
创建新的应用程序角色或替换现有的应用程序角色。使用应用程序角色来为应用程序对象内的各个对象启用访问控制安全。
有关更多信息,请参阅 关于应用程序角色。
备注
应用程序角色只在应用程序对象的上下文中有效。
在创建应用程序角色时,您可以向应用程序角色授予对对象的权限。在设置脚本中,您可以将应用程序角色授予其他应用程序角色。
安装 Snowflake Native App 后,使用者可将应用程序角色授予账户角色,以启用对应用程序的访问。
通过应用程序角色,可以为应用程序中的其他对象或使用者账户中应用程序所拥有的对象授予权限。
应用程序角色会被隐式授予应用程序所有者 WITH GRANT OPTION应用程序所有者可以将这些角色授予账户级别角色,从而提供对应用程序拥有的对象的访问权限。
此外,该命令还支持以下变体:
CREATE OR ALTER APPLICATION ROLE:创建新的应用程序角色(如果不存在)或更改现有的应用程序角色。
- 另请参阅:
ALTER APPLICATION ROLE、GRANT APPLICATION ROLE、REVOKE APPLICATION ROLE、SHOW APPLICATION ROLES、CREATE OR ALTER <对象>
语法¶
CREATE [ OR REPLACE ] APPLICATION ROLE [ IF NOT EXISTS ] <name>
[ COMMENT = '<string_literal>' ]
变体语法¶
CREATE OR ALTER APPLICATION ROLE¶
如果应用程序角色尚不存在,则创建一个新的应用程序角色,或者将现有的应用程序角色转换为语句中定义的角色。CREATE OR ALTER APPLICATION ROLE 语句遵循 CREATE APPLICATION ROLE 语句的语法规则,并具有与 ALTER APPLICATION ROLE 语句相同的限制。
CREATE OR ALTER APPLICATION ROLE <name>
[ COMMENT = '<string_literal>' ]
有关更多信息,请参阅 CREATE OR ALTER APPLICATION ROLE 使用说明。
必填参数¶
name
指定应用程序角色的标识符。该值在创建角色的应用程序对象中必须是唯一的。
标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如
"My object"
)。放在双引号内的标识符也区分大小写。如果未以
application_name.application_role_name
形式完全限定标识符,则该命令会在会话的当前应用程序中创建应用程序角色。有关更多详细信息,请参阅 标识符要求。
可选参数¶
COMMENT = 'string_literal'
指定应用程序角色的注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
OWNERSHIP |
应用程序角色 |
需要为 现有 应用程序角色执行 CREATE OR ALTER APPLICATION 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). |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
一般使用说明¶
应用程序对象中可创建的应用程序角色数量上限为 1000 个。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
CREATE OR ALTER APPLICATION ROLE 使用说明¶
ALTER APPLICATION ROLE 命令的所有限制均适用。
不支持设置或取消设置标签;然而,现有标签不会被 CREATE OR ALTER APPLICATION ROLE 语句更改,依然保持原样。
示例¶
CREATE APPLICATION ROLE app_role
COMMENT = 'Application role for the Hello Snowflake application.';