CREATE ROLE 语句

 


CREATE ROLE [IF NOT EXISTS] role [, role ] ...

 

CREATE ROLE 创建一个或多个角色,被称为权限集合。若要使用此语句,必须具有全局 CREATE ROLE 或 CREATE USER 权限。启用 read_only 系统变量时,CREATE ROLE 语句还需要 CONNECTION_ADMIN 权限(或不推荐使用的 SUPER 权限)。

 

角色在创建时被锁定,没有密码,并且被分配了默认的身份验证插件。(这些角色属性可以稍后由具有全局 CREATE USER 权限的用户使用 ALTER USER 语句进行更改。)

 

CREATE ROLE 要么对所有指定角色成功,要么回滚,如果发生任何错误则不起作用。默认情况下,如果尝试创建已存在的角色,则会发生错误。如果给定了 IF NOT EXISTS 子句,则该语句将为已存在的每个指定角色生成警告,而不是错误。

 

如果语句成功,则将其写入二进制日志;如果失败,则不会写入二进制日志;在这种情况下,将发生回滚,不会进行任何更改。写入二进制日志的语句包含所有指定角色。如果给定了 IF NOT EXISTS 子句,则这些记录甚至包括已经存在但未创建的角色。

 

角色名格式示例:

 



CREATE ROLE 'administrator', 'developer';CREATE ROLE 'webapp'@'localhost';

 

如果省略角色名的主机名部分,默认为 '%'。