带参数的审计表

时间:2019-01-25 10:40:39

标签: sql plsql triggers audit audit-logging

我想将几张表中的更改审核到历史记录表中。 我读了一些触发器,问题是我想收到对该表以及后端用户(而不是数据库用户)进行操作的原因。

所以我会喜欢

表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 个答案:

答案 0 :(得分: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;