MySQL 계정에 DB 엑세스 권한 부여 및 삭제하기 (쿼리 및 테스트 결과)
MySQL 8.0.32 에서 테스트 하였습니다.
// sysdocu 계정에 전체 DB 의 모든 권한 부여
mysql> grant all privileges on *.* to sysdocu@localhost;
// sysdocu 계정에 전체 DB 의 모든 권한 제거
mysql> revoke all privileges on *.* from sysdocu@localhost;
// sysdocu 계정에 한개 DB 의 모든 권한 부여
mysql> grant all privileges on sysdocudb.* to sysdocu@localhost;
// sysdocu 계정에 한개 DB 의 모든 권한 제거
mysql> revoke select on sysdocudb.* from sysdocu@localhost;
* 추가 테스트
- 계정에 모든 DB 접근 권한을 주고, 하나의 DB 권한을 취소하는건 안됩니다. (쿼리 생략)
- 계정에 모든 DB 접근 권한을 주고, 하나의 액션만 취소하는건 됩니다. (액션 단위는 가능한듯함)
mysql> grant all privileges on *.* to sysdocu@localhost;
mysql> revoke select on *.* from sysdocu@localhost;
sysdocu 계정에 select 권한을 제거한 뒤, sysdocu 계정으로 재 로그인하여 select 쿼리를 실행하면 권한이 없다고 출력됩니다.
mysql> select * from mysql.user;
ERROR 1142 (42000): SELECT command denied to user 'sysdocu'@'localhost' for table 'user'
권한을 부여한 그대로의 룰 ({DB명}.{TABLE명}) 로만 권한 제거가 가능한듯 합니다.
'리눅스 > MySQL' 카테고리의 다른 글
[MySQL] AUTO_INCREMENT 초기화 (0) | 2023.07.04 |
---|---|
PostgreSQL 13.7 Replication 설정 (RockyLinux 9.0) (0) | 2023.03.10 |
MySQL (MariaDB) 로그들 logrotate 설정하기 (0) | 2022.10.07 |
mariabackup 을 이용한 MariaDB 10.6.9 Replication 구성하기 (0) | 2022.09.19 |
Rocky Linux 8.6 에서 MariaDB 10.9.2 소스 설치하기 (with InnoDB 이노디비 설정) (0) | 2022.09.13 |