Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

15.7.1.11 设置角色语句

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

设置角色 语句修改当前用户的有效权限,在当前会话中指定哪些授予的角色是活动的。授予的角色包括明确授予用户的角色和命名在 mandatory_roles 系统变量值中的角色。

示例:

SET ROLE DEFAULT;
SET ROLE 'role1', 'role2';
SET ROLE ALL;
SET ROLE ALL EXCEPT 'role1', 'role2';

每个角色名称使用 第 8.2.5 节,“指定角色名称” 中描述的格式。如果省略主机名部分,默认为 '%'

用户直接授予的权限(而不是通过角色授予的)不受活动角色变化的影响。

该语句允许以下角色指定符:

  • DEFAULT:激活账户默认角色。默认角色是使用 设置默认角色 指定的。

    当用户连接到服务器并成功身份验证时,服务器确定哪些角色作为默认角色激活。如果 activate_all_roles_on_login 系统变量启用,服务器激活所有授予的角色。否则,服务器隐式执行 设置角色 DEFAULT。服务器仅激活可以激活的默认角色。服务器将无法激活的默认角色写入错误日志,但客户端不收到警告。

    如果用户在会话中执行 设置角色 DEFAULT,如果任何默认角色无法激活(例如,如果它不存在或未授予用户),则会发生错误。在这种情况下,当前活动角色不变。

  • NONE:将活动角色设置为 NONE(无活动角色)。

  • ALL:激活账户授予的所有角色。

  • ALL EXCEPT role [, role ] ...:激活账户授予的所有角色,除了命名的角色。命名的角色不需要存在或授予账户。

  • role [, role ] ...:激活命名的角色,这些角色必须授予账户。

Note

设置默认角色设置角色 DEFAULT 是不同的语句:

有关角色使用示例,请参阅 第 8.2.10 节,“使用角色”