–建立审计策略
SQL>EXEC DBMS_FGA.ADD_POLICY(OBJECT_SCHEMA=>'SCOTT',OBJECT_NAME=>'EMP',POLICY_NAME=>'CHK_EMP',AUDIT_CONDITION=>'DEPTNO=20',AUDIT_COLUMN=>'SAL',STATEMENT_TYPES=>'UPDATE,SELECT');

SQL>UPDATE EMP SET DEPTNO=10 WHERE EMPNO=7788;
SQL>UPDATE EMP SET SAL=10010 WHERE EMPNO=7788;
SQL>UPDATE EMP SET SAL=8000 WHERE DEPTNO=20;
SQL>select * from emp;
SQL> update emp set ename='maxiajun' where empno=7369;
SQL>commit;

SQL> SET LINESIZE 80
SQL> COL SQL_TEXT FOR A45
SQL> SET LINESIZE 120
SQL> COL DB_USER FOR A15
SQL> SELECT DB_USER,TIMESTAMP ,userhost SQL_TEXT FROM DBA_FGA_AUDIT_TRAIL;

DB_USER         TIMESTAMP SQL_TEXT
————— ——— ———————————————
SCOTT           25-APR-14  UPDATE EMP SET SAL=10010 WHERE EMPNO=7788
SCOTT           25-APR-14  UPDATE EMP SET SAL=8000 WHERE DEPTNO=20
SCOTT           25-APR-14  select * from emp

——细粒度审计结果存放到FGA_LOG$的基表里,通过DBA_FGA_AUDIT_TRAIL 查看。
–清楚细粒度审计结果
SQL> sELECT COUNT(*) FROM FGA_LOG$;

SQL> DELETE FROM FGA_LOG$;

—-禁止精细审计
EXEC DBMS_FGA.DISABLE_POLICY(OBJECT_SCHEMA=>'SCOTT',OBJECT_NAME=>'EMP',POLICY_NAME=>'CHK_EMP');

—-启用细粒度审计
EXEC DBMS_FGA.ENABLE_POLICY(OBJECT_SCHEMA=>'SCOTT',OBJECT_NAME=>'EMP',POLICY_NAME=>'CHK_EMP');

FGA 的指导原则
POLICY_NAME 必须唯一
在创建 POLICY 时,被审计的表或视图必须已经存在
如果被审计的列在表中不存在,则不会对任何行进行审计。
要对所有语句进行审计,可以使用 NULL 条件
 




Related posts

coded by nessus
分享:  DeliciousGReader鲜果豆瓣CSDN网摘
Trackback

no comment untill now

Add your comment now

无觅相关文章插件