跳到主要内容

SET ROLE

描述

该语句用于激活当前登录用户在当前会话(Session)中已被授予的角色。

信息

通过 SET ROLE 语句激活的角色,仅影响当前 Session,不影响之后的 Session。

语法

SET ROLE {
DEFAULT
| NONE
| ALL
| ALL EXCEPT role_name [, role_name ...]
| role_name [, role_name ...]
};

参数解释

参数描述
DEFAULT指定保持默认角色的设置。系统会根据变量 activate_all_roles_on_login 的值以及 SET DEFAULT ROLE 语句或 ALTER USER 语句设置的默认激活的角色来激活角色:
  • 如果变量 activate_all_roles_on_login 的值为 on,则在会话中激活用户授予的所有角色。
  • 如果变量 activate_all_roles_on_login 的值为 off,则在会话中激活 SET DEFAULT ROLE 语句或 ALTER USER 语句指定的默认激活的角色。
NONE指定停用用户被授予的所有角色。
ALL指定激活用户被授予的所有角色。
ALL EXCEPT指定不激活用户被授予的角色中的角色。
role_name指定角色的名称,激活多个角色时,角色名用英文逗号(,)隔开。

示例

  • 指定在当前会话中,激活用户被授予的角色中除了角色 role001 以外的其他所有角色。

    SET ROLE ALL EXCEPT role001;
  • 指定在当前会话中,激活用户的 role001role002 角色。

    SET ROLE role001, role002;

相关文档