带参数的审计表
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 个参数不是表中的字段,我想保存它们。以上是关于带参数的审计表的主要内容,如果未能解决你的问题,请参考以下文章