MySQL REVOKE는 사용자의 권한을 제거하는 데 사용되는 SQL 명령어입니다. 이 명령어를 활용하면 불필요한 권한을 삭제하여 데이터베이스 보안을 강화할 수 있습니다. 특히, 시스템 관리자는 사용자 권한을 적절히 관리하여 민감한 데이터의 무단 접근을 방지하고, 데이터베이스를 안전하게 보호할 수 있습니다.
REVOKE의 주요 기능
- 특정 권한 제거
사용자가 가지고 있는 특정 권한만 선택적으로 제거할 수 있습니다. - 다양한 대상 적용
데이터베이스, 테이블, 컬럼, 뷰 등 다양한 레벨에서 권한을 제거할 수 있습니다. - 세부적인 제어 가능
특정 호스트나 사용자 계정에 대해 정밀하게 권한을 제어할 수 있습니다. - 보안 유지 강화
불필요한 권한을 제거함으로써 시스템 보안을 유지할 수 있습니다.
REVOKE 기본 문법
REVOKE 권한목록 ON 대상 FROM '사용자'@'호스트';
- 권한목록: 제거할 권한(예: SELECT, INSERT, UPDATE 등).
- 대상: 권한을 제거할 데이터베이스나 테이블.
- 사용자: 권한이 제거될 사용자 계정.
- 호스트: 해당 계정이 접근 가능한 IP 또는 호스트 이름.
권한 제거의 실제 예제
전체 권한 제거
특정 데이터베이스에서 사용자의 모든 권한을 제거하려면 다음과 같이 작성합니다:
REVOKE ALL PRIVILEGES ON my_database.* FROM 'user1'@'localhost';
위 명령어는 user1이 my_database 데이터베이스에서 수행할 수 있는 모든 권한을 제거합니다.
특정 권한만 제거
특정 작업에 대한 권한만 제거하려면:
REVOKE SELECT, INSERT ON my_database.* FROM 'user2'@'192.168.1.100';
이 명령은 user2가 SELECT와 INSERT 작업을 수행할 수 없도록 설정합니다.
특정 테이블의 권한 제거
REVOKE UPDATE ON my_database.customers FROM 'user3'@'%';
이 명령어는 user3 사용자가 customers 테이블에서 UPDATE 권한을 잃게 만듭니다.
GRANT OPTION 권한 제거
사용자가 다른 사용자에게 권한을 부여하지 못하도록 하려면:
REVOKE GRANT OPTION ON my_database.* FROM 'admin_user'@'localhost';
이 명령어는 admin_user가 부여받은 권한을 다른 사용자에게 부여할 수 없도록 제한합니다.
REVOKE를 활용한 실제 사례
1. 읽기 전용 권한 제거
데이터베이스를 더 이상 읽을 필요가 없는 사용자에게서 권한을 제거합니다.sql
REVOKE SELECT ON company_db.* FROM 'reader_user'@'192.168.1.150';
2. 관리 권한 제거
관리자가 변경되었거나 보안 이유로 모든 권한을 제거해야 할 때:
REVOKE ALL PRIVILEGES ON *.* FROM 'admin_user'@'%';
3. 특정 호스트 접근 제한
한 사용자가 특정 호스트에서만 접근하도록 설정하기 위해 다른 호스트의 권한을 제거합니다:
REVOKE ALL PRIVILEGES ON my_database.* FROM 'user4'@'192.168.1.200';
SHOW GRANTS로 권한 확인하기
권한 제거 후, 해당 사용자가 어떤 권한을 보유하고 있는지 확인하려면 SHOW GRANTS를 사용합니다:
SHOW GRANTS FOR 'user2'@'192.168.1.100';
출력 예시:
+-----------------------------------------------------------+
| Grants for user2@192.168.1.100 |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user2'@'192.168.1.100' |
+-----------------------------------------------------------+
USAGE는 해당 계정이 현재 아무 권한도 가지고 있지 않음을 나타냅니다.
권한 제거와 보안의 관계
MySQL REVOKE 명령어를 통해 불필요한 권한을 정리하면 다음과 같은 보안 강화를 기대할 수 있습니다:
- 데이터 유출 가능성을 감소시킴.
- 민감한 데이터 접근을 제한함.
- 비인가된 작업 수행 방지.
REVOKE 관련 추가 팁
- 권한과 계정의 분리: REVOKE 명령은 권한만 제거하며, 계정을 삭제하지 않습니다. 계정을 삭제하려면 DROP USER를 사용해야 합니다.
- 정기적인 권한 점검: SHOW GRANTS를 활용하여 주기적으로 권한을 검토하고, 불필요한 권한을 제거하는 것이 좋습니다.
공식 가이드 문서
MySQL REVOKE에 대한 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/revoke.html
'DB' 카테고리의 다른 글
[MySQL] CREATE FUNCTION 완벽 가이드 사용법(함수 생성) (0) | 2025.01.08 |
---|---|
[MySQL] DROP EVENT 완벽 가이드 사용법(이벤트 삭제) (0) | 2025.01.08 |
[MySQL] ALTER EVENT 완벽 가이드 사용법(이벤트수정) (0) | 2025.01.08 |
[MySQL] CREATE EVENT 완벽 가이드 사용법(스케줄링) (0) | 2025.01.08 |
[MySQL] GRANT 완벽 가이드 사용법(권한 부여) (0) | 2025.01.08 |
[MySQL] SHOW CREATE 완벽 가이드 사용법(객체 생성 스크립트 보기) (0) | 2025.01.08 |
[MySQL] SET FOREIGN_KEY_CHECKS 완벽 가이드 사용법(외래 키 제약 조건 활성/비활성) (0) | 2025.01.08 |
[MySQL] ALTER DATABASE 완벽 가이드 사용법(데이터베이스 설정 변경) (0) | 2025.01.08 |