MySQL 8.3 Release Notes
RENAME USER old_user TO new_user
[, old_user TO new_user] ...
该重命名用户
语句重命名现有的 MySQL 帐户。如果旧帐户不存在或新帐户已经存在,将发生错误。
要使用重命名用户
,您必须拥有全局CREATE USER
权限,或者拥有UPDATE
权限的mysql系统模式。当read_only
系统变量启用时,重命名用户
还需要CONNECTION_ADMIN
权限(或已弃用的SUPER
权限)。
重命名用户
如果要重命名的任何帐户是存储对象的DEFINER属性,将失败并出现错误。(也就是说,该语句失败,因为重命名帐户将使存储对象变为孤立的。)要执行该操作,您必须拥有SET_USER_ID
权限;在这种情况下,该语句将成功并发出警告,而不是出现错误。有关更多信息,包括如何标识哪些对象将给定帐户作为DEFINER属性,请参阅孤立存储对象。
每个帐户名称使用第 8.2.4 节“指定帐户名称”中描述的格式。例如:
RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';
如果省略主机名部分,默认为'%'。
重命名用户
使旧用户拥有的权限变为新用户拥有的权限。然而,重命名用户
不会自动删除或使旧用户创建的数据库或对象无效。这包括存储程序或视图,其中DEFINER属性命名旧用户。尝试访问这些对象可能会产生错误,如果它们在定义者安全上下文中执行。(有关安全上下文的信息,请参阅第 27.6 节“存储对象访问控制”。)
权限更改的生效方式见第 8.2.13 节“权限更改生效”。