본문 바로가기
Database/Oracle

[ORACLE] REVOKE()로 사용자 접근 통제하는 법

by Papa Martino V 2025. 6. 12.
728x90

오라클 REVOKE()로 사용자 접근 통제하는 법
[Oracle] REVOKE

 

 

데이터베이스 보안은 단순한 패스워드 관리 수준을 넘어, 사용자별로 권한을 정확히 통제하고 회수하는 것이 핵심입니다. Oracle에서 GRANT로 부여한 권한은 REVOKE 문을 통해 언제든지 회수할 수 있습니다. REVOKE는 권한 관리의 핵심 SQL 문법으로, 실무적인 데이터 보호와 접근 제어에서 매우 중요한 역할을 합니다. 이번 글에서는 Oracle의 REVOKE 문법, 적용 사례, 주의사항 등을 체계적으로 정리해드립니다.

1. Oracle REVOKE 기본 문법

REVOKE 권한 FROM 사용자;

Oracle REVOKE 문은 이미 부여된 권한이나 롤(ROLE)을 특정 사용자로부터 회수할 때 사용합니다. 회수는 즉시 반영되며, 사용자 세션을 새로 시작하지 않아도 권한이 사라집니다.

예시

REVOKE SELECT, INSERT ON employees FROM hr_user;

위 명령은 hr_user에게 부여된 employees 테이블의 SELECT 및 INSERT 권한을 회수합니다.

2. REVOKE가 가능한 권한의 종류

구분 권한 설명
시스템 권한 CREATE SESSION, CREATE TABLE 등 DB 수준에서 계정이 수행할 수 있는 기능
오브젝트 권한 SELECT, INSERT, UPDATE, DELETE 등 특정 테이블이나 뷰에 대한 권한
롤(Role) DBA, CONNECT 등 여러 권한이 포함된 그룹 권한

3. 실무 예제로 보는 REVOKE 활용

1) 시스템 권한 회수

REVOKE CREATE SESSION FROM user_dev;

개발 계정의 로그인 권한을 차단할 수 있습니다.

2) 테이블 권한 회수

REVOKE UPDATE ON orders FROM partner_user;

제휴사가 더 이상 주문 정보를 수정할 수 없도록 설정합니다.

3) 롤 회수

REVOKE CONNECT FROM analyst_user;

분석 계정의 DB 기본 접근 권한을 제거할 수 있습니다.

4. REVOKE 사용 시 주의사항

  • WITH GRANT OPTION 회수 불가: REVOKE는 GRANT OPTION까지는 제거하지 못하므로, 별도로 계층적으로 확인 필요
  • 종속 권한 자동 제거 안됨: 연관된 뷰나 트리거, 프로시저가 동작 불능이 될 수 있음
  • 롤 회수 시 복수 사용자 영향 주의: 동일한 롤을 공유하는 사용자 모두에게 영향을 줄 수 있음

5. GRANT vs REVOKE 비교 요약

항목 GRANT REVOKE
기능 사용자에게 권한 부여 사용자로부터 권한 회수
적용 대상 시스템 권한, 오브젝트 권한, 롤 시스템 권한, 오브젝트 권한, 롤
적용 시점 즉시 반영 즉시 반영
세션 영향 로그인 중지 없음 기존 세션에도 즉시 영향

6. 권한 회수 후 확인하는 방법

REVOKE 실행 후 다음 뷰를 통해 권한 변경 사항을 확인할 수 있습니다:

  • DBA_TAB_PRIVS: 오브젝트 권한
  • DBA_SYS_PRIVS: 시스템 권한
  • DBA_ROLE_PRIVS: 롤 권한

예시 SQL


SELECT * FROM dba_tab_privs WHERE grantee = 'HR_USER';
  

위 쿼리를 통해 HR_USER에게 남아있는 테이블 권한을 확인할 수 있습니다.

7. 보안 강화 관점에서의 REVOKE 전략

  • 불필요한 권한 최소화(Least Privilege): 필요한 최소 권한만 유지
  • 정기적인 권한 점검: 권한 부여/회수 이력 추적 및 감시
  • CI/CD 환경 권한 자동화: 배포 스크립트에 권한 설정 포함

8. 결론

Oracle에서의 REVOKE 구문은 단순한 기능이지만, 데이터베이스 운영 안정성과 보안성을 확보하는 데 필수적인 수단입니다. 권한이 부여되는 만큼, 회수 역시 명확한 기준과 전략 아래에서 실행되어야 하며, 변경 로그 관리와 권한 추적 체계를 병행하는 것이 이상적입니다. Oracle을 사용하는 모든 개발자와 DBA는 REVOKE의 의미와 영향을 충분히 이해하고 실무에 적용할 수 있어야 합니다.

참고 자료

  • Oracle 공식 문서: https://docs.oracle.com/en/database/
  • Oracle SQL Language Reference (23c 기준)
  • 김도형, 『DBA를 위한 오라클 보안 실무』, 에이콘출판
  • Oracle Security White Paper, 2024 Edition
728x90