SET PASSWORD
Описание
Оператор SET PASSWORD используется для изменения пароля пользователя для входа в систему.
Синтаксис
SET PASSWORD [FOR <user_identity>] =
[PASSWORD(<plain_password>)]|[<hashed_password>]
Обязательные параметры
1. <plain_password>
В качестве входного значения используется пароль в открытом виде. Например, для пароля
123456следует непосредственно использовать строку123456.
2. <hashed_password>
В качестве входного значения используется зашифрованный пароль. Например, для пароля 123456 следует непосредственно использовать строку
*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9, которую возвращает функцияPASSWORD('123456').
Необязательные параметры
1. <user_identity>
Значение user_identity должно в точности совпадать со значением user_identity, указанным при создании пользователя с помощью CREATE USER. В противном случае будет выдана ошибка о том, что пользователь не существует. Если user_identity не указан, текущий пользователь имеет вид 'username'@'ip', что может не совпадать ни с одним значением user_identity. Текущих пользователей можно просмотреть с помощью SHOW GRANTS.
Требования к правам доступа
Пользователь, выполняющий эту команду SQL, должен обладать как минимум следующими правами:
| Право | Объект | Примечания |
|---|---|---|
| ADMIN_PRIV | USER или ROLE | Пользователь или роль с правом ADMIN_PRIV может изменять пароли всех пользователей. В противном случае можно изменить только пароль текущего пользователя. |
Примечания по использованию
Начиная с версии 4.1.5, только 'root'@'%' является специальной учётной записью root. Учётная запись вида 'root'@'localhost' остаётся обычным пользователем и не получает права изменять настоящую учётную запись root лишь благодаря своему имени пользователя. Защита настоящей учётной записи root также не распространяется на других пользователей с именем root.
- Если поле
FOR user_identityотсутствует, изменяется пароль текущего пользователя.
Пример
- Изменение пароля текущего пользователя
SET PASSWORD = PASSWORD('123456')
SET PASSWORD = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'
- Изменение пароля указанного пользователя
SET PASSWORD FOR 'jack'@'192.%' = PASSWORD('123456')
SET PASSWORD FOR 'jack'@['domain'] = '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'