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.5 DROP 用户语句

DROP USER [IF EXISTS] user [, user] ...

DROP USER 语句删除一个或多个 MySQL 帐户及其权限。它从所有授权表中删除帐户的权限行。

mandatory_roles 系统变量值中命名的角色不能被删除。

要使用 DROP USER, 您必须拥有全局 CREATE USER 权限,或者 mysql 系统架构的 DELETE 权限。当 read_only 系统变量启用时,DROP USER 还需要 CONNECTION_ADMIN 权限(或已弃用的 SUPER 权限)。

DROP USER 如果要删除的任何帐户被命名为存储对象的 DEFINER 属性,则失败并出现错误。(也就是说,语句失败,因为删除帐户将使存储对象变为孤立的。)要执行该操作,您必须拥有 SET_USER_ID 权限;在这种情况下,语句将成功并发出警告,而不是出现错误。有关详细信息,包括如何标识哪些对象将某个帐户命名为 DEFINER 属性,请参阅 孤立存储对象

DROP USER 要么成功删除所有命名用户,要么回滚并且不执行任何操作。如果您尝试删除不存在的用户,默认情况下将出现错误。如果给出了 IF EXISTS 子句,则语句将为每个不存在的命名用户生成警告,而不是出现错误。

如果语句成功,则将其写入二进制日志;否则,回滚并且不执行任何操作。写入二进制日志的语句包括所有命名用户。如果给出了 IF EXISTS 子句,这包括甚至不存在的用户。

每个帐户名称使用 第 8.2.4 节“指定帐户名称” 中描述的格式。例如:

DROP USER 'jeffrey'@'localhost';

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

Important

DROP 用户 不会自动关闭任何打开的用户会话。相反,在删除用户时,如果该用户有打开的会话,那么语句不会生效,直到该用户的会话关闭。 一旦会话关闭,该用户将被删除,并且该用户下一次尝试登录将失败。这是设计的如此

DROP 用户 不会自动删除或使数据库或对象无效,该用户创建的数据库或对象。这包括存储程序或视图,其中的 DEFINER 属性命名了被删除的用户。尝试访问这些对象可能会产生错误,如果它们在定义者安全上下文中执行。(关于安全上下文的信息,请参阅 第 27.6 节,“存储对象访问控制”。)