사용자 활동 감사

개요

Oracle 데이터베이스에서 사용자 활동 감사는 데이터 보안 및 규정 준수를 위한 필수적인 기능입니다. 감사를 통해 누가, 언제, 무엇을 했는지 추적하고 기록하여 보안 정책 위반 및 데이터 남용을 방지할 수 있습니다.

감사 설정

감사 설정을 구성하는 방법은 다음과 같습니다.

  1. 감사 활성화: AUDIT_TRAIL 초기화 매개변수를 사용하여 감사를 활성화합니다.
  2. 감사 정책 생성: CREATE AUDIT POLICY 문을 사용하여 감사할 객체 및 작업을 지정합니다.
  3. 감사 정책 활성화: 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 데이터베이스 감사는 데이터 보안 및 규정 준수를 유지하는 데 중요한 도구입니다. 효과적인 감사 전략을 구현하면 데이터베이스 활동을 모니터링하고 잠재적인 보안 위협을 식별하고 대응할 수 있습니다.

위로 스크롤