我正在开发一个商业应用程序,它要求所有的数据库交易都要进行审计(主要是出于法律目的)。
我浏览了一下web,发现了DoddleAudit (http://www.codeplex.com/DoddleAudit),它基本上增加了Linq to SQL跟踪更改的能力。就像人们在Hibernate中使用拦截器一样。
我担心的是可靠性问题。虽然ORM层上的审计日志可能会记录通过代码发生的一切,但如果有人手动对数据库发出SQL语句,或者黑客等,它不会记录任何更改。基本上,我处理的信息有点敏感。这就是为什么我相信触发器可能是最可靠的方式。(?)
记录日志的其他方法是通过代码,或者通过存储过程,这看起来有点老套和不可靠。所以我基本上要么使用触发器,要么使用类似DoddleAudit的东西。
我希望在选择其中任何一个之前能得到一些意见。
发布于 2010-01-26 08:38:17
如果审计是出于legal的目的,那么您必须通过经过认证的合规性方法来进行审计。这种方法对于通过审计缓解的特定威胁是非常特定的。您需要阅读Auditing (Database Engine),并且更有可能咨询一位专家,他可以根据您所在的位置和领域,就围绕数据审计的各种法律框架为您提供指导。
SQL Server具有C2兼容审核模式,请参阅c2 audit mode Option,这是一种经认证的兼容模式。Linq2sql审计或自定义数据审计可能是工程上的辉煌壮举,但如果它们没有获得合规性认证(确实没有),它们就不会有一滴水。
发布于 2010-01-26 08:34:05
如果您使用的是SQL Server2008(问题并未指明),您是否查看了该版本中添加的支持?
http://msdn.microsoft.com/en-us/library/dd392015.aspx
https://stackoverflow.com/questions/2136657
复制相似问题