oracle 细粒审核,oracle10g 细粒审计
oracle10g 細粒審計
oracle10g 細粒審計
自己試驗成功的例子:
sqlplus /nolog
conn /as sysdba
begin
dbms_fga.add_policy (
object_schema=>'system', ####方案名
object_name=>'nbstutb', ####表名
policy_name=>'nbstu', ####自定義的策略名
statement_types=> 'SELECT,DELETE,INSERT,UPDATE'
);
end;
/
清除試驗數據:清除細粒審計的審計記錄:
sqlplus /nolog
conn /as sysdba
delete sys.fga_log$;
commit;
ORACLE 10g細粒度審計
ORACLE 10g在細粒度審計(FGA)方面有了很大的擴展。9i的細粒度審計只支持SELECT語句,而10g提供了對DML的支持(支持Insert、Update和Delete,Merge不是一個獨立的DML語句)。
10g的細粒度審計不僅僅能夠對一個相關字段進行審計,可以對多個字段進行審計。在audit_column_opts中可以設置dbms_fga.all_columns或者dbms_fga.any_columns。
審計日志可以把SQL文本和綁定變量寫入LOB字段。如果審計的開銷過大,可以關閉寫入LOB的信息。
以下是一個10G DBMS_FGA.ADD_POLICY的例子,可以看出和9i的細粒度審計有很大的不同:
dbms_fga.add_policy ( object_schema => 'PIET', object_name => 'EMP',
policy_name => 'MYPOLICY1', audit_condition => NULL,
audit_column => 'SALARY,COMMISSION_PCT',
audit_column_opts => DBMS_FGA.ALL_COLUMNS,
audit_trail => DBMS_FGA.DB_EXTENDED,
statement_types => 'INSERT, UPDATE');
下面一個例子演示了對INSERT的審計過程:
SQL> connect piet/piet
Connected.
SQL> CREATE TABLE EMP (
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4) CONSTRAINT EMP_SELF_KEY REFERENCES EMP (EMPNO),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) NOT NULL,
CONSTRAINT EMP_PRIMARY_KEY PRIMARY KEY (EMPNO));
Table created.
SQL> INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-81',5000,NU;
1 row created.
SQL> grant all on emp to miller;
Grant succeeded.
SQL> conn system/manager
SQL> execute sys.DBMS_FGA.ADD_POLICY(-
object_schema => 'PIET', -
object_name => 'EMP', -
policy_name => 'mypolicy1', -
audit_condition => 'sal < 1000', -
audit_column => 'comm', -
enable => TRUE, -
statement_types => 'INSERT');
PL/SQL procedure successful
ly completed.
SQL> select * from DBA_AUDIT_POLICY_COLUMNS ;
OBJECT_SCHEMA OBJECT_NAME
總結
以上是生活随笔為你收集整理的oracle 细粒审核,oracle10g 细粒审计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浙江大学概率论与数理统计第四版考研真题和
- 下一篇: PYQT5:基于QsciScintill