MariaDB термін дії пароля користувача

MariaDB термін дії пароля користувача

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

У сьогоднішній статті я вам хочу розповісти про таку можливість як закінчення терміну дії пароля користувача MariaDB. Закінчення терміну дії пароля дозволяє адміністраторам встановлювати термін дії паролів користувачів вручну або автоматично. Ми розглянемо обидва варіанти.

 

Вміст статті:

  1. Перевірте термін дії пароля всіх користувачів бази даних MariaDB.
  2. Системна змінна default_password_lifetime.
  3. Встановлення терміну дії пароля для користувача.
  4. Знімаємо обмеження терміну дії пароля користувачеві.
  5. Термін дії пароля за промовчанням.

 

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;

mariadb_user_password_expiry

Як бачимо на скріншоті, поле password_lifetime має значення 0, це означає, що за замовчуванням термін дії пароля для всіх користувачів у базі даних MariaDB не встановлений.


 

2. Системна змінна default_password_lifetime.

У базі даних MariaDB є системна змінна default_password_lifetime, за умовчанням вона має значення 0, це означає, що термін дії пароля для користувачів не встановлюється. Для перевірки значення змінної скористаємося запитом:

mariadb> SHOW VARIABLES LIKE 'default_password_lifetime';

mariadb_user_password_expiry

 

Давайте змінимо значення змінної default_password_lifetime, додамо щоб пароль для користувачів закінчувався через 1 день.

mariadb> set global default_password_lifetime = 1;

mariadb_user_password_expiry

mariadb_user_password_expiry

Як тільки ми змінили значення змінної default_password_lifetime на один день, значення поля password_expiration_datetime теж змінилося. Значення в цьому полі вказує на те, в який час буде термін терміну дії пароля користувача.


 

3. Встановлення терміну дії пароля для користувача.

При створенні нового користувача можна вказати через який час у користувача закінчиться пароль. Давайте створимо нового користувача і явно вкажемо, що термін дії його пароля закінчиться через два дні.

mariadb> CREATE USER 'potomka'@'localhost' IDENTIFIED BY 'Qwertysdf3SDasd3%' PASSWORD EXPIRE INTERVAL 2 DAY;

mariadb_user_password_expiry

Параметр PASSWORD EXPIRE INTERVAL 2 DAY якраз і вказує через скільки днів закінчиться термін дії пароля.

 

mariadb_user_password_expiry

Після створення користувача ми бачимо, що поле password_lifetime для користувача має значення 2 дні.


 

4. Знімаємо обмеження терміну дії пароля користувачеві.

Допустимо у нас potomka це технологічний обліковий запис, і встановлюючи для неї термін дії пароля це дуже погана практика, так як після закінчення пароля ваше застосування перестане працювати тому що база даних MariaDB не пропустить обліковий запис в якому пароль потрібно вже міняти. Щоб вирішити це завдання, можна облікового запису явно вказати, щоб його пароль був вічним і не мав терміну давності.

mariadb> ALTER USER 'potomka'@'localhost' PASSWORD EXPIRE NEVER;

mariadb_user_password_expiry

Параметр PASSWORD EXPIRE NEVER явно вказує, щоб пароль не мав терміну давності та був вічним.

 

mariadb_user_password_expiry

Як бачимо в результаті для облікового запису 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;

mariadb_user_password_expiry

mariadb_user_password_expiry


 

Всім дякую, я сподіваюся, що вам моя стаття хоч чимось допомогла.

СХОЖІ СТАТТІ

MariaDB - ERROR Incorrect definition of table
MariaDB - ERROR Incorrect definition of table
MARIADB
Читати далі
Mariabackup резервне копіювання - Стиснення gzip
Mariabackup резервне копіювання - Стиснення gzip
MARIADB
Читати далі
Mariabackup помилка - Error writing file UNKNOWN errno 32 Broken pipe
Mariabackup помилка - Error writing file UNKNOWN errno 32 Broken pipe
MARIADB
Читати далі