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

