6.4.3.2 Параметры и переменные плагина проверки паролей
В этом разделе описаны параметры, системные переменные и переменные состояния, которые предоставляет плагин validate_password, для настройки и мониторинга его работы.
Параметры плагина проверки паролей
Для управления активацией плагина validate_password используйте этот параметр:
-
Формат командной строки --validate-password[=value]Тип Перечисление Значение по умолчанию ONДопустимые значения ONOFFFORCEFORCE_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Область видимости Глобальная Динамическая Да Тип Целое число Значение по умолчанию 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=valueСистемная переменная validate_password_policyОбласть действия Глобальная Динамическая Да Тип Перечисление Значение по умолчанию 1Допустимые значения 012Политика паролей, применяемая
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.