Linq to SQL Audit Trail / Audit Log:我应该使用trigger还是doddleaudit?

时间:2010-01-26 00:03:34

标签: sql-server linq-to-sql logging audit

我正在开发一个业务应用程序,要求审核所有数据库事务(主要用于法律目的)。

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

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

其他记录方式可能是通过代码,也可能是通过存储过程看起来有点笨拙和不可靠。所以我基本上都是使用触发器或类似DoddleAudit的东西。

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

2 个答案:

答案 0 :(得分:3)

如果审核是出于 legal 目的,那么您必须通过经过认证的合规性方法进行审核。此类方法非常特定于通过审计缓解的特定威胁。您需要阅读Auditing (Database Engine),并且很可能会咨询专家,该专家可以为您提供有关您的位置和域特定的各种法律框架的指导。

SQL Server具有符合C2标准的审核模式,请参阅c2 audit mode Option,这是一种认证兼容模式。 Linq2sql审计或自定义数据审计可能是工程学的辉煌成就,但如果他们没有获得合规认证(他们不是),他们就不会有一滴水。

答案 1 :(得分:1)

如果您使用的是SQL Server 2008(问题未指定),您是否看过该版本中添加的支持?

http://msdn.microsoft.com/en-us/library/dd392015.aspx