记SESSION?没听说过,UP一下,学习一下
解决方案 »
- 关于循环执行本地sql脚本
- 如何用iAnywhere连接Sql Anywhere 12
- 请问关于程序包中的问题
- oracle高级问题,请教高手
- 请教drop user pubr cascade 执行时间为什么特别长?
- DBMS_MONITOR.session_trace_enable执行无效
- 请教一个查询!!!
- SQL操作的语句
- oracle9i imp-00003,imp-00017..问题求解!请高手指点!
- 用户权限问题(OEM)
- 如果字段A='D' 那么返回B,如果字段A='C',那么返回E,在SELECT 语句中怎么写,一时忘记了,
- sql语言里:条件not in 与not exist有什么区别?
/**
* drop語句的審計日誌表
*/
create table drop_log
(
session_id int not null, -- sessionid
drop_time date, -- drop的時間
ip_address varchar2(20), -- ip地址
object_owner varchar2(30), -- 對象的擁有者
object_name varchar2(30), -- 對象名稱
object_type varchar2(20), -- 對象類型
drop_by_user varchar2(30) -- 執行drop語句的用戶
);create or replace trigger drop_info
after drop on mfg0513user.schema -- 在mfg0513user用戶上創建審計drop的觸發器
begin
insert into drop_log
(session_id,
drop_time,
ip_address,
object_owner,
object_name,
object_type,
drop_by_user)
values(USERENV('SESSIONID'),
sysdate,
SYS_CONTEXT('USERENV','IP_ADDRESS'),
sys.dictionary_obj_owner,
sys.dictionary_obj_name,
sys.dictionary_obj_type,
sys.login_user);
end;執行drop的語句我沒有辦法給你抓出來,就像你說的那樣,v$sql不紀錄DDL語句,
不過對象名稱和對象類型都可以抓出來,我想這對你來說應該足夠了.另外:create和alter動作都可以按照上面的方式建類似的表和類似的觸發器做到.
希望對你有所幫助.