【原創】建立DDL觸發器捕捉schema所有物件改變的記錄
建立記錄表
drop table ddl_log_qiang purge;
create table ddl_log_qiang
(
operation varchar2(50), 什麼操作
obj_owner varchar2(50), 所屬使用者
object_name varchar2(50), 操作物件
attempt_dt date 發生時間
);
select * from ddl_log_qiang;
SQL> select * from ddl_log_qiang;
OPERATION OBJ_OWNER OBJECT_NAME ATTEMPT_DT
-------------------------------------------------------------------------- -------------------------------------------------- -----------
DROP SINOJFS TEST1 2013-6-28 1
CREATE SINOJFS TEST1 2013-6-28 1
ALTER SINOJFS TEST1 2013-6-28 1
ALTER SINOJFS MV_SINO_PERSON 2013-6-29 1
ALTER SINOJFS MV_SINO_PERSON_ADDRESS 2013-6-29 1
ALTER SINOJFS MV_SINO_PERSON_EMPLOYMENT 2013-6-29 1
ALTER SINOJFS MV_SINO_PERSON_CERTIFICATION 2013-6-29 1
刪除DDL觸發器
drop trigger tib_ddl_qiang;
建立DDL觸發器
create or replace trigger tib_ddl_qiang
before create or drop or alter 在這三個操作之前插入表記錄
on schema
declare
oper ddl_log_qiang.operation%type;
begin
insert into ddl_log_qiang select ora_sysevent,ora_dict_obj_owner,ora_dict_obj_name,sysdate from dual;
end;
/
注:觸發器不能呼叫或者間接呼叫commit/rollback,觸發器中的DML語句會與觸發器一起作為一個整體事物,在觸發器結束後會自動進行commit。
測試
drop table test1 purge;
create table test1 (x int,y int);
alter table test1 add (z int);
select * from ddl_log_qiang;
Leonarding
2013.07.03
北京&summer
分享技術~成就夢想
Blog:來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26686207/viewspace-765360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle trigger觸發器審計schema物件的變更ddlOracle觸發器物件
- 透過觸發器禁止模式物件的DDL操作觸發器模式物件
- ORACLE DDL觸發器Oracle觸發器
- oracle ddl 觸發器Oracle觸發器
- 動態改變quartz的觸發器策略?quartz觸發器
- DML操作 DDL觸發器觸發器
- 記錄資料庫所有ddl操作資料庫
- Oracle 觸發器 限制DDL操作Oracle觸發器
- 清空Schema中所有物件的步驟物件
- 【原創】匯出所有物件(表、索引、檢視、同義詞)的建立指令碼物件索引指令碼
- 資料庫觸發器,禁止DDL操作資料庫觸發器
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- 建立MySQL觸發器MySql觸發器
- MySQL 建立觸發器MySql觸發器
- mysql建立觸發器MySql觸發器
- 建立SQL觸發器SQL觸發器
- DDL觸發器設定導致DDL無法執行(二)觸發器
- DDL觸發器設定導致DDL無法執行(一)觸發器
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- SqlServer觸發器的建立與使用SQLServer觸發器
- 使用系統級觸發器禁用DDL語句觸發器
- SQL Server 2005中使用DDL觸發器監控資料庫變化SQLServer觸發器資料庫
- oracle檢視建立物件的DDL語句Oracle物件
- SQL Server 2005中的DDL觸發器的實現SQLServer觸發器
- [原創] 有關觸發器 ORA-04091解決方法觸發器
- 【原創】 演示一個通過觸發器進行審計的示例觸發器
- 瀏覽器的視窗大小被改變時觸發的事件window.onresize瀏覽器事件
- 原生js如何建立相容所有瀏覽器的xmlhttp物件JS瀏覽器XMLHTTP物件
- oracle實驗記錄 (CKPT的觸發)Oracle
- SqlServer-建立觸發器例項SQLServer觸發器
- 通過觸發器記錄資料庫連線資訊觸發器資料庫
- sql觸發器刪除資料庫中的級聯記錄SQL觸發器資料庫
- 資料庫開發---常用物件-觸發器資料庫物件觸發器
- mysql 觸發器/過程中的變數!!MySql觸發器變數
- 頁面狀態改變會觸發的一些事件事件
- [原創]DLink路由器韌體的一次分析記錄路由器
- 簡單建立序列和觸發器示例觸發器
- SQLite建立觸發器 CREATE TRIGGERSQLite觸發器