개요
Oracle 데이터베이스에서 사용자 활동 감사는 데이터 보안 및 규정 준수를 위한 필수적인 기능입니다. 감사를 통해 누가, 언제, 무엇을 했는지 추적하고 기록하여 보안 정책 위반 및 데이터 남용을 방지할 수 있습니다.
감사 설정
감사 설정을 구성하는 방법은 다음과 같습니다.
- 감사 활성화:
AUDIT_TRAIL
초기화 매개변수를 사용하여 감사를 활성화합니다. - 감사 정책 생성:
CREATE AUDIT POLICY
문을 사용하여 감사할 객체 및 작업을 지정합니다. - 감사 정책 활성화:
AUDIT
문을 사용하여 감사 정책을 활성화합니다.
예시:
-- 감사 활성화 ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE; -- 테이블에 대한 모든 DML 작업 감사 정책 생성 CREATE AUDIT POLICY audit_emp ACTIONS INSERT, UPDATE, DELETE ON hr.employees; -- 감사 정책 활성화 AUDIT POLICY audit_emp;
위 예제는 hr.employees
테이블에 대한 모든 INSERT
, UPDATE
, DELETE
작업을 감사하는 정책을 생성하고 활성화합니다.
감사 유형
Oracle 데이터베이스는 다양한 감사 유형을 제공합니다.
- 표준 감사: 특정 객체 또는 작업에 대한 감사 레코드 생성.
- 세분화된 감사(Fine-Grained Auditing, FGA): 특정 조건이 충족될 때만 감사 레코드 생성. 데이터 값에 따라 감사 여부를 결정할 수 있습니다.
- Value-Based Audit: FGA를 기반으로, 특정 열의 값이 변경될 때 감사를 수행합니다.
예시 (FGA):
-- FGA 정책 생성 BEGIN DBMS_FGA.ADD_POLICY ( object_schema => 'hr', object_name => 'employees', policy_name => 'fga_salary_audit', audit_column => 'salary', audit_condition => 'salary > 100000', statement_types => 'UPDATE', audit_trail => DBMS_FGA.DB + DBMS_FGA.EXTENDED ); END; /
위 예제는 hr.employees
테이블에서 salary
열을 업데이트할 때 salary
값이 100000보다 큰 경우에만 감사를 수행하는 FGA 정책을 생성합니다.
감사 데이터 확인
감사 데이터는 AUD$
, DBA_AUDIT_TRAIL
, USER_AUDIT_TRAIL
뷰를 통해 확인할 수 있습니다.
예시:
-- 모든 감사 레코드 조회 SELECT * FROM DBA_AUDIT_TRAIL; -- 특정 사용자 감사 레코드 조회 SELECT * FROM USER_AUDIT_TRAIL WHERE USERNAME = 'SCOTT';
감사 레코드 관리
감사 레코드 크기가 증가하면 성능에 영향을 미칠 수 있으므로, 정기적으로 감사 데이터를 백업하고 아카이브해야 합니다.
예시:
-- 감사 데이터 아카이브 (테이블 이동) CREATE TABLE audit_archive AS SELECT * FROM DBA_AUDIT_TRAIL; TRUNCATE TABLE DBA_AUDIT_TRAIL;
감사 정책 삭제
감사 정책이 더 이상 필요하지 않으면, NOAUDIT
문을 사용하여 정책을 비활성화하고, DROP AUDIT POLICY
문으로 삭제할 수 있습니다.
예시:
-- 감사 정책 비활성화 NOAUDIT POLICY audit_emp; -- 감사 정책 삭제 DROP AUDIT POLICY audit_emp; -- FGA 정책 삭제 BEGIN DBMS_FGA.DROP_POLICY ( object_schema => 'hr', object_name => 'employees', policy_name => 'fga_salary_audit' ); END; /
고급 감사 옵션
Oracle 데이터베이스는 고급 감사 옵션도 제공합니다.
- 데이터베이스 Vault: 민감한 데이터에 대한 접근 제어를 강화.
- 라벨 보안: 행 레벨 보안을 구현하여 사용자 권한에 따라 데이터 접근 제한.
결론
Oracle 데이터베이스 감사는 데이터 보안 및 규정 준수를 유지하는 데 중요한 도구입니다. 효과적인 감사 전략을 구현하면 데이터베이스 활동을 모니터링하고 잠재적인 보안 위협을 식별하고 대응할 수 있습니다.