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.9 设置默认角色语句

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

对于每个在 TO 关键字后立即命名的 用户,该语句定义了用户连接到服务器并进行身份验证时或在会话期间执行 SET ROLE DEFAULT 语句时将激活的角色。

SET DEFAULT ROLEALTER USER ... DEFAULT ROLE 的替代语法(见 第 15.7.1.1 节,“ALTER USER 语句”)。然而,ALTER USER 只能为单个用户设置默认值,而 SET DEFAULT ROLE 可以为多个用户设置默认值。另一方面,您可以将 CURRENT_USER 作为 ALTER USER 语句的用户名,而不能用于 SET DEFAULT ROLE

SET DEFAULT ROLE 需要以下权限:

  • 设置其他用户的默认角色需要全局 CREATE USER 权限或 mysql.default_roles 系统表的 UPDATE 权限。

  • 设置自己的默认角色不需要特殊权限,只要您想要的默认角色已经授予了您。

每个角色名称使用 第 8.2.5 节,“指定角色名称” 中描述的格式。例如:

SET DEFAULT ROLE 'admin', 'developer' TO 'joe'@'10.0.0.1';

角色名称的主机名部分,如果省略,默认为 '%'

跟在 DEFAULT ROLE 关键字后的子句允许以下值:

  • NONE:将默认值设置为 NONE(无角色)。

  • ALL:将默认值设置为授予账户的所有角色。

  • role [, role ] ...:将默认值设置为命名的角色,这些角色必须存在并授予账户,并且在执行 SET DEFAULT ROLE 语句时。

Note

SET DEFAULT ROLESET ROLE DEFAULT 是不同的语句:

  • SET DEFAULT ROLE 定义了账户会话中要激活的默认角色。

  • SET ROLE DEFAULT 将当前会话中的活动角色设置为当前账户的默认角色。

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