ITPub博客

首页 > 数据库 > Oracle > Oracle基于值的审核

Oracle基于值的审核

原创 Oracle 作者:llnnmc 时间:2017-09-21 13:40:58 0 删除 编辑

Oracle通过使用触发器,可以实现基于值的审核。


基于值的审核实验:


1、用户scott有一张员工表emp,其中字段sal记录了每位员工的工资信息


2、创建一个审核表用来记录审核结果

create table scott.emp_sal_audit

  (host varchar2(50), ip_address varchar2(20), emp_no varchar2(20), old_value number, new_value number, update_time date);


3、为表scott.emp创建一个触发器,对字段sal的值的更新应用触发,记录更新前后值,并记录执行更新的客户端信息

create or replace trigger sal_audit

after update of sal on scott.emp

for each row

  begin

    if :old.sal != :new.sal then

      insert into scott.emp_sal_audit values

      (sys_context('userenv', 'host'),

        sys_context('userenv', 'ip_address'),

        :new.empno,

        :old.sal,

        :new.sal,

        sysdate);

    end if;

  end;


4、查询当前记录,并执行更新

select * from emp where empno = 7369;


EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO

----- ---------- --------- ----- ----------- --------- --------- ------

 7369 SMITH      CLERK      7902 1980/12/17     800.00               20


update emp set sal = 900 where empno = 7369;

commit;


5、查看审核记录

select * from emp_sal_audit;


HOST                 IP_ADDRESS           EMP_NO     OLD_VALUE  NEW_VALUE  UPDATE_TIME

-------------------- -------------------- ---------- ---------- ---------- --------------------

WORKGROUP\MYPC       192.168.133.1        7369              800        900 2015/9/3 16:34:27


该表记录了执行变更的客户端机器、IP地址、更新前后值、更新时间等,触发器中使用了oracle函数sys_context用来获取系统环境信息。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28974745/viewspace-2145265/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Oracle FGA审核
请登录后发表评论 登录
全部评论
刘鲁宁的个人博客。

注册时间:2016-12-29

  • 博文量
    113
  • 访问量
    287686