zoukankan      html  css  js  c++  java
  • 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

    drop trigger ZT_DELETETABLEINFO_TRIGGER;
    create trigger ZT_DELETETABLEINFO_TRIGGER
      before delete on tablename
      for each row
      begin
        IF :old.cloumn= 'cloumn' THEN --这里加过滤条件
          insert into ZT_DELETETABLEINFO
          (operatoruser, machine, ip, operatortime, dmlsql,tablename)
        values
          (user,SYS_CONTEXT('USERENV', 'HOST'),sys_context('userenv', 'ip_address'),sysdate,'','tablename');
        END IF;
      end;

     
    -- 1.查询当前登录用户
    select user,ora_login_user from dual;
    -- 2.查询当前登录IP
    select SYS_CONTEXT('USERENV', 'IP_ADDRESS') as clientip from dual;
    -- 3.查询登录机器
    select SYS_CONTEXT('USERENV', 'HOST') as clientname  from dual;
  • 相关阅读:
    32 最小子串覆盖
    31 数组划分
    29 交叉字符串
    动态规划
    18 带重复元素的子集
    17 子集
    16 带重复元素的排列
    23.二叉树的后续遍历序列
    J.U.C-其他组件
    21.Longest Palindromic Substring(最长回文子串)
  • 原文地址:https://www.cnblogs.com/zeussbook/p/14188989.html
Copyright © 2011-2022 走看看