Mysql валидация пароля пользователя. Плагин validate_password.
Коллеги всем привет.
В сегодняшней статье мы поговорим о таком компоненте в Mysql который называется validate_password. Этот компонент предназначен для повышения безопасности паролей, компонент будет проверять пароли учетных записей и обеспечивая надежность пароля.
Версию СУБД Mysql я буду использовать 8.0.29
Содержимое статьи:
- Проверка установлен ли компонент validate_password.
- Описания переменных плагина validate_password и их назначения.
- Правила смены значений переменных.
- Итоги.
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';
Как видим со скриншота у нас в директории /usr/lib64/mysql/plugin/ будут лежать все плагины которые мы устанавливаем.
1.2. Второе это давайте перейдем в эту директорию и убедимся что у нас в действительности лежит файл плагина component_validate_password.so.
Как видим файл component_validate_password.so присутствует в директории. Идем дальше.
2. Описания переменных плагина validate_password и их назначения.
Итак коллеги мы уже с вами убедились в том что плагин валидации пароля у нас установлен, и теперь давайте посмотрим на его переменные и их обозначения.
2.1. Первым делом давайте посмотрим на эти переменные. Чтобы узнать, какие переменные относятся к этому плагину воспользуемся командой:
mysql> SHOW VARIABLES LIKE 'validate_password.%';
Как видим данный плагин имеет 7 переменных.
2.2. Переменная validate_password.check_user_name.
Если пароль учетной записи совпадает с именем учетной записи или наоборот, то происходит совпадение, и пароль отклоняется. Значения пароля и имени учетной записи сравниваются как двоичные строки по байтно и учитывается регистр.
Но если честно то эта переменная вообще не работает.
2.3. Переменная validate_password.dictionary_file.
Эта переменная использует проверку пароля по словарю который вы укажите, но если честно я эту переменную никогда не использовал и вам не советую, так как в ней мало полезного.
2.4. Переменная validate_password.length.
Эта переменная отвечает за длину пароля. По умолчанию у неё стоит значения 8, это значит что минимальная длинна пароля должна быть не меньше 8 символов. Давайте проверим.
В первом варианте я хотел создать учетную запись с паролей который был равен 7 символов, и получил ошибку. А во втором варианте я уже указал пароль равным 8 символов и учетная запись успешно создалась.
2.5. Переменная validate_password.mixed_case_count.
Эта переменная отвечает за минимальное количество символов нижнего и верхнего регистра. По умолчанию у неё стоит 1, это значит что у вас в пароле должен быть один символ в нижнем регистре и один символ в верхнем регистре. Давайте проверим.
В первом варианте я хотел создать учетную запись с паролей к котором все символы в нижнем регистре и получил ошибку. Во втором варианте все символы указал в верхнем регистре и тоже получил ошибку. А в третьем варианте я указал один символ в нижнем регистре и один символ в верхнем регистре и все получилось.
2.6. Переменная validate_password.number_count.
Эта переменная отвечает за минимальное количество цифровых символов в вашем пароле. По умолчанию у неё стоит 1, это значит что у вас в пароле должна быть хотя бы одна цифра. Давайте проверим.
В первом варианте я хотел создать учетную запись к котором я не указывал ни каких цифр и получил ошибку, а во втором варианте я указал одну цифру и получилось создать учетную запись.
2.7. Переменная validate_password.special_char_count.
Эта переменная отвечает за минимальное количество специальных символов вроде знака % или $. По умолчанию у неё стоит 1, это значит что у вас в пароле должен быть хотя бы один специальный символ. Давайте проверим.
В первом варианте я хотел создать учетную запись к котором я не указывал ни каких специальных символов и получил ошибку, а во втором варианте я указал один специальный символ и получилось создать учетную запись.
2.8. Переменная validate_password.policy.
Эта переменная отвечает за то что какие параметры будут учитываться при проверке пароля. По умолчанию она имеет значения MEDIUM.
- LOW - Будет учитываться только длинна пароля.
- MEDIUM - Будет учитываться длина; числовые, строчные/прописные и специальные символы в пароле.
- STRONG - Будет учитываться длина; числовые, строчные/прописные и специальные символы; файл словаря.
Я вам рекомендую оставить значения по умолчанию MEDIUM.
3. Правила смены значений переменных.
Вы можете менять значения переменных на свои значения. Для этого воспользуйтесь командой SET GLOBAL.
Но после перезапуска сервера базы данных все ваши изменения которые вы меняли то они пропадут. Для того чтобы все ваши изменения остались вам нужно еще добавить эти переменные в конфигурационный файл.
4. Итоги.
Коллеги сегодня мы разобрали крутой плагин по валидации пароля учетных записей. Я вам рекомендую всегда его использовать, особенно если вы являетесь администратором базы данных в какой-то компании.
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.