文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  SET DEFAULT ROLE 语句

15.7.1.9 SET DEFAULT ROLE 语句

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

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

SET DEFAULT ROLEALTER USER ... DEFAULT ROLE 的另一种语法(请参阅 第 15.7.1.1 节“ALTER USER 语句”)。但是,ALTER USER 只能设置单个用户的默认值,而 SET DEFAULT ROLE 可以设置多个用户的默认值。另一方面,您可以为 ALTER USER 语句指定 CURRENT_USER 作为用户名,而不能为 SET DEFAULT ROLE 指定。

SET DEFAULT ROLE 需要以下权限

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

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

每个角色名称都使用 第 8.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 ROLESET ROLE DEFAULT 是不同的语句:

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

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

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