본문 바로가기
DATABASE/MariaDB

[DBA][MariaDB] 사용자 계정 접속 잠금, 비활성화(?) - ACCOUNT LOCK

by DANEW 2024. 1. 12.

USER ACCOUNT LOCK

MariaDB의 특정 사용자 계정의 로그인 불가 상태로 만드는 방법이다.

MariaDB 10.4 버전부터 해당 옵션을 지원한다.

 

alter [user_id]@'[host_address]' account lock;

 

MariaDB 는 특성상 사용자 계정을 " 계정명@접근대역 " 으로 생성한다.

 

즉 동일한 계정명이 여러개이고 접근 대역만 다를 수 있는데,

이 중 사용자가 로그인 하지 않았으면 하는 계정@접근대역을 로그인하지 못하게 잠글 수 있는 기능이다.

 

계정 생성 시 로그인 잠금

CREATE USER로 새로 생성하는 계정을 로그인 불가 상태로 생성하는 방법이다.

반응형
create [user_id]@'[host_address]' identified by '[password]' account lock;

새로운 계정을 생성하는 create user 에 account lock 옵션을 추가하여 생성한다.

 

로그인 잠금상태의 계정에 대해 로그인 시도 시 아래와 같은 에러메시지와 함께 로그인을 할 수 없다.

ERROR 4151 (HY000): Access denied, this account is locked

 

로그인 잠금 상태로 계정 변경

 

새로 생성하는 계정을 로그인 불가 상태로 생성하는 방법이다.

이미 생성되어있는 사용자 계정도 ALTER USER문을 통해 로그인 불가상태로 변경 할 수 있다.

alter [user_id]@'[host_address]' account lock;

 

이미 사용중이던 계정에 대해서 로그인 불가 상태로 변경을 할 수 있지만,

 

기존에 접속 중인 계정에 대해서는 현재 값을 유지 하기때문에 계속 이용 할 수 있다.

접속이 끊긴다면 다시 로그인이 불가능하다.

 

로그인 잠금 상태 확인

로그인 잠금 옵션 상태의 확인은 아래와 같이 할 수 있다.

show create user [user_id]@'[host_address]';

위 캡쳐와 같이 ACCOUNT LOCK 옵션이 적용되어 있음을 확인 할 수 있다.

 

로그인 가능으로 변경

이미 로그인 잠금 상태가 되어있는 계정에 대해 ALTER USER문을 통해 account lock 옵션을 제거 할 수 있다.

alter user [user_id]@[host_address] account unlock;

해당 명령어를 실행 후 잠금 옵션 상태를 확인하면 아래와 같이 account lock 옵션이 제거되었음을 알 수 있다.

 

Comment

ISMS 보안심사 중 모든 원격지 호스트에 대해 접속 할수 있게 하는 user@'%' 계정에 대한 조치를 해야 했다.

처음에는 필요한 호스트 대역만 user@'123.123.%' 으로 생성 후 user@'%' 계정을 삭제 하였으나, 예상치 못한 문제가 발생하였다.

 

여러 OBJECT의 definer로 user@'%'가 들어가 있어 당장에 해당 계정이 필요함을 알게 되었고, 당장에 삭제 조치를 할 수 없어 차선책으로 사용자 계정 비활성화에 대해 찾다보니 알게된 로그인 비활성화 방법이다.

반응형