1. 설명
- 관리자 권한이 필요한 계정과 그룹에만 관리자 권한 부여함.
- 비인가자가 관리자 권한이 부여된 계정을 탈취시 DB에 접근할 수 있음.
2. 방법
- mysql.user 에 적용된 권한은 모든 데이터베이스에 적용됨
2.1.1 mysql.user 테이블에 특정 사용자 계정 등록
mysql> insert into mysql.user (host, user, password) values('%', '계정', password ('비밀번호')); <- 모든 권한 'N'으로 설정
예) insert into mysql.user (host, user, password) values('%', 'root', password ('1234'));
2.1.2 mysql.user 테이블 특정 사용자 계정에 특정 권한만 변경
mysql> update mysql.user set [특정 권한]='N' where user='특정 사용자 계정';
예) update mysql.user set Grant_priv='N' where user='root';
- 사용자별 접근 DB를 mysql.db에 등록 후 접근 권한 부여
2.2.1 DB 등록시 권한 부여
mysql> insert into mysql.db values(‘%','등록 DB 이름', '계정', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
mysql> flush privileges;
2.2.2 DB 권한 업데이트
mysql> update mysql.db set [특정 권한]='Y' where db=[등록 DB 이름] and user='user name';
mysql> flush privileges;
예) update mysql.db set Select_priv='Y' where db='test' and user='root';
3. 기타
- mysql 서비스 재시작 필요 없음.
끝.