0

我的客户希望在列级别保持审计。他想要一个存储所有审计的表,即在列级别。我已经决定了一个表结构。IE

id,tablename,tablecolumn,primarkey,oldvalue,newvalue,date

但我想知道如何检查每个列级别的更改。我是否必须像 old.columnname <> new.columnname 一样手动检查每一个,然后添加到审计表中?

有没有其他方法可以做到这一点。

4

1 回答 1

1

当我被赋予相同的任务时,我创建了几个用于修改表数据的存储过程,并限制了对表的 CUD 操作,以强制用户仅使用存储过程。

SP 实际上正在执行请求的操作(即创建、更新或删除表中的一行),并为每个操作在审计表中添加一行。

从数据库优化的角度来看,这可能效率很低,但我认为它可以为您提供大部分审计,因为更新操作和审计会自动放入事务中,并且如果不添加审计条目,则无法完成更新。

于 2013-03-18T11:46:19.767 回答