文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  CREATE ROLE 语句

15.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 子句,则这甚至包括已存在的角色,这些角色没有创建。

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

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

如果省略角色名称的主机名部分,则默认为 '%'

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