본문 바로가기

DBMS

ORACLE 세부감사 DBMS_FGA

반응형

 

오라클 개발자들에게 배포하고 있는 패키지 DBMS_FGA PL/SQL Package 


-- 세분화 된 감사 결과 확인
SELECT * FROM SYS.FGA_LOG$;
  
-- order entry 계정을 사용한다.
ALTER USER oe ACCOUNT UNLOCK;
ALTER USER oe IDENTIFIED BY oe;
 
-- 고객에 대한 정보 확인
SELECT * FROM oe.customers;
 
-- 고객 테이블에서 민감한 컬럼을 대상으로 세분화된 감사를 수행해보자  BEGIN - END 프로시저 수행
BEGIN
DBMS_FGA.ADD_POLICY(
   object_schema      => 'oe',                  -- 테이블 소유자
   object_name        => 'customers',           -- 테이블
   policy_name        => 'customer_policy01',   -- 정책 이름이 동일하면 안만들어져서 넘버링
   audit_condition    => NULL,
   audit_column       => 'phone_numbers,cust_address',   -- 감사할 컬럼
   handler_schema     => NULL,
   handler_module     => NULL,
   enable             => TRUE, 
   statement_types    => 'INSERT,UPDATE,DELETE',         -- 감사 적용 정책
   audit_trail        => dbms_fga.db + dbms_fga.extended,
   audit_column_opts  => dbms_fga.any_columns );
END;
 
-- 세분화된 감사 설정 정보 확인
SELECT * FROM dictionary WHERE table_name like '%AUDIT%' ORDER BY table_name;
SELECT * FROM dba_audit_policies;        -- 감사 정책
SELECT * FROM dba_audit_policy_columns;  -- 컬럼 중심으로 보여준다.
 
-- 고객 정보 삭제
DELETE FROM OE.CUSTOMERS WHERE customer_id = 217;
 
-- 세분화 된 감사 결과 확인
SELECT * FROM SYS.FGA_LOG$;
SELECT * FROM dba_fga_audit_trail; -- 뷰를 통해 확인
 
 
-- 20대 고객을 대상으로 민감한 컬럼을 조회 할 때 세분화 된 감사를 수행해보자
SELECT * FROM oe.customers
WHERE EXTRACT(YEAR FROM date_of_birth) between 1989 and 1998;
 
BEGIN       -- customer_policy01 정책 삭제
DBMS_FGA.DROP_POLICY(   -- 
   object_schema  => 'oe'
   object_name    => 'customers'
   policy_name    => 'customer_policy01' );
END;
 
BEGIN
DBMS_FGA.ADD_POLICY(
   object_schema      => 'oe',                  -- 테이블 소유자
   object_name        => 'customers',           -- 테이블
   policy_name        => 'customer_policy01',   -- 정책 이름이 동일하면 안만들어져서 넘버링
   audit_condition    => 'EXTRACT(YEAR FROM date_of_birth) between 1989 and 1998'-- 출생정보가 1989년에서 1998년 사이인 값만
   audit_column       => 'credit_limit,marital_status,income_level',   -- 신용한도 , 혼인여부 , 소득수준
   handler_schema     => NULL,
   handler_module     => NULL,
   enable             => TRUE, 
   statement_types    => 'SELECT',         -- 감사 적용 정책
   audit_trail        => dbms_fga.db + dbms_fga.extended,
   audit_column_opts  => dbms_fga.any_columns );
END;
 
 
cs

 

관련 문서 DBMS_FGA : http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_fga.htm#i1011920

반응형