Mysql валидация пароля пользователя. Плагин validate_password.

Mysql валидация пароля пользователя. Плагин validate_password.

Коллеги всем привет.

В сегодняшней статье мы поговорим о таком компоненте в Mysql который называется validate_password. Этот компонент предназначен для повышения безопасности паролей, компонент будет проверять пароли учетных записей и обеспечивая надежность пароля.

Версию СУБД Mysql я буду использовать 8.0.29

 

 Содержимое статьи:

  1. Проверка установлен ли компонент validate_password.
  2. Описания переменных плагина validate_password и их назначения.
  3. Правила смены значений переменных.
  4. Итоги.

 

1. Проверка установлен ли компонент validate_password.

В последних версиях СУБД Mysql плагин валидации пароля уже установлен, но если у вас версия СУБД старая то вам придется его установить вручную. Для установки плагина валидации пароля воспользуйтесь командой:

mysql> INSTALL COMPONENT 'file://component_validate_password';

Но если вам плагин не нужен, то его можно удалить. Для удаления плагина воспользуйтесь командой:

mysql> UNINSTALL COMPONENT 'file://component_validate_password';

 

Но так как у меня последняя версия СУБД то у меня этот плагин уже установлен. Давайте в этом убедимся.

1.1. Первое это давайте узнаем директорию где у нас лежат все плагины доступные нам. Для этого воспользуемся командой:

mysql> SHOW VARIABLES LIKE 'plugin_dir';

 mysql_validate_password

Как видим со скриншота у нас в директории /usr/lib64/mysql/plugin/ будут лежать все плагины которые мы устанавливаем.

 

1.2. Второе это давайте перейдем в эту директорию и убедимся что у нас в действительности лежит файл плагина component_validate_password.so.

mysql_validate_password

Как видим файл component_validate_password.so присутствует в директории. Идем дальше.


 

2. Описания переменных плагина validate_password и их назначения.

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

 

2.1. Первым делом давайте посмотрим на эти переменные. Чтобы узнать, какие переменные относятся к этому плагину воспользуемся командой:

mysql> SHOW VARIABLES LIKE 'validate_password.%';

mysql_validate_password

Как видим данный плагин имеет 7 переменных.

 

2.2. Переменная validate_password.check_user_name.

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

Но если честно то эта переменная вообще не работает.

 

2.3. Переменная validate_password.dictionary_file.

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

 

2.4. Переменная validate_password.length.

Эта переменная отвечает за длину пароля. По умолчанию у неё стоит значения 8, это значит что минимальная длинна пароля должна быть не меньше 8 символов. Давайте проверим.

mysql_validate_password

В первом варианте я хотел создать учетную запись с паролей который был равен 7 символов, и получил ошибку. А во втором варианте я уже указал пароль равным 8 символов и учетная запись успешно создалась.

 

2.5. Переменная validate_password.mixed_case_count.

Эта переменная отвечает за минимальное количество символов нижнего и верхнего регистра. По умолчанию у неё стоит 1, это значит что у вас в пароле должен быть один символ в нижнем регистре и один символ в верхнем регистре. Давайте проверим.

mysql_validate_password

В первом варианте я хотел создать учетную запись с паролей к котором все символы в нижнем регистре и получил ошибку. Во втором варианте все символы указал в верхнем регистре и тоже получил ошибку. А в третьем варианте я указал один символ в нижнем регистре и один символ в верхнем регистре и все получилось.

 

2.6. Переменная validate_password.number_count.

Эта переменная отвечает за минимальное количество цифровых символов в вашем пароле. По умолчанию у неё стоит 1, это значит что у вас в пароле должна быть хотя бы одна цифра. Давайте проверим.

mysql_validate_password

В первом варианте я хотел создать учетную запись к котором я не указывал ни каких цифр и получил ошибку, а во втором варианте я указал одну цифру и получилось создать учетную запись.

 

2.7. Переменная validate_password.special_char_count.

Эта переменная отвечает за минимальное количество специальных символов вроде знака % или $. По умолчанию у неё стоит 1, это значит что у вас в пароле должен быть хотя бы один специальный символ. Давайте проверим.

mysql_validate_password

В первом варианте я хотел создать учетную запись к котором я не указывал ни каких специальных символов и получил ошибку, а во втором варианте я указал один специальный символ и получилось создать учетную запись.

 

2.8. Переменная validate_password.policy.

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

  • LOW - Будет учитываться только длинна пароля.
  • MEDIUM - Будет учитываться длина; числовые, строчные/прописные и специальные символы в пароле.
  • STRONG - Будет учитываться длина; числовые, строчные/прописные и специальные символы; файл словаря.

Я вам рекомендую оставить значения по умолчанию MEDIUM.


 

3. Правила смены значений переменных.

Вы можете менять значения переменных на свои значения. Для этого воспользуйтесь командой SET GLOBAL.

mysql_validate_password

 

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

mysql_validate_password

mysql_validate_password


 

4. Итоги.

Коллеги сегодня мы разобрали крутой плагин по валидации пароля учетных записей. Я вам рекомендую всегда его использовать, особенно если вы являетесь администратором базы данных в какой-то компании.


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

ПОХОЖИЕ СТАТЬИ

MySQL - Генерация тестовых данных
MySQL - Генерация тестовых данных
MYSQL
Читать далее
MySQL / MariaDB Как получить id последней вставленной записи в таблице - LAST_INSERT_ID
MySQL / MariaDB Как получить id последней вставленной записи в таблице - LAST_INSERT_ID
MYSQL
Читать далее
MySQL / MariaDB Как преобразовать регистр символов - Функции UPPER и LOWER
MySQL / MariaDB Как преобразовать регистр символов - Функции UPPER и LOWER
MYSQL
Читать далее