ORACLE DDL觸發器
create or replace trigger tr_ddl
before ddl on database
declare
l_errmsg varchar2(100) := '你無權修改,專案組!!!';
begin
if (Ora_dict_obj_type = 'TABLE' or Ora_dict_obj_type='INDEX') AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
if (Ora_dict_obj_type = 'TRIGGER' ) AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP' or Ora_sysevent = 'CREATE') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
exception
when no_data_found then
null;
end;
before ddl on database
declare
l_errmsg varchar2(100) := '你無權修改,專案組!!!';
begin
if (Ora_dict_obj_type = 'TABLE' or Ora_dict_obj_type='INDEX') AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
if (Ora_dict_obj_type = 'TRIGGER' ) AND
(ora_dict_obj_owner ='NCCMOLTP_HNS' or ora_dict_obj_owner='NCCMHIST_HNS') and ora_login_user not in ('SYS', 'SYSTEM') and
(Ora_sysevent = 'ALTER' OR Ora_sysevent = 'DROP' or Ora_sysevent = 'CREATE') then
raise_application_error(-20001,
ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' ||
l_errmsg);
end if;
exception
when no_data_found then
null;
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-734975/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle ddl 觸發器Oracle觸發器
- Oracle 觸發器 限制DDL操作Oracle觸發器
- DML操作 DDL觸發器觸發器
- Oracle資料庫DDL審計觸發器觸發的bug問題Oracle資料庫觸發器
- 資料庫觸發器,禁止DDL操作資料庫觸發器
- DDL觸發器設定導致DDL無法執行(二)觸發器
- DDL觸發器設定導致DDL無法執行(一)觸發器
- oracle trigger觸發器審計schema物件的變更ddlOracle觸發器物件
- Oracle觸發器Oracle觸發器
- Oracle觸發器觸發級別Oracle觸發器
- 透過觸發器禁止模式物件的DDL操作觸發器模式物件
- 使用系統級觸發器禁用DDL語句觸發器
- Oracle之觸發器Oracle觸發器
- Oracle使用系統級觸發器審計重要帳號的DDL語句Oracle觸發器
- Oracle觸發器6(建立系統事件觸發器)Oracle觸發器事件
- 根據業務寫觸發器(oracle觸發器片)觸發器Oracle
- ORACLE觸發器詳解Oracle觸發器
- Oracle登陸觸發器Oracle觸發器
- oracle 觸發器-表同步Oracle觸發器
- Oracle 登入觸發器Oracle觸發器
- oracle 觸發器 client 事件Oracle觸發器client事件
- Oracle開發基礎-觸發器Oracle觸發器
- SQL Server 2005中的DDL觸發器的實現SQLServer觸發器
- oracle 批量刪除觸發器Oracle觸發器
- oracle 觸發器的例項Oracle觸發器
- ORACLE資料庫DDL審計觸發器與隱藏引數_system_trig_enabledOracle資料庫觸發器
- 使用自治事務在觸發器中執行DDL語句示例觸發器
- Oracle 觸發器中使用遊標Oracle觸發器
- Oracle觸發器詳細介紹Oracle觸發器
- 【原創】建立DDL觸發器捕捉schema所有物件改變的記錄觸發器物件
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- Oracle中觸發器的應用 (zt)Oracle觸發器
- oracle觸發器~ 更新多表的問題Oracle觸發器
- oracle trigger觸發器這servererrorOracle觸發器ServerError
- Oracle Instead of 觸發器的使用Oracle觸發器
- SQL Server 2005中使用DDL觸發器監控資料庫變化SQLServer觸發器資料庫
- 禁止oracle表的觸發器triggerOracle觸發器
- ORACLE 觸發器語法及例項 一Oracle觸發器