Spec-Zone.ru › MySQL 5.7

6.4.3.2 Параметры и переменные плагина проверки паролей

В этом разделе описаны параметры, системные переменные и переменные состояния, которые предоставляет плагин validate_password, для настройки и мониторинга его работы.

  • Параметры плагина проверки паролей

  • Системные переменные плагина проверки паролей

  • Переменные состояния плагина проверки паролей

Параметры плагина проверки паролей

Для управления активацией плагина validate_password используйте этот параметр:

  • --validate-password[=value]

    Формат командной строки --validate-password[=value]
    Тип Перечисление
    Значение по умолчанию ON
    Допустимые значения

    ON

    OFF

    FORCE

    FORCE_PLUS_PERMANENT

    Этот параметр управляет тем, как сервер загружает плагин validate_password при запуске. Значение должно быть одним из доступных значений для параметров загрузки плагинов, как описано в разделе 5.5.1, “Установка и удаление плагинов”. Например, --validate-password=FORCE_PLUS_PERMANENT сообщает серверу загрузить плагин при запуске и предотвращает его удаление во время работы сервера.

    Этот параметр доступен только в том случае, если плагин validate_password был предварительно зарегистрирован с помощью INSTALL PLUGIN или загружен с помощью --plugin-load-add. См. раздел 6.4.3.1, “Установка плагина проверки паролей”.

Системные переменные плагина проверки паролей

Если плагин validate_password включен, он предоставляет несколько системных переменных, которые позволяют настраивать проверку паролей:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+

