MySQL 8.4 版本说明
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
子句,则这还包括已经存在且未创建的角色。
每个角色名称使用 第 8.2.5 节,“指定角色名称” 中描述的格式。例如
CREATE ROLE 'admin', 'developer';
CREATE ROLE 'webapp'@'localhost';
如果省略角色名称的主机名部分,则默认为 '%'
。
有关角色使用示例,请参见 第 8.2.10 节,“使用角色”。