MySQL 8.4 Release Notes
15.7.1.7 重命名用户语句
RENAME USER old_user TO new_user
[, old_user TO new_user] ...
语句RENAME USER
重命名现有的MySQL账户。对老账户不存在或新账户已经存在的错误将发生。
要使用RENAME USER
,您必须具有全局CREATE USER
权限,或者UPDATE
权限对mysql
系统架构。启用read_only
系统变量时,RENAME USER
还需要CONNECTION_ADMIN
权限(或弃用的SUPER
权限)。
RENAME USER
在重命名任何账户时失败,如果该账户是存储对象的SET_ANY_DEFINER
或ALLOW_NONEXISTENT_DEFINER
权限;在这种情况下,语句将成功,但将发出警告,而不是失败。有关详细信息,请参阅Orphan Stored Objects。
每个账户名称都使用Section 8.2.4, “Specifying Account Names”中描述的格式。例如:
RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';
账户名称的主机部分,如果省略,默认为'%'
。
RENAME USER
将老用户的权限转换为新用户的权限。但是RENAME USER
不自动删除或无效老用户创建的数据库或对象。包括存储程序或视图,其中SET_ANY_DEFINER
或ALLOW_NONEXISTENT_DEFINER
权限。尝试访问这些对象可能会产生错误,如果它们在定义者安全上下文中执行。有关安全上下文,请参阅Section 27.6, “Stored Object Access Control”。
权限更改将在Section 8.2.13, “When Privilege Changes Take Effect”中生效。