【问题标题】:Audit tables with parameters带参数的审计表
【发布时间】:2019-06-19 04:33:08
【问题描述】:

我想将几个表中的更改审计到一个历史表。 我阅读了有关触发器的信息,问题是我想收到对表进行操作的原因以及执行该操作的后端用户而不是 DB 用户。

所以我会喜欢

表 1

ID_TABLE_1
FIELD_A
FIELD_B

表 2

ID_TABLE_2
FIELD_C
FIELD_D

表历史

TABLE_NAME
RECORD_ID
USER
REASON
OPERATION

在这里寻找最好的方法,因为我看到我有两个选择:

我可以为保存 TABLE_NAME 、 RECORD_ID 和 OPERATION 的表创建触发器 然后有更新 USER 和 REASON 的功能?

创建一个函数来完成这一切?

【问题讨论】:

    标签: sql plsql triggers audit audit-logging


    【解决方案1】:

    在触发器中使用 INSERTING/UPDATING/DELETING 等谓词来确定发生了哪个 DML 操作。

    试试这个:

    create trigger trg_operation_type
      before insert or update
      on table_1
      for each row
    begin
      case
        when inserting then
            --insert to history table
        when updating then
            --insert to history table
      end case;
    end;
    

    【讨论】:

    • 我已经完成了,问题是我有 2 个参数不是表中的字段,我想保存它们。
    猜你喜欢
    • 2014-06-28
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2017-02-23
    • 2020-01-05
    • 2011-03-17
    • 2018-01-31
    相关资源
    最近更新 更多