Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


15.7.1.9 设置默认角色语句

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

对于每个 用户,紧随 TO 关键字后,这个语句定义了哪些角色在用户连接到服务器、身份验证或执行SET ROLE DEFAULT 语句时将被激活。

SET DEFAULT ROLEALTER USER ... DEFAULT ROLE 的备用语法(见Section 15.7.1.1, “ALTER USER Statement”)。然而,ALTER USER 只能为单个用户设置默认值,而SET DEFAULT ROLE 可以为多个用户设置默认值。反之,SET DEFAULT ROLE 可以指定 CURRENT_USER 作为用户名称,而ALTER USER 则不能。

SET DEFAULT ROLE 需要这些权限:

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

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

每个角色名称使用Section 8.2.5, “Specifying Role Names” 中描述的格式。例如:

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

角色名称的主机部分,如果省略, defaults to '%'

以下是 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节,“使用角色”