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
(请参见“ ALTER USER语句”)。但是,ALTER USER
只能为单个用户SET DEFAULT ROLE
设置默认值,而可以为多个用户设置默认值。另一方面,您可以指定CURRENT_USER
该ALTER USER
语句的用户名,而不能指定SET DEFAULT ROLE
。
SET DEFAULT ROLE
需要以下特权:
- 为另一个用户设置默认角色需要全局
CREATE USER
特权或系统表的UPDATE
特权mysql.default_roles
。 - 为自己设置默认角色不需要特殊特权,只要已将想要的默认角色授予您即可。
每个角色名称使用“指定角色名称”中描述的格式。例如:
SET DEFAULT ROLE administrator, developerTO '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
将当前会话中的活动角色设置为当前帐户的默认角色。
有关角色用法的示例,请参见“授权控制”。