본문 바로가기
DATABASE/MariaDB

[MariaDB] User DDL - 사용자 생성, 변경, 삭제

by DANEW 2024. 4. 6.

MariaDB User

Database의 중요한 관리 중 하나는 User 에 대한 관리설정이다.

사용자에 맞는 User를 생성하고 발급하며, 해당 User별로 권한을 설정함으로써 보안에 좀 더 신경 쓸 수 있다.

 

요번 포스팅에서는 MariaDB의 User의 생성, 변경, 삭제를 할 수 있는 DDL에 대해서 알아보도록 하자.

 

User DDL

MariaDB User의 Create / Alter / Drop 명령어로 유저의 생성과 변경, 삭제를 담당한다.

 

MariaDB의 User는 다른 Database와 다르게, 접근 위치 별(Host) 계정을 생성 할 수 있다. DDL명령어 설명하며 같이 설명하도록 하겠다.

 

사용자에 대한 정보는 mysql.user 라는 시스템 뷰로 확인 할 수 있다.

select * from mysql.user;

 

아래에서는 간략하게 생성과 삭제, 비밀번호 변경에 대해서만 알아보도록한다.

MariaDB의 사용자 정보는 MariaDB가 구동 될때 Memory에 올라가므로, 사용자 정보를 생성하거나 변경한 후 아래의 명령어를 통해 갱신을 해줘야 한다.

flush privileges;

 

Create User

create user '[User Name]'@'[Host]' identified by '[Password]';
flush privileges;

 

원하는 User Name의 Password를 설정하여 사용자를 생성한다.

다른 데이터베이스와 다른 점은 Host부분인데. 해당 계정이 로그인 할 수 있는 IP를 지정하는 것이다.

모든 IP대역에서 접근하고 싶다면 '%'를 통해 여타 다른 데이터베이스의 계정과 동일한 느낌으로 사용 할 수 있으며, 100.100.100.% 처럼 100.100.100 이하 모든 대역에서 접속할 수 있도록 설정 할 수도 있다.

또한, %.100.100.100 처럼 사용 할 수도 있다.

 

동일한 User Name이여도 Host가 다르다면 다른 사용자이므로 패스워드와 권한에 주의할 필요가 있다.

 

동일한 User Name의 접근 host의 우선순위로는 100.100.100.100의 IP에서 접근할 때,

%.100.100.100의 사용자 계정보다 100.100.100.%을 우선순위로 접근하게 된다.

 

Alter User

alter user '[User Name]'@'[Host]' identified by '[New Password]';
flush privileges;

 

사용자의 패스워드 변경을 할 수 있다. 호스트 값을 주의하여 변경하도록 하자.

 

패스워드 뿐만아니라, 계정을 잠금상태로도 변경 할 수 있다. 

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

반응형

Drop User

drop user '[User Name]'@'[Host]';
flush privileges;

 

특정 사용자 계정을 삭제하는 명령어 이다.

마찬가지로 Host를 주의하여 삭제를 한다.

 

사용자를 Drop 할때는 프로시저나 함수의 definer를 주의하여 삭제하여아한다.

프로시저나 함수 등의 오브젝트를 선언한 User가 없으면 해당 오브젝트가 실행될 때 오류가 발생 할 수 있다.

 

특정 계정에 대해 삭제보다는 위에 언급한 계정 잠금 처리를 하여, 보안 설정을 한 경험이 있다.

 

Related Posts

[MariaDB] Password 복잡도 설정 - simple_password_check Plugin

[MariaDB][Linux] 보안 설치 - mariadb-secure-installation

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

반응형