[MYSQL] DBA 이외 시스템 테이블 접근 불가

1. 설명

- 일반 사용자 계정 유출시 비인가자의 시스템 테이블 접근 위험 있음.


2. 방법

2.1 권한 확인

mysql> show grants for '[계정]'@'[hosts]';

예) show grants for 'test'@'%';


2.2  mysql.user 테이블에 일반 사용자 모든 접근 권한 제거

mysql> revoke all on mysql.user from '[계정]'@'[hosts]';

mysql> flush privileges;

예) revoke all on mysql.user from 'test'@'%';


2.3 mysql.user 테이블에 일반 사용자 접근 권한 제거

mysql> revoke [권한] on mysql.user from [계정];

mysql> flush privileges;

예) revoke delete on mysql.user from test;


3. 기타

- mysql 서비스 재시작 필요 없음.

- ERROR 1141 (42000): There is no such grant defined for user '[계정]' on host '[hosts]'

> 제거할 수 있는 접근 권한이 없기 때문에 발생하는 에러임.('2.1 권한 확인' 방법으로 확인 가능)


끝.