我正在开发一个业务应用程序,要求审核所有数据库事务(主要用于法律目的)。
我浏览了网页并遇到了DoddleAudit(http://www.codeplex.com/DoddleAudit),它基本上增加了Linq to SQL跟踪更改的能力。就像人们在Hibernate中使用拦截器一样。
与此有关的是可靠性问题。虽然ORM层上的审计日志可以记录通过代码发生的所有事情,但如果有人手动发出针对数据库或黑客等的SQL语句,它将不会记录任何更改。基本上我正在处理的信息是有些敏感。这就是让我相信触发器可能是最可靠的方式的原因。 (?)
其他记录方式可能是通过代码,也可能是通过存储过程看起来有点笨拙和不可靠。所以我基本上都是使用触发器或类似DoddleAudit的东西。
我希望在选择之前得到一些意见。
答案 0 :(得分:3)
如果审核是出于 legal 目的,那么您必须通过经过认证的合规性方法进行审核。此类方法非常特定于通过审计缓解的特定威胁。您需要阅读Auditing (Database Engine),并且很可能会咨询专家,该专家可以为您提供有关您的位置和域特定的各种法律框架的指导。
SQL Server具有符合C2标准的审核模式,请参阅c2 audit mode Option,这是一种认证兼容模式。 Linq2sql审计或自定义数据审计可能是工程学的辉煌成就,但如果他们没有获得合规认证(他们不是),他们就不会有一滴水。
答案 1 :(得分:1)
如果您使用的是SQL Server 2008(问题未指定),您是否看过该版本中添加的支持?