2010-01-26 42 views
3

我正在开发一个业务应用程序,要求对所有数据库事务进行审计(主要是为了合法目的)。Linq to SQL审计跟踪/审计日志:我应该使用触发器还是doddleaudit?

我环顾网络,碰到DoddleAudit(http://www.codeplex.com/DoddleAudit),它基本上增加了Linq to SQL跟踪更改的能力。就像人们在Hibernate中使用拦截器一样。

与此有关的事情是可靠性问题。虽然ORM层上的审计日志可能会记录通过代码发生的所有事情,但如果某人手动发出针对数据库或黑客等的SQL语句,则它不会记录任何更改。基本上,我处理的信息是有点敏感。这就是我认为Triggers可能是最可靠的方法。 (?)

其他记录方式是通过代码或通过存储过程,这似乎有点hacky和不可靠。所以我基本上是使用触发器或类似DoddleAudit。

虽然在选择之前我希望能得到一些意见。

回答

3

如果审计是法律目的,那么你必须通过合规的方法认证做。此类方法非常针对通过审计缓解的特定威胁。您需要详细阅读Auditing (Database Engine),并且更有可能咨询专家,这些专家可以就围绕数据审核的各种法律框架(特定于您的位置和域)提供指导。

SQL Server具有C2兼容审计模式,请参阅c2 audit mode Option,这是认证的兼容模式。 Linq2sql审计或自定义数据审计可能是工程的辉煌壮举,但如果他们没有通过合规性认证(他们不是),他们就不会持有一滴水。