Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

15.7.1.2 CREATE ROLE Statement

CREATE ROLE [IF NOT EXISTS] role [, role ] ...

CREATE ROLE创建一个或多个角色,这些角色是特权的命名集合。要使用该语句,您必须拥有全局CREATE ROLECREATE USER特权。当read_only系统变量启用时,CREATE ROLE还需要CONNECTION_ADMIN特权(或已弃用的SUPER特权)。

创建的角色被锁定,没有密码,并分配了默认的身份验证插件。(这些角色属性可以使用ALTER USER语句更改,by users who have the global CREATE USER privilege.)

CREATE ROLE要么成功创建所有命名的角色,要么回滚并且不产生任何效果。如果出现任何错误。默认情况下,如果您尝试创建已经存在的角色,将发生错误。如果给出了IF NOT EXISTS子句,则语句将为每个已经存在的命名角色生成警告,而不是错误。

如果语句成功,则将其写入二进制日志;否则,将回滚并且不进行任何更改。写入二进制日志的语句包括所有命名的角色。如果给出了IF NOT EXISTS子句,则包括已经存在且未创建的角色。

每个角色名称使用Section 8.2.5, “Specifying Role Names”中描述的格式。例如:

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

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

有关角色使用示例,请参阅Section 8.2.10, “Using Roles”