Mysql 의 외부 접속 권한 추가하기

Written on April 9, 2016


Mysql 을 설치 한 후 가장 먼저 해야 할 일이 유저 생성과 권한 설정 일 것이다. root 사용자는 host 와 user 별로 접근 권한을 지정 해 줄수 있다. 만약 지정되지 않은 user 계정으로, 또는 지정되지 않은 host 에서 접속을 시도 할 경우 다음과 같은 에러 메세지와 함께 접속이 거부된다.

Host 'host명 또는 IP주소' is not allowed to connect to this MySQL server

따라서 'user'@'host명 또는 IP주소' 같은 형태의 스크립트를 통해 user 별, host 별 권한을 추가하여 접근을 허용 하도록 추가 하여야 한다.

권한 추가

영어 사이트를 보면 뇌에 과부하가 걸리기 때문에 한글로 잘 정리된 인생무상 님의 블로그를 참조하면서 공부하였다. 이곳은 내가 자주 쓰는 명령어를 정리하는 포스팅 이기 때문에, grnat 명령어의 상세 스펙이 궁금하다면 인생무상 님의 블로그를 참조하는것도 좋다. 다음은 grant 명령어를 이용한 권한 추가 스크립트 예제이다.

GRANT
grant all privileges on 디비명.테이블명 to 'user'@'host명 또는 IP주소' identified by '패스워드' with grant option; 
flush privileges;

grant all 명령어의 경우, DDL, DML, DCL 에 대해서 권한을 제한할 수 있다. 예) grant select,update,insert privileges … identified by '패스워드' 명령어의 경우 비밀번호를 변경 할 계획이 없으면 생략해도 된다. with grant option 명령어는 다른 사용자에게 grant 권한을 부여 할 수 있도록 해주도록 하며, 필요치 않을시 생략 가능하다.

권한 제거

REVOKE

자세한 설명은 생략한다.

revoke all on 디비명.테이블명 from 사용자;
flush privileges;

단어 정리

정말 자주 사용하는 단어들임에도 해도해도 너무할 정도로 자꾸 까먹어서 이번 기회에 정리하고자 한다.

GRANT
  1. (특히 공식적・법적으로) 승인하다
  2. (내키지 않지만) 인정하다
PRIVILEGES
  1. (특정 개인・단체가 갖는) 특전
  2. (사회 내의 부유층이 갖는) 특권
FLUSH
  1. 붉어지다, 상기되다
  2. (변기의) 물이 쏟아지다
  3. (물로) ~을 씻어 내다

참고한 사이트

제타위키 인생무상님의 블로그