MySQL 8.4 Release Notes
15.7.1.2 创建角色语句
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节,“使用角色”。