[Mysql] 계정 권한부여

2020. 4. 6. 17:42MYSQL

지난 글(Mysql 계정 생성)에 이어서 Mysql 계정에 권한을 부여하는 방법을 소개하려고 합니다.

 

지난 글에서 만든 계정으로 접속을 하게 되면 test DB 이외에 다른계정에서 만든 DB는 보이지가 않습니다. 

 

그리하여 데이터 베이스를 생성하려고 하니

 

해당 데이터베이스 권한이 없다고 나오네요

 

그래서 root로 접속하여 데이터 베이스를 생성하고 해당 test123 유저에게 해당 데이터베이스에 접근을 할수 있는 권한을 주려고 합니다. 

 

위와 같이 ROOT 로 접속하여 데이터 dbtest123 이라는 데이터 베이스를 하나 만들어 주었습니다. 

 

그리고 test123 계정으로 dbtest123 이라는 데이터베이스에 대한 권한을 주려고 합니다.

권한에는 select , delete , update , insert 등의 권한이 있는데 상황에 맞게 사용하면 되겠습니다.

 

grant all privileges on '데이터베이스명'.'테이블명' to '계정명'@'호스트명' identified by '계정 비밀번호' with grant option;

grant all privileges on dbtest123.* to test123@'%' identified by 'test123' with grant option;

 

위와 같이 all은 모든 권한에 해당이 되어지며 해당 데이터 베이스에 대한 권한을 부여해주고

flush privileges;

적용을 해주게 되면 적용 완료

 

해당 아이디에 대한 권한을 확인 

show grants for test123@'%';

 

위와 같이 권한이 추가되어진 것을 볼수 있습니다. 

 

다시 test123 으로 접속을 하게 되면 아래와 같이 dbtest123에 접속이 가능하게 됩니다.

 

위와 같이 접속을 하고 테이블 생성 , 삭제 , 조회 , 수정 등을 할수 있습니다.

 

그리고 이전 권한을 해제 할수도 있는데 

revoke all on '데이터베이스명'.'테이블명' from '계정명'@'호스트명';
revoke all on dbtest123.* from test123@'%';

 

 

위와 같이 권한이 해제 되어집니다.

 

위와 같이 select query 에 대한 권한이 없어져서 더이상 조회를 할수 없게 되어집니다. 

 

권한을 적절히 사용하여 사용자 별 or IP 별로 권한을 줄수 있는 방법이 있는데 필요에 의해 적절히 사요하면 될거같습니다. 

'MYSQL' 카테고리의 다른 글

[Mysql] 계정 생성 및 접속  (0) 2020.04.06