Orcal创建触发器
作者:互联网
在工作,发现公共的一张表某个字段的数据一直被删除。但是系统庞大,短时间难以定位是哪里删除了这些数据。因此萌生了创建一个触发器【审计开销太大】,记录删除这张表的操作。遗憾的是Orcal 11无法使用ora_sql_txt记录操作的SQL语句。
一、触发器语法
-- 创建触发器 create or replace trigger 触发器名 before|after|instead of 触发时间 on 触发对象 表|视图 (for each row) begin 触发操作 end;
参考
二、实例
--1.创建删除记录表 监控用户删除某个表的操作 --drop table ZT_DELETETABLEINFO; create table ZT_DELETETABLEINFO ( operatoruser VARCHAR2(20), machine VARCHAR2(32), ip VARCHAR2(32), operatortime DATE, dmlsql VARCHAR2(4000), tablename VARCHAR2(256) ); comment on table ZT_DELETETABLEINFO is '删除记录表'; comment on column ZT_DELETETABLEINFO.operatoruser is '操作用户'; comment on column ZT_DELETETABLEINFO.operatoruser is '机器'; comment on column ZT_DELETETABLEINFO.ip is '操作IP'; comment on column ZT_DELETETABLEINFO.operatortime is '操作时间'; comment on column ZT_DELETETABLEINFO.dmlsql is '执行的SQL语句'; comment on column ZT_DELETETABLEINFO.tablename is '被删除的表'; --2.创建触发器 监控 删除表记录 --drop trigger ZT_DELETETABLEINFO_TRIGGER create trigger ZT_DELETETABLEINFO_TRIGGER before delete on if_quotaresult begin insert into ZT_DELETETABLEINFO (operatoruser, machine, ip, operatortime, dmlsql,tablename) values (user,SYS_CONTEXT('USERENV', 'HOST'),sys_context('userenv', 'ip_address'),sysdate,'','if_quotaresult'); end;
标签:comment,DELETETABLEINFO,触发器,删除,column,创建,ZT,Orcal 来源: https://www.cnblogs.com/zeussbook/p/14188989.html