RENAME USER old_user TO new_user
[, old_user TO new_user] ...
The RENAME USER
statement renames
existing MySQL accounts. An error occurs for old accounts that
do not exist or new accounts that already exist.
To use RENAME USER
, you must have
the global CREATE USER
privilege,
or the UPDATE
privilege for the
mysql
system database. When the
read_only
system variable is
enabled, RENAME USER
additionally
requires the SUPER
privilege.
Each account name uses the format described in Section 6.2.4, “Specifying Account Names”. For example:
RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';
The host name part of the account name, if omitted, defaults to
'%'
.
RENAME USER
causes the privileges
held by the old user to be those held by the new user. However,
RENAME USER
does not
automatically drop or invalidate databases or objects within
them that the old user created. This includes stored programs or
views for which the DEFINER
attribute names
the old user. Attempts to access such objects may produce an
error if they execute in definer security context. (For
information about security context, see
Section 23.6, “Stored Object Access Control”.)
The privilege changes take effect as indicated in Section 6.2.9, “When Privilege Changes Take Effect”.