MariaDB 사용자 패스워드 만료일 확인 및 설정하는 방법
MariaDB에서 보안 관리를 위해 사용자의 패스워드 만료일을 설정하고 확인하는 방법에 대해 알아봅니다. 이를 통해 보안을 강화하고, 일정 기간이 지나면 사용자가 패스워드를 변경하도록 강제할 수 있습니다. 특히 mysql.global_priv 테이블의 priv 필드에 저장된 JSON 값을 사용하여 패스워드 만료일을 확인할 수 있습니다.
1. MariaDB 사용자 계정 생성 및 패스워드 만료일 설정
먼저, MariaDB에서 사용자를 생성하고, 패스워드 만료일을 설정하는 방법을 살펴보겠습니다. 아래 쿼리는 user2라는 계정을 만들고 패스워드 만료일을 90일로 설정하는 예시입니다.
CREATE USER 'user2'@'localhost' IDENTIFIED BY '1234';
ALTER USER 'user2'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;이 쿼리는 사용자를 생성한 후 90일 이후에 패스워드가 만료되도록 설정하는 방식입니다.
2. 사용자 패스워드 만료일 확인 쿼리
패스워드 만료일을 확인하려면 mysql.global_priv 테이블에서 priv 필드를 확인해야 합니다. 이 필드에는 패스워드가 마지막으로 변경된 시간과 만료일 정보가 JSON 형식으로 저장되어 있습니다.
{
"password_last_changed": 1728653256,
"password_expire": 90
}아래는 user2 사용자의 패스워드 만료일을 확인하는 쿼리입니다.
SELECT
user,
host,
FROM_UNIXTIME(CAST(JSON_EXTRACT(priv, '$.password_last_changed') AS UNSIGNED)) AS password_last_changed,
CAST(JSON_EXTRACT(priv, '$.password_lifetime') AS UNSIGNED) AS password_lifetime,
DATE_ADD(
FROM_UNIXTIME(CAST(JSON_EXTRACT(priv, '$.password_last_changed') AS UNSIGNED)),
INTERVAL CAST(JSON_EXTRACT(priv, '$.password_lifetime') AS UNSIGNED) DAY
) AS password_expires
FROM
mysql.global_priv
WHERE
user = 'user2';이 쿼리는 priv 필드에서 password_last_changed와 password_lifetime 값을 추출하고, 이를 통해 패스워드 만료일을 계산합니다.
▼ 사용자 패스워드 만료일 확인 쿼리 예시

3. 마무리
MariaDB에서 사용자 패스워드의 만료일을 설정하고 관리하는 방법은 보안을 유지하는 데 필수적인 요소입니다. 특히, 패스워드가 주기적으로 변경되도록 관리하는 것은 보안 정책을 강화하는 좋은 방법입니다. 위에서 설명한 쿼리를 사용하여 사용자 계정의 패스워드 만료일을 확인하고, 필요시 적절히 조정하면 됩니다.
함께 보면 좋은 게시글
- MariaDB 사용자 계정 생성 및 삭제 방법
- MariaDB 사용자 권한 부여 및 제거 방법
- MariaDB 데이터베이스 백업 및 복구 방법
- MariaDB 제약 조건: PRIMARY KEY, FOREIGN KEY, UNIQUE 등
- MariaDB 스토어드 프로시저 기본 사용법: 생성, 호출, 삭제 방법
이 글이 도움이 되셨다면 공유 부탁 드립니다.


![[SSMS] 로컬 서버(PC)에 설치한 MSSQL 서버 연결하는 방법](https://bluesharehub.com/wp-content/uploads/2022/02/img_41.png)
