带参数的审计表

Posted

技术标签:

【中文标题】带参数的审计表【英文标题】: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 的功能? 或

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

【问题讨论】:

【参考方案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 个参数不是表中的字段,我想保存它们。

以上是关于带参数的审计表的主要内容,如果未能解决你的问题,请参考以下文章

c/c++单链表面试题—链表带环问题

Oracle审计参数

npm 审计修复与 npm 安装

关于相交链表带环链表链表深拷贝的思路整理

PHP代码审计入门(敏感函数回溯参数过程)

oracle如何启用审计