文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  DROP ROLE 语句

15.7.1.4 DROP ROLE 语句

DROP ROLE [IF EXISTS] role [, role ] ...

DROP ROLE 删除一个或多个角色(命名的权限集合)。要使用此语句,您必须具有全局 DROP ROLECREATE USER 权限。当 read_only 系统变量启用时,DROP ROLE 还需要 CONNECTION_ADMIN 权限(或已弃用的 SUPER 权限)。

具有 CREATE USER 权限的用户可以使用此语句删除已锁定或已解锁的帐户。具有 DROP ROLE 权限的用户只能使用此语句删除已锁定的帐户(已解锁的帐户被认为是用于登录服务器的用户帐户,而不仅仅是角色)。

mandatory_roles 系统变量值中命名的角色无法删除。

DROP ROLE 对于所有命名的角色都成功或回滚且没有任何效果,如果出现任何错误。默认情况下,如果尝试删除不存在的角色,则会发生错误。如果给出 IF EXISTS 子句,则该语句会为每个不存在的命名角色产生一个警告,而不是错误。

如果该语句成功,则将其写入二进制日志,但如果失败,则不会写入二进制日志;在这种情况下,将发生回滚,并且不会进行任何更改。写入二进制日志的语句包括所有命名的角色。如果给出 IF EXISTS 子句,则这甚至包括不存在且未删除的角色。

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

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

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

已删除的角色会自动从授予该角色的任何用户帐户(或角色)中撤销。在针对此类帐户的任何当前会话中,其调整后的权限将从执行的下一条语句开始应用。

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