Polecenie SQL wykonane w MySQL
RENAME USER 'jan'@'localhost' TO 'janek'@'localhost';powoduje
RENAME USER zmienia tylko nazwę konta, a hasło i uprawnienia przechodzą na nową nazwę.CREATE USER. Po RENAME USER konto jan już nie istnieje.ALTER USER ... IDENTIFIED BY. Po słowie TO stoi nowa nazwa konta.RENAME USER 'stara'@'host' TO 'nowa'@'host'; zmienia nazwę istniejącego konta. Konto pozostaje tym samym kontem: zachowuje hasło i wszystkie nadane uprawnienia, zmienia się tylko nazwa, którą podaje się przy logowaniu. Po wykonaniu polecenia użytkownik jan już nie istnieje, a janek loguje się dotychczasowym hasłem.
Konto w MySQL to para nazwa i host, dlatego obie części podaje się w apostrofach z małpą. Poleceniem można zmienić także host, np. z 'localhost' na '%'. Pokrewne polecenia: CREATE USER tworzy konto, DROP USER je usuwa, ALTER USER ... IDENTIFIED BY zmienia hasło, a SHOW GRANTS FOR 'janek'@'localhost'; pokazuje, że uprawnienia przeszły na nową nazwę.
Każda błędna odpowiedź opisuje skutek innego polecenia. Utworzenie nowego, pustego konta to CREATE USER. Gdyby administrator chciał w ten sposób „przenieść” użytkownika, musiałby potem nadać uprawnienia od nowa przez GRANT i usunąć stare konto przez DROP USER. RENAME USER robi to w jednym kroku i niczego nie gubi.
Hasło zmienia się poleceniem ALTER USER 'jan'@'localhost' IDENTIFIED BY 'noweHaslo';. W RENAME USER po słowie TO stoi nowa nazwa konta, a nie hasło.
MySQL nie ma aliasów kont. Po zmianie nazwy stara przestaje działać: próba zalogowania jako jan zakończy się błędem odmowy dostępu. Jeśli aplikacja lub skrypt PHP łączy się z bazą jako jan, trzeba poprawić dane logowania w jej konfiguracji.
Zmianę nazwy konta wykonuje tylko użytkownik z uprawnieniem CREATE USER, np. administrator root.