MariaDB, MySQL 사용자 추가, 권한부여, 권한적용

mysql이나 mariadb에서 사용자 추가하고 권한부여 후, 설정한 권한을 적용하는 방법까지 한 번에 살펴보겠습니다.

MariaDB/MySQL 사용자 추가 방법

새로운 사용자를 추가할 때는 아래와 같이 하면 됩니다.

create user '사용자명'@'호스트주소' identified by '비밀번호';
SQL

사용자가 정상적으로 추가된 경우에는 아래 그림 1과 같이 Query OK 메시지가 나옵니다. 만약 Query 문에 오류가 있어서 정상적으로 실행할 수 없는 경우에는 관련 오류를 알려주니, 확인하신 후 문제를 해결하면 됩니다.

그림 1. MariaDB/MySQL 사용자 추가 결과
그림 1. MariaDB/MySQL 사용자 추가 결과

추가된 사용자는 그림 2와 같은 쿼리문을 사용해서 확인할 수 있습니다.

select * from user where User = 'test';
SQL

제가 만든 사용자 test는 아래와 같이 확인 가능합니다. 저는 Host 주소에 %를 넣어주었기 때문에 아래와 같이 나왔습니다.

그림 2. MariaDB/MySQL 사용자 추가 확인
그림 2. MariaDB/MySQL 사용자 추가 확인

호스트 IP 주소 지정해서 사용자 추가

예를들어 사용자명은 test, 비밀번호는 1234, 접속을 허용하는 호스트주소가 192.168.0.100 이라면 다음과 같이 하면 됩니다.

create user 'test'@'192.168.0.100' identified by '1234';
SQL

호스트에 상관없이 접속 허용하는 사용자 추가

만약 어느 곳에서든 접속할 수 있게 하고 싶으면 %를 사용하면 됩니다.

create user 'test'@'%' identified by '1234';
SQL

로컬호스트에서만 접속 가능한 사용자 추가

로컬호스트에서만 액세스할 수 있게 하려면, localhost를 입력하면 됩니다.

create user 'test'@'localhost' identified by '1234';
SQL

사용자 삭제

추가한 사용자를 삭제할 필요가 생기기도 합니다. 이 경우에는 drop user 명령어를 사용하면 됩니다.

drop user 'test'@'%';
SQL

그림 3과 같이 사용자 삭제 후 select 문을 사용해서 user 테이블에 쿼리해보면 삭제된 것을 확인할 수 있습니다.

그림 3. MySQL 사용자 삭제 후 확인
그림 3. MySQL 사용자 삭제 후 확인

자 여기까지 MariaDB/MySQL 사용자 추가와 삭제 방법을 알아보았습니다.

MariaDB/MySQL 권한 부여

이제는 추가한 사용자에게 어떤 데이터베이스와 어떤 테이블에 대한 권한을 부여할 것인지 설정해 줘야 합니다. 규모가 있는 조직에서는 DBA가 이러한 권한을 DB별로, 테이블 별로, 그리고 권한 별로 부여하게 됩니다.

특정 사용자에게 DB, 테이블에 대한 모든 권한을 부여하려면 아래와 같은 명령어를 사용하면 됩니다.

grant all privileges on DB이름.테이블이름 to '사용자명'@'호스트주소';
SQL

특정 DB의 모든 테이블에 모든 권한을 줄 때에는 다음과 같이 하면 됩니다.

grant all privileges on DB이름.* to '사용자명'@'호스트주소';
SQL

모든 DB의 모든 테이블에 모든 권한을 줄 때에는 다음과 같이 하면 됩니다.

grant all privileges on *.* to '사용자명'@'호스트주소';
SQL

권한 적용

설정한 권한을 바로 적용하려면 아래 명령어를 사용하면 됩니다.

flush privileges;
SQL

위의 모든 과정을 실행한 결과는 아래 그림 4에 있습니다. 모든 과정을 마치고 mysql client를 이용해서 mysql DB에 접근해 보았습니다. 잘 되는 것을 확인할 수 있습니다.

그림 4. 전과정 실행 결과
그림 4. 전과정 실행 결과

정리

MariaDB 또는 MySQL 사용자 추가 방법과 특정 사용자에게 특정 DB나 테이블의 권한을 부여하는 방법, 그리고 마지막으로 부여한 권한을 적용하는 방법까지 모두 살펴보았습니다.

관련 자료

MySQL의 CREATE USER Statement 페이지와 MariaDB의 CREATE USER 페이지에는 보다 자세한 사용방법이 안내되어 있습니다.

같이 읽으면 좋은 글

Leave a Comment