MYSQL, grant all privileges 뜻과 주의사항

grant all privileges 명령어는 유저가 데이터베이스에 접근할 수 있도록 권한을 부여할 때 사용합니다.

grant all privileges on [데이터베이스명.테이블명] to [사용자@호스트] identified by '비밀번호' [with grant option];

 

Ex)

grant all privileges on TEST.* to 'testuser'@'localhost' identified by '비밀번호';

TEST라는 데이터베이스의 모든 테이블에 testuser라는 유저가 로컬에서 접근 가능하게 합니다. *는 전체를 의미합니다.

 

grant all privileges on TEST.* to 'testuser'@'127.0.0.1' identified by '비밀번호' with grant option;

127.0.0.1은 localhost와 같은 의미이므로 위 예시와 동일한 권한 부여 효과를 제공합니다. 뒤에 with grant option을 추가하면 testuser가 받은 권한을 다른 유저에게도 줄 수 있습니다.

 

grant all privileges on TEST.* to 'testuser'@'%' identified by '비밀번호';

호스트에 %를 표기하면 원격 접속 권한을 준다는 의미입니다.

 

grant all privileges on *.* to 'testuser'@'%' identified by '비밀번호';

모든 데이터베이스의 모든 테이블에 testuser 계정이 원격으로 접근할 수 있도록 권한을 부여합니다. 대충 봐도 위험해 보이는 권한 설정입니다. 이처럼 grant 옵션으로 권한을 너무 과도하게 부여하면 보안에 문제가 생길 여지가 있습니다. 그러니 권한 부여는 신중하게 해야 합니다.

 

권한 설정 후엔 아래와 같이 변경 사항을 적용해야 합니다.

FLUSH PRIVILEGES;
반응형

댓글

Designed by JB FACTORY