• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • SET DEFAULT ROLE语句

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

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

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

    SET DEFAULT ROLE需要以下特权:

    • 为另一个用户设置默认角色需要全局CREATE USER特权或系统表的UPDATE特权mysql.default_roles
    • 为自己设置默认角色不需要特殊特权,只要已将想要的默认角色授予您即可。

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

    SET DEFAULT ROLE administrator, 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将当前会话中的活动角色设置为当前帐户的默认角色。

    有关角色用法的示例,请参见“授权控制”。