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
Читати далі