문서의 이전 판입니다!
FGA Policy
DBMS_FGA.ADD_POLICY(
object_schema VARCHAR2, ---------------------------------- ①
object_name VARCHAR2, ------------------------------------ ②
policy_name VARCHAR2, ------------------------------------ ③
audit_condition VARCHAR2, -------------------------------- ④
audit_column VARCHAR2, ----------------------------------- ⑤
handler_schema VARCHAR2, --------------------------------- ⑥
handler_module VARCHAR2, --------------------------------- ⑦
enable BOOLEAN, ------------------------------------------ ⑧
statement_types VARCHAR2, -------------------------------- ⑨
audit_trail BINARY_INTEGER IN DEFAULT, ------------------- ⑩
audit_trail_opts BINARY_INTEGER IN DEFAULT); ------------- ⑪
⊕⑨ ~ ⑪ : 10g 추가된 기능
① ~ ③ : FGA에서 설정하고자 하는 스키마명, 객체명(테이블, 뷰 이름), Policy명
④ : 상세 감사 지정. 스키마 객체에 대한 논리적인 데이터 그룹에 상응하는 where 절 지정
“department_id=10” 으로 지정 : 조회대상 객체에 AUDIT_CONDITION을 만족하는 데이터가 있다면, 명시적인 조건을 만족하지 않아도 Audit Trail은 생성된다.
ex) SELECT … FROM employees;
⇒ where 절에 조건 없이 전체를 조회하는 것 역시, AUDIT_CONDITION에 지정한 “department_id=10”인 데이터도 조회되므로 이 문장도 FGA의 대상이다.
⑤ : 감사 대상이 되는 컬럼명 지정. 1개 이상의 컬럼 지정 가능(10g 추가 기능)
⑥, ⑦ : FGA설정에 의해서 Audit Trail이 생성될 때 같이 실행될 수 있는 프로시저를 작성하는 경우, 프로시저의 스키마명과 프로시저명을 기술
⑧ : FGA 기능 활성화 여부 지정. default가 TRUE임에도 불구하고 TRUE로 설정하지 않으면 FGA 설정이 활성화되지 않는다.
⑨ : FGA가 적용되는 문장 종류에 대해서 기술. INSERT, UPDATE, DELETE, SELECT(default) 중에서 지정하며,
MERGE문은 내부적으로 INSERT 또는 UPDATE의 지정의 영향을 받음
⑩ : “AUDIT_TRAIL ⇒ DBMS_FGA.DB_EXTENDED”로 설정하는 경우 SYS.FGA_LOG$의 LSQLTEXT, LSQLBIND컬럼에 Audit Trail이 생성된다.
⑪ : DBMS_FGA.ALL_COLUMNS & DBMS_FGA.ANY_COLUMNS