Documentation Home

13.7.1.2 CREATE ROLE 语句

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

CREATE ROLE创建一个或多个角色,这些角色被命名为特权集合。要使用此语句,您必须具有全局CREATE ROLECREATE USER 权限。read_only 启用系统变量时,CREATE ROLE还需要 CONNECTION_ADMIN权限(或已弃用的SUPER权限)。

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

CREATE ROLE要么对所有命名角色成功,要么回滚,如果发生任何错误则无效。默认情况下,如果您尝试创建一个已经存在的角色,则会发生错误。如果IF NOT EXISTS 给出该子句,则该语句会为每个已存在的命名角色生成警告,而不是错误。

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

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

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

角色名称的主机名部分(如果省略)默认为 '%'.

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