Неизвестная системная переменная MySQL validate_password_policy

#mysql #passwords #password-policy

#mysql #пароли #пароль-политика

Вопрос:

Я использую MySQL 5.7.25, и я хочу улучшить свою политику паролей MySQL, выполнив это в команде MySQL:

 SET GLOBAL validate_password_policy=2;
  

Но я всегда получаю сообщение об ошибке:

ОШИБКА 1193 (HY000): неизвестная системная переменная ‘validate_password_policy’

Я попытался указать переменную validate_password:

 SHOW VARIABLES LIKE 'validate_password%'
  

но он всегда возвращает пустой набор

Комментарии:

1. это должно быть strong правильно, не HIGH

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

3. Доступные значения LOW, MEDIUM, STRONG или 0,1,2 So HIGH недопустимы

4. Как установить

5. @RiggsFolly о, да, наконец, после установки плагина validate_password я могу это сделать, я использую ubuntu 18.04

Ответ №1:

Эта проблема возникла из-за того, что validate_password плагин по умолчанию НЕ активирован. Вы можете решить с помощью этих команд:

mysql> выберите plugin_name, plugin_status из information_schema.plugins, где plugin_name похоже на ‘validate%’;

Пустой набор (0.00 сек)

mysql> установить плагин validate_password soname ‘validate_password.so ‘;

Запрос в порядке, затронуты 0 строк (0,02 секунды)

mysql> выберите plugin_name, plugin_status из information_schema.plugins, где plugin_name похоже на ‘validate%’;

Наконец, вы покажете следующее:

  ------------------- --------------- 
| plugin_name       | plugin_status |
 ------------------- --------------- 
| validate_password | ACTIVE        |
 ------------------- --------------- 
1 row in set (0.00 sec)
  

Затем вы можете запустить свою команду:

mysql> ПОКАЗЫВАТЬ ПЕРЕМЕННЫЕ ТИПА ‘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      |
 -------------------------------------- -------- 
7 rows in set (0.00 sec). 
  

Ответ №2:

Эта команда работает для меня. Я использую MySQL 8.

 SET GLOBAL validate_password.policy=LOW;
  

Комментарии:

1. Команда работает, но затем при попытке сменить пароль я получаю: «Сбой! Ошибка: Ваш пароль не соответствует текущим требованиям политики»

Ответ №3:

УСТАНОВИТЕ ГЛОБАЛЬНОЕ значение validate_password_policy=LOW;

Замените политику validate_password (точка) на validate_password_policy

введите описание изображения здесь