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将当前会话中的活动角色设置为当前帐户的默认角色。
有关角色用法的示例,请参见“授权控制”。
