Перейти к содержимому
Последнее обновление

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_PRIVUSER или 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'