Oracle11G监控单张表的增删改操作

页面导航:首页 > 数据库 > oracle > Oracle11G监控单张表的增删改操作

Oracle11G监控单张表的增删改操作

来源: 作者: 时间:2016-02-16 09:27 【

前言:
前言:
 
一:使用自带的审计功能
SQL> show parameter audit
 
2,开启审计功能
 
需要用sysdba,注意audit_trail要为DB_EXTENDED才记录执行的具体语句...
 
3,关闭审计功能
SQL> alter system set audit_trail = none scope=spfile;
 
4,针对某张表的审计功能
AUDIT UPDATE,DELETE,INSERT ON T_TEST by access;
 
5,对该张表进行各种DML操作测试
 
6,查询审计的信息
select EXTENDED_TIMESTAMP,SESSION_ID,SQL_TEXT from DBA_COMMON_AUDIT_TRAIL ORDER BY EXTENDED_TIMESTAMP DESC;
 
二,采用触发器
 
看到线上数据库load比以前增加蛮多的,为了单张表的监控开启审计比较消耗资源,有些不划算,所以可以采用另外一种办法来做,就是在表上建立触发器。
 
1,先建立建立测试表:
 
查看已经建立的表 aaa_test与trig_sql。
 
2,并且在 trig_sql表上面添加索引:
create index idx_time on plas.trig_sql (LT);
 
3,建立触发器
create or replace trigger pri_test
 
4,开始进行数据操作测试:
insert into plas.aaa_test1 select 2,'tom',sysdate from dual;
 
5,去查看表记录,会发现如下
SQL> select * from plas.trig_sql;
PS:看到SQLTEXT有些都为 begin :id := sys.dbms_transaction.local_transaction_id; end; 的,是因为我执行的insert、delete、update语句在plsqldev.exe客户端执行的,所以没有记录下执行的sql语句。而有些通过 (TNS V1-V3)客户端连接执行的,会记录下执行过的update语句。
 
6,统计下当前都有哪些用户以及ip执行了dml操作。
SQL> select username,client_ip from plas.trig_sql group by username,client_ip;
 
Tags:

相关文章

    文章评论

    最 近 更 新
    热 点 排 行
    Js与CSS工具
    代码转换工具
    
    <