8.2.20 Блокировка учетных записей
MySQL поддерживает блокировку и разблокировку учетных записей пользователей, используя клаузы ACCOUNT LOCK и ACCOUNT
UNLOCK для инструкций CREATE
USER и ALTER USER:
-
При использовании с
CREATE USER, эти клаузы задают начальное состояние блокировки новой учетной записи. При отсутствии этих клаузов учетная запись создается в разблокированном состоянии.Если компонент
validate_passwordвключен, создание учетной записи без пароля запрещено, даже если учетная запись заблокирована. См. Раздел 8.4.3, «Компонент проверки пароля». -
При использовании с
ALTER USER, эти клаузы задают новое состояние блокировки существующей учетной записи. При отсутствии этих клаузов состояние блокировки учетной записи остается без изменений.ALTER USER ... UNLOCKразблокирует любую учетную запись, указанную в инструкции, которая временно заблокирована из-за слишком большого количества неудачных попыток входа. См. Раздел 8.2.15, «Управление паролями».
Состояние блокировки учетной записи записывается в столбец account_locked системной таблицы mysql.user. Вывод из SHOW CREATE USER указывает, заблокирована или разблокирована учетная запись.
Если клиент пытается подключиться к заблокированной учетной записи, попытка завершается неудачно. Сервер увеличивает значение переменной состояния Locked_connects, которая указывает количество попыток подключения к заблокированной учетной записи, возвращает ошибку и записывает сообщение в журнал ошибок:
Access denied for user 'user_name'@'host_name'.
Account is locked.
Блокировка учетной записи не влияет на возможность подключения с помощью пользователя-прокси, который принимает личность заблокированной учетной записи. Это также не влияет на возможность выполнения хранимых процедур или представлений, имеющих атрибут DEFINER, который называет заблокированную учетную запись. То есть, возможность использования прокси-пользователя или хранимых процедур или представлений не затрагивается блокировкой учетной записи.
Функциональность блокировки учетных записей зависит от наличия столбца account_locked в системной таблице mysql.user. Для обновлений с версий MySQL, более старых, чем 5.7.6, выполните процедуру обновления MySQL, чтобы убедиться, что этот столбец существует. См. Главу 3, «Обновление MySQL». В не обновленных установках, в которых нет столбца account_locked, сервер обрабатывает все учетные записи как разблокированные, и использование клаузов ACCOUNT
LOCK или ACCOUNT UNLOCK приводит к ошибке.
© 2025 Oracle
Licensed under the GPLv2 License.