使用oracle的審計后,可以從系統察看到那些sql,但不是能捕獲的。
解决方案 »
- 登陆PLSQL后总是报ORA-12154:TNS:could not resolve the connect identifier specified。
- 请教一个power designer的批量修改功能
- 请问,FCF和TAF的区别是什么?
- 请问一个rownum异常的问题
- 各位大神,请教个oracle中functions 的问题。在线等。。。。。。。。。。。。。
- 求助:怎樣更新兩個關聯表中的一個?分不是問題!
- 想深入沟通Oracle技术吗?请大家到这里(Oracle技术论坛www.oraclebbs.com)来一起讨论!
- NAT转换后远程访问oracle的问题
- oracle 连接出现例外问题
- 请问用Oracle9作数据库开发,比较合适的电脑配置是什么样的呢?CPU用PIII 1GHz速度如何?
- 有关oracle重装的问题!急
- 再oracle开发中,什么开发工具最好那〉?
还是给你看一个参考吧。select osuser,username,sql_text
from v$session a,v$sqltext b
where a.sql_address=b.address;
重新启动数据库
DOS下执行
SVRMGRL
CONNECT INTERNAL/ORACLE
SHUTDOWN IMMEDIATE
STARTUP
然后用DBA用户登陆SQL*PLUS
CONNECT SYSTEM/MANAGER
创建一个审计:
SQL> audit create table by access whenever successful;审计已成功。
SQL> select sessionid SID,userid USID,action# ACT,obj$name OBNAME,TIMESTAMP# TIME FROM SYS.AUD$; SID USID ACT OBNAME TIME
----- ------ ---- ------- ------
202 SYSTEM 1 A 2002-08-24 00:59:01说明审计已经启动。
试试通过提取v$sqltext的sql_text字段,分析一下试试
如:
select count(1) from v$sqltext where instr(sql_text,'insert into tbname')>0 or
instr(sql_text,'update tbname')>0 or instr(sql_text,'delete from tbname')>0;
AFTER INSERT OR DELETE OR UPDATE ON "BUSINESS"."TB1" declare
str varchar2(500);
begin
select sql_text into str from sys.gv_$open_cursor
where sid in (select sid from sys.gv_$session where status='ACTIVE')
and upper(substr(sql_text,1,1))<>'S'; insert into tb2(col)values(str);
end;