Чтобы изменить способ проверки паролей, вы можете установить эти системные переменные при запуске сервера или во время работы. В следующем списке описывается значение каждой переменной.

  • validate_password_check_user_name

    Формат командной строки --validate-password-check-user-name[={OFF|ON}]
    Введено 5.7.15
    Системная переменная validate_password_check_user_name
    Область видимости Глобальная
    Динамическая Да
    Тип Булево
    Значение по умолчанию OFF

    Указывает, сравнивает ли validate_password пароли с частью имени пользователя в эффективной учетной записи пользователя для текущего сеанса и отклоняет ли их, если они совпадают. Эта переменная недоступна, если не установлен validate_password.

    По умолчанию, validate_password_check_user_name отключена. Эта переменная управляет сопоставлением имен пользователей независимо от значения validate_password_policy.

    Когда validate_password_check_user_name включена, это имеет следующие последствия:

    • Проверка происходит во всех контекстах, для которых вызывается validate_password, включая использование операторов, таких как ALTER USER или SET PASSWORD для изменения пароля текущего пользователя, и вызов функций, таких как PASSWORD() и VALIDATE_PASSWORD_STRENGTH().

    • Имена пользователей, используемые для сравнения, берутся из значений функций USER() и CURRENT_USER() для текущего сеанса. Это означает, что пользователь, имеющий достаточные права для установки пароля другого пользователя, может установить пароль на имя этого пользователя и не может установить пароль этого пользователя на имя пользователя, выполняющего оператор. Например, 'root'@'localhost' может установить пароль для 'jeffrey'@'localhost' на 'jeffrey', но не может установить пароль на 'root.

    • Используется только часть имени пользователя значений функций USER() и CURRENT_USER(), а не часть имени хоста. Если имя пользователя пустое, сравнение не выполняется.

    • Если пароль совпадает с именем пользователя или его обратным, происходит совпадение, и пароль отклоняется.

    • Сопоставление имен пользователей чувствительно к регистру. Пароль и значения имени пользователя сравниваются как двоичные строки побайтово.

    • Если пароль совпадает с именем пользователя, VALIDATE_PASSWORD_STRENGTH() возвращает 0 независимо от того, как установлены другие системные переменные validate_password.

  • validate_password_dictionary_file

    Формат командной строки --validate-password-dictionary-file=file_name
    Системная переменная validate_password_dictionary_file
    Область видимости Глобальная
    Динамическая Да
    Тип Имя файла

    Имя пути файла словаря, который validate_password использует для проверки паролей. Эта переменная недоступна, если не установлен validate_password.

    По умолчанию эта переменная имеет пустое значение, и проверки словаря не выполняются. Для выполнения проверок словаря значение переменной должно быть непустым. Если файл указан как относительный путь, он интерпретируется относительно каталога данных сервера. Содержимое файла должно быть в нижнем регистре, по одному слову на строку. Содержимое рассматривается как имеющее кодировку utf8. Максимальный допустимый размер файла составляет 1 МБ.

    Для использования файла словаря во время проверки пароля политика паролей должна быть установлена в 2 (STRONG); см. описание системной переменной validate_password_policy. Принимая это во внимание, каждая подстрока пароля длиной от 4 до 100 символов сравнивается со словами в файле словаря. Любое совпадение приводит к отклонению пароля. Сравнения нечувствительны к регистру.

    Для VALIDATE_PASSWORD_STRENGTH(), пароль проверяется на соответствие всем политикам, включая STRONG, поэтому оценка надежности включает проверку словаря независимо от значения validate_password_policy.

    validate_password_dictionary_file можно установить во время выполнения, и назначение значения приводит к чтению указанного файла без перезапуска сервера.

  • validate_password_length

    Формат командной строки --validate-password-length=#
    Системная переменная validate_password_length
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 8
    Минимальное значение 0

    Минимальное количество символов, которое validate_password требует для паролей. Эта переменная недоступна, если не установлен validate_password.

    Минимальное значение validate_password_length является функцией нескольких других связанных системных переменных. Значение не может быть установлено меньше значения этого выражения:

    validate_password_number_count
    + validate_password_special_char_count
    + (2 * validate_password_mixed_case_count)
    

    Если validate_password корректирует значение validate_password_length из-за предыдущего ограничения, он записывает сообщение в журнал ошибок.

  • validate_password_mixed_case_count

    Формат командной строки --validate-password-mixed-case-count=#
    Системная переменная validate_password_mixed_case_count
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0

    Минимальное количество символов в нижнем и верхнем регистре, которое validate_password требует для паролей, если политика паролей является MEDIUM или строже. Эта переменная недоступна, если не установлен validate_password.

    Для заданного значения validate_password_mixed_case_count, пароль должен иметь такое количество символов в нижнем регистре и такое же количество символов в верхнем регистре.

  • validate_password_number_count

    Формат командной строки --validate-password-number-count=#
    Системная переменная validate_password_number_count
    Область видимости Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0

    Минимальное количество числовых (цифровых) символов, которое validate_password требует для паролей, если политика паролей является MEDIUM или строже. Эта переменная недоступна, если не установлен validate_password.

  • validate_password_policy

    Формат командной строки --validate-password-policy=value
    Системная переменная validate_password_policy
    Область действия Глобальная
    Динамическая Да
    Тип Перечисление
    Значение по умолчанию 1
    Допустимые значения

    0

    1

    2

    Политика паролей, применяемая validate_password. Эта переменная недоступна, если не установлен validate_password.

    validate_password_policy влияет на то, как validate_password использует свои другие системные переменные настройки политики, за исключением проверки паролей на соответствие имени пользователя, которая управляется отдельно с помощью validate_password_check_user_name.

    Значение validate_password_policy может быть задано с помощью числовых значений 0, 1, 2 или соответствующих символьных значений LOW, MEDIUM, STRONG. В следующей таблице описаны тесты, выполняемые для каждой политики. Для теста длины требуемая длина — это значение системной переменной validate_password_length. Аналогично, требуемые значения для других тестов задаются другими переменными validate_password_xxx.

    Политика Выполняемые тесты
    0 или LOW Длина
    1 или MEDIUM Длина; числовые, строчные/заглавные буквы и специальные символы
    2 или STRONG Длина; числовые, строчные/заглавные буквы и специальные символы; словарь
  • validate_password_special_char_count

    Формат командной строки --validate-password-special-char-count=#
    Системная переменная validate_password_special_char_count
    Область действия Глобальная
    Динамическая Да
    Тип Целое число
    Значение по умолчанию 1
    Минимальное значение 0

    Минимальное количество не буквенно-цифровых символов, которые validate_password требует для паролей, если политика паролей равна или сильнее MEDIUM. Эта переменная недоступна, если не установлен validate_password.

Переменные состояния плагина проверки паролей

Если плагин validate_password включен, он предоставляет переменные состояния, которые предоставляют операционную информацию:

mysql> SHOW STATUS LIKE 'validate_password%';
+-----------------------------------------------+---------------------+
| Variable_name                                 | Value               |
+-----------------------------------------------+---------------------+
| validate_password.dictionary_file_last_parsed | 2019-10-03 08:33:49 |
| validate_password_dictionary_file_words_count | 1902                |
+-----------------------------------------------+---------------------+

В следующем списке описывается значение каждой переменной состояния.

  • validate_password_dictionary_file_last_parsed

    Когда словарь был в последний раз обработан.

  • validate_password_dictionary_file_words_count

    Количество слов, прочитанных из файла словаря.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/validate-password-options-variables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API