CREATE ROLE语句
CREATE ROLE [IF NOTEXISTS ] 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
给出该子句,则甚至包括已经存在但尚未创建的角色。
每个角色名称使用“指定角色名称”中描述的格式。例如:
CREATE ROLE 'administrator', 'developer';CREATE ROLE 'webapp'@'localhost';
角色名称的主机名部分(如果省略)默认为'%'
。