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


MySQL 8.4 参考手册  /  ...  /  RENAME USER 语句

15.7.1.7 RENAME USER 语句

RENAME USER old_user TO new_user
    [, old_user TO new_user] ...

RENAME USER 语句用于重命名现有的 MySQL 帐户。如果旧帐户不存在或新帐户已存在,则会发生错误。

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

如果要重命名的任何帐户被指定为任何存储对象的 DEFINER 属性,则 RENAME USER 语句将失败并返回错误。(也就是说,如果重命名帐户会导致存储对象成为孤立对象,则该语句将失败。)要继续执行此操作,您必须拥有 SET_ANY_DEFINERALLOW_NONEXISTENT_DEFINER 权限;在这种情况下,该语句将成功并发出警告,而不是失败并返回错误。有关其他信息,包括如何识别哪些对象将给定帐户指定为 DEFINER 属性,请参阅孤立存储对象

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

RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';

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

RENAME USER 会导致新用户拥有旧用户所拥有的权限。但是,RENAME USER 不会自动删除或使旧用户创建的数据库或其中的对象失效。这包括 DEFINER 属性将旧用户指定为其名称的存储程序或视图。如果尝试在定义者安全上下文中执行此类对象,则可能会产生错误。(有关安全上下文的信息,请参阅第 27.6 节“存储对象访问控制”。)

权限更改将按第 8.2.13 节“权限更改何时生效”中所述生效。