MariaDB термін дії пароля користувача
Колеги всім привіт.
У сьогоднішній статті я вам хочу розповісти про таку можливість як закінчення терміну дії пароля користувача MariaDB. Закінчення терміну дії пароля дозволяє адміністраторам встановлювати термін дії паролів користувачів вручну або автоматично. Ми розглянемо обидва варіанти.
Вміст статті:
- Перевірте термін дії пароля всіх користувачів бази даних MariaDB.
- Системна змінна default_password_lifetime.
- Встановлення терміну дії пароля для користувача.
- Знімаємо обмеження терміну дії пароля користувачеві.
- Термін дії пароля за промовчанням.
1. Перевірте термін дії пароля всіх користувачів бази даних MariaDB.
Для початку давайте перевіримо термін дії паролів за всіма користувачами, для цього скористаємося запитом.
mariadb> WITH password_expiration_info AS (
SELECT User, Host,
IF(
IFNULL(JSON_EXTRACT(Priv, '$.password_lifetime'), -1) = -1,
@@global.default_password_lifetime,
JSON_EXTRACT(Priv, '$.password_lifetime')
) AS password_lifetime,
JSON_EXTRACT(Priv, '$.password_last_changed') AS password_last_changed
FROM mysql.global_priv
)
SELECT pei.User, pei.Host,
pei.password_lifetime,
FROM_UNIXTIME(pei.password_last_changed) AS password_last_changed_datetime,
FROM_UNIXTIME(
pei.password_last_changed +
(pei.password_lifetime * 60 * 60 * 24)
) AS password_expiration_datetime
FROM password_expiration_info pei
WHERE pei.password_lifetime != 0
AND pei.password_last_changed IS NOT NULL
UNION
SELECT pei.User, pei.Host,
pei.password_lifetime,
FROM_UNIXTIME(pei.password_last_changed) AS password_last_changed_datetime,
0 AS password_expiration_datetime
FROM password_expiration_info pei
WHERE pei.password_lifetime = 0
OR pei.password_last_changed IS NULL;
Як бачимо на скріншоті, поле password_lifetime має значення 0, це означає, що за замовчуванням термін дії пароля для всіх користувачів у базі даних MariaDB не встановлений.
2. Системна змінна default_password_lifetime.
У базі даних MariaDB є системна змінна default_password_lifetime, за умовчанням вона має значення 0, це означає, що термін дії пароля для користувачів не встановлюється. Для перевірки значення змінної скористаємося запитом:
mariadb> SHOW VARIABLES LIKE 'default_password_lifetime';
Давайте змінимо значення змінної default_password_lifetime, додамо щоб пароль для користувачів закінчувався через 1 день.
mariadb> set global default_password_lifetime = 1;
Як тільки ми змінили значення змінної default_password_lifetime на один день, значення поля password_expiration_datetime теж змінилося. Значення в цьому полі вказує на те, в який час буде термін терміну дії пароля користувача.
3. Встановлення терміну дії пароля для користувача.
При створенні нового користувача можна вказати через який час у користувача закінчиться пароль. Давайте створимо нового користувача і явно вкажемо, що термін дії його пароля закінчиться через два дні.
mariadb> CREATE USER 'potomka'@'localhost' IDENTIFIED BY 'Qwertysdf3SDasd3%' PASSWORD EXPIRE INTERVAL 2 DAY;
Параметр PASSWORD EXPIRE INTERVAL 2 DAY якраз і вказує через скільки днів закінчиться термін дії пароля.
Після створення користувача ми бачимо, що поле password_lifetime для користувача має значення 2 дні.
4. Знімаємо обмеження терміну дії пароля користувачеві.
Допустимо у нас potomka це технологічний обліковий запис, і встановлюючи для неї термін дії пароля це дуже погана практика, так як після закінчення пароля ваше застосування перестане працювати тому що база даних MariaDB не пропустить обліковий запис в якому пароль потрібно вже міняти. Щоб вирішити це завдання, можна облікового запису явно вказати, щоб його пароль був вічним і не мав терміну давності.
mariadb> ALTER USER 'potomka'@'localhost' PASSWORD EXPIRE NEVER;
Параметр PASSWORD EXPIRE NEVER явно вказує, щоб пароль не мав терміну давності та був вічним.
Як бачимо в результаті для облікового запису potomka значення поля password_lifetime стало 0 днів, і поле password_expiration_datetime теж стало 0 днів.
5. Термін дії пароля за промовчанням.
Давайте уявімо ситуацію, що ви дуже часто створюєте облікові записи і постійно пам'ятати, на скільки днів потрібно встановлювати термін дії пароля не дуже зручно. Для цього якраз і існує змінна default_password_lifetime. Ми вже встановили її значення, щоб усі паролі закінчувалися через один день, і тепер коли ми створюємо нового користувача, то замість параметра PASSWORD EXPIRE INTERVAL 1 DAY, ми будемо вказувати PASSWORD EXPIRE DEFAULT, це означає термін дії пароля за замовчуванням, а воно одно значення змінної default_password_lifetime, а значення змінної default_password_lifetime у нас встановлено один день.
mariadb> ALTER USER 'potomka'@'localhost' PASSWORD EXPIRE DEFAULT;
Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.