USE SECONDARY ROLES¶
指定会话的活动/当前次要角色。当前处于活动状态的次要角色可设置上下文,用以确定当前用户是否具有执行 SQL 操作所需的权限。
请注意,执行 CREATE <object> 语句以创建对象的授权由主要角色提供。
有关更多信息,请参阅 次要角色执行。
- 另请参阅:
语法¶
参数¶
ALL除 当前处于活动状态的主要角色外,已授予用户的所有其他角色。
请注意,在执行每个 SQL 语句时,角色集都会重新进行评估。如果向用户授予其他角色,并且该用户执行新的 SQL 语句,则新授予的角色是新 SQL 语句的活动次要角色。 同样的逻辑也适用于从用户处撤销的角色。
NONE禁用次要角色。对所有 SQL 操作的授权都通过主要角色提供。
role_name [ , role_name ... ]激活指定的角色作为次要角色。次要角色可以是用户定义的账户角色或系统角色。指定存储在 Snowflake 中的角色名称。
如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
有关更多信息,请参阅 标识符要求。
使用说明¶
指定单个角色名称时:
每个指定的角色都必须已授予当前用户。该命令会立即验证每个指定角色;如果存在未授予的角色,则命令会报错失败。
该命令会记录会话所需的次要角色集合。在后续每条 SQL 语句中实际激活的角色可能只是目标集合的子集,例如当会话策略限制了某些次要角色时。
当指定
ALL时,该命令不会在一开始验证角色授权。相反,在每条 SQL 语句执行时,会动态确定实际生效的次要角色。这意味着新授予的角色会自动生效,而被撤销的角色将不再生效,无需重新执行该命令。如果会话策略限制了可激活的次要角色,该命令仍会成功执行,但可能返回一条信息性消息,说明实际激活的次要角色将受到该策略限制。