CREATE ROLE [IF NOT EXISTS] role [, role ] ...
CREATE ROLE
创建一个或多个角色,这些角色被命名为特权集合。要使用此语句,您必须具有全局CREATE
ROLE
或CREATE 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 节,“使用角色”。