一个简单的方法我已经过去使用的是基本上只是创建的第二个表,其结构反映了一种我想要的审核,然后创建一个更新/删除触发在主要表。之前的记录更新的/已删除,目前的状态是保存审计表通过的触发器。

虽然有效,数据的审计表并不是最有用的或简单的报告。我想知道,如果任何人有一个更好的方法用于审计的数据的变化?

不会有太多的更新这些记录,但这是高度敏感的信息,所以,重要的是要客户的所有变动进行审计,很容易报告。

有帮助吗?

解决方案

多少编写与阅读此表(s)你期待什么呢?

我用一个单一的审计表、列表、列OldValue,NewValue、用户和ChangeDateTime通用的足够的工作与任何其他变动的数据库,并同时,很多数据了编写该表,报告对这些数据被疏足够的,他们可以运行在低使用期间的一天。

添加: 如果数据数量vs.报告是一个关切的是,审计表中可以复制到只读数据库服务器,从而允许你来的运行的报告,只要有必要,而不受困下降的主服务器的做他们的工作。

其他提示

我们使用的两个表格的设计。

一个表是保持数据的有关事务(数据库,表名称、架构、列应用程序的触发事务、主机名称登录开始交易、日期、数受影响的行和夫妇更多)。

第二个表中仅使用储存数据的变化,使我们可以撤销的改变,如果需要,并报告在旧的新的价值观。

另一个选择是使用第三方的工具,例如 ApexSQL审计 或更改数据捕获的特征在SQL服务器。

我们发现这两个链接有用的:

使用CLR和单一审计表。
创建一个通用审计的触发SQL2005年CLR

使用的触发器和独立的审计表于每个表的审计。
我怎么审计改变到SQL服务器的数据?

是否有任何内在审计包?Oracle有一个很好的软件包,这甚至会送审计改变到一个单独的服务器之外的访问的任何坏人谁是修改SQL。

他们是真棒...它显示出如何警告任何人修改的审计表。

OmniAudit 可能是一个很好的解决方案需要。我从未使用过因为我很快乐写我自己的审计程序,但它听起来不错。

我使用方法描述的格雷格他的 答案 而填充审计表与存储的过程称为从表的触发器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top