DBMS_FGA

DBMS_FGA 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명합니다.

개요

DBMS_FGA패키지는 FGA(Fine-Grained Auditing) policy를 관리하는 프러시저를 제공합니다.

FGA는 테이블 혹은 뷰에서 특정 조건을 만족하는 데이터에 대한 SQL 동작을 감시하는 보안 기능입니다. 감 시 대상 데이터와 SQL 동작은 FGA policy 단위로 정의하고 관리합니다. 감시 대상 데이터는 지정된 SQL WHERE 절의 조건식 또는 컬럼 이름을 통해 각각 행 단위 또는 열 단위로 특정할 수 있습니다. FGA policy가지원하는 SQL 구문 타입은 SELECT, INSERT, UPDATE, DELETE, MERGE 구문입니다.

DBMS_FGA 패키지에 대한 EXECUTE 권한만 있으면 제공하는 프러시저들을 사용할 수 있습니다. 다음은 DBMS_FGA 패키지 내 정의된 상수입니다.

EXTENDED	CONSTANT	NUMBER	:=	1;
DB	        CONSTANT	NUMBER	:=	2;
XML	        CONSTANT	NUMBER	:=	4;
ANY_COLUMNS	CONSTANT	NUMBER	:=	0;
ALL_COLUMNS	CONSTANT	NUMBER	:=	1;

프러시저

본 절에서는 DBMS_FGA 패키지에서 제공하는 프러시저를 알파벳 순으로 설명합니다.

ADD_POLICY

FGA policy를 생성하는 프러시저입니다.

한 오브젝트 당 최대 256개의 policy를 생성할 수 있고, 각 policy 당 최대 1개의 감시 기록을 남깁니다.

ADD_POLICY 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

object_schema

  • 감시 대상 오브젝트의 스키마 이름

(기본값: NULL, NULL은 현재 세션의 스키마 이름을 의미)

object_name

  • 감시 대상 오브젝트의 이름

policy_name

  • 생성할 policy 이름

  • 설정 값은 유일해야 함

audit_condition

  • 오브젝트 내 감시 대상 데이터의 행 조건을 특정하기 위한 SQL WHERE 절의 조건식

  • 검색, 삽입, 갱신, 또는 삭제되는 행의 값을 사용하여 계산할 수 있는 조건식이어야 함

  • SYS_CONTEXT와 같은 함수를 사용할 수 있음

  • 조건식을 만족하는 행을 참고하면 감시 대상이 됨

(기본값: NULL, NULL은 TRUE를 의미)

audit_column

  • 오브젝트 내 감시 대상 데이터의 열 조건을 특정하기 위한 컬럼 이름의 리스트

(기본값: NULL, NULL은 참조하는 컬럼에 관계 없이 감시합니다는 의미)

handler_schema

  • 감시 기록을 남김과 동시에 1번만 수행할 프러시저의 스키마 이름 (현재 미지원 기능)

(기본값: NULL, NULL은 현재 세션의 스키마 이름을 의미)

handler_module

  • 감시 기록을 남김과 동시에 1번만 수행할 프러시저의 이름

  • 패키지 이름을 포함할 수 있음(현재 미지원 기능)

enable

  • 생성할 policy의 활성화 여부 (기본값: TRUE)

statement_types

  • 생성할 policy가 감시할 SQL 구문 타입

– INSERT

– UPDATE

– DELETE

– SELECT (기본값)

  • MERGE 구문은 내부에서 사용된 SQL 구문 타입에 따라 감시 여부가 결정

audit_trail

감시 기록을 남길 위치와 SQL 구문 및 바인드 변수 기록 여부를 결정

  • DBMS_FGA.DB : SQL 구문과 바인드 변수를 제외한 감시 기록을 SYS.FGA_LOG$ 테이블에 남김

  • DBMS_FGA.DB + DBMS_FGA.EXTENDED : SQL 구문과 바인드 변수를 포함한 감시 기록을 SYS.FGA_LOG$ 테이블에 남김 (기본값)

  • DBMS_FGA.XML : SQL 구문과 바인드 변수를 제외한 감시 기록을 XML 파일로 남김 (현재 미지원 기능)

  • DBMS_FGA.XML + DBMS_FGA.EXTENDED : SQL 구문과 바인드 변수 를 포함한 감시 기록을 XML 파일로 남김 (현재 미지원 기능)

audit_column_opts

SQL 동작이 audit_column 인자에 명시된 모든 컬럼을 참고할 때만 감시 기록을 남길지 일부만 접근해도 감시 기록을 남길지 결정

  • DBMS_FGA.ALL_COLUMNS : audit_column 인자에 명시된 모든 컬럼을 참고할 때 감시 기록을 남김

  • DBMS_FGA.ANY_COLUMNS : audit_column 인자에 명시된 일부 컬럼을 참고할 때 감시 기록을 남김 (기본값)

  • 예제

DISABLE_POLICY

FGA policy를 비활성화하는 프러시저입니다.

DISABLE_POLICY 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

object_schema

  • 감시 대상 오브젝트의 스키마 이름

(기본값: NULL, NULL은 현재 세션의 스키마 이름을 의미)

object_name

감시 대상 오브젝트의 이름

policy_name

비활성화할 policy 이름

  • 예제

DROP_POLICY

FGA policy를 삭제하는 프러시저입니다.

DROP_POLICY 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

object_schema

  • 감시 대상 오브젝트의 스키마 이름

(기본값: NULL, NULL은 현재 세션의 스키마 이름을 의미)

object_name

감시 대상 오브젝트의 이름

policy_name

삭제할 policy 이름

  • 예제

ENABLE_POLICY

FGA policy를 활성화하는 프러시저입니다.

ENABLE_POLICY 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

object_schema

감시 대상 오브젝트의 스키마 이름

(기본값: NULL, NULL은 현재 세션의 스키마 이름을 의미)

object_name

감시 대상 오브젝트의 이름

policy_name

활성화할 policy 이름

enable

policy의 활성화 여부 (기본값: TRUE)

  • 예제

Last updated