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