SET ROLE 语句
SET ROLE 语句验证会话的授权标识是否是特定角色的成员。 当将角色授予该授权标识时,授权标识将获取角色中的成员资格,或者将该授权标识授予作为成员的组或角色时,授权标识将获取该角色中的成员资格。
调用
此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。
权限
不需要执行任何操作。
语法
描述
- 角色名称
- 指定要验证会话授权标识的成员资格所在的角色。 role-name 必须标识当前服务器上的现有角色 (SQLSTATE 42704)。 如果会话的授权标识不是 role-name的成员,那么将返回错误 (SQLSTATE 42501)。
注意
- 已授予授权标识的所有角色都用于授权检查。 SET ROLE 语句不会影响哪些角色用于此授权检查。 使用 GRANT ROLE 和 REVOKE ROLE 语句来更改授权标识具有成员资格的角色。
示例
- 示例 1: 用户 WALID 已被授予角色 EDITOR ,但未被授予角色 AUTHOR。 验证 WALID 是否是 EDITOR 角色的成员。
SET ROLE EDITOR - 示例 2: 验证 WALID 是否不是 AUTHOR 角色的成员。 以下语句返回错误 (SQLSTATE 42501)。
SET ROLE AUTHOR
