审计(audit):用于监视用户所执行数据库操作,并且oracle会将审计跟踪的结果存放到os文件或数据库中。
oracle11g下默认审计是关闭的,如果想要使用审计,首先要激活审计。
审计参数:audit_sys_operations=TRUE,andit_trail=db或者audit_trail=os
审计表(dba_fga _audit_trail):dba权限可以使用,其他用户需要dba用户授权,语法如下:
SQL>grant select on dba_fga _audit_trail to 用户名;
如何激活审计:
sys权限进入sqlplus,
SQL>show parameter audit_sys_operations;
看到audit_sys_operations参数为false状态,需要激活。
SQL>alter system set audit_sys_operations=TRUE scope=spfile;
SQL>alter system set audit_trail=db scope=spfile;
若是上面设置有效,需要重启数据库
SQL>startup force
SQL> show parameter audit_sys_operations;
SQL> show parameter audit_trail;
定义审计的表:
SQL>execute dbms_fga.add_policy(abject_schema=>'用户名',
object_name=>'定义的表名称',policy_name='chk_定义的表名称',
statement_types=>'insert,update,delete');
例如:SQL>execute dbms_fga.add_policy(abject_schema=>'wcen',
object_name=>'emp',policy_name='chk_emp',
statement_types=>'insert,update,delete');
查询审计操作:
SQL> select t.timestamp,t.sql_text from sys.dba_fga_audit_trail t;
取消审计:
语法:
SQL>execute dbms_fga.drop_policy(object_schema=>'用户名',
object_name=>'要取消审计的表名称',policy_name=>'chk_要取消审计的表名称');
例如:SQL>execute dbms_fga.drop_policy(object_schema=>'wcwen',
object_name=>'emp',policy_name=>'chk_emp');