Documentation Home

13.7.1.9 SET DEFAULT ROLE 语句

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

user对于紧跟在关键字之后的 每个命名TO,此语句定义了当用户连接到服务器并进行身份验证时,或者当用户 SET ROLE DEFAULT在会话期间执行该语句时,哪些角色变为活动状态。

SET DEFAULT ROLE是替代语法ALTER USER ... DEFAULT ROLE(参见 第 13.7.1.1 节,“ALTER USER 语句”)。但是, ALTER USER只能为单个用户设置默认值,而SET DEFAULT ROLE可以为多个用户设置默认值。另一方面,您可以CURRENT_USER为语句指定 as 用户名ALTER USER ,而不能为SET DEFAULT ROLE.

SET DEFAULT ROLE需要这些特权:

  • 为另一个用户设置默认角色需要全局CREATE USER权限或系统表 UPDATE权限。mysql.default_roles

  • 为您自己设置默认角色不需要特殊权限,只要您希望作为默认角色的角色已被授予您即可。

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

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

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

关键字后面的子句DEFAULT ROLE 允许这些值:

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

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

  • role [, role ] ...:将默认设置为命名角色,该角色必须存在并在执行时授予帐户SET DEFAULT ROLE

笔记

SET DEFAULT ROLE并且 SET ROLE DEFAULT是不同的陈述:

  • SET DEFAULT ROLE定义在帐户会话中默认激活哪些帐户角色。

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

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