MariaDB срок действия пароля пользователя
- Последнее обновление: 3 Ноября 2023 г.
- Просмотры: 347
- Автор: Админ
Коллеги всем привет.
В сегодняшней статье я вам хочу рассказать о такой возможности как истечение срока действия пароля пользователя в 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;
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.