我正在考虑改变我们的sql Server 2005数据库的审计流程,并在sql Server 2008中遇到了变更数据捕获.
这看起来好像是一个好主意,我试着尝试一下,但在我有任何人在商业环境中使用它,你的想法是什么?
我注意到,当我在MS帮助中阅读CDC时,它表示审核数据通常会保存几天.这不可能在这里,我想无限期地保留数据,有谁知道这种方法的问题吗?
如果这不是一个很好的解决方案,因为我不知道,有任何其他解决方案来审计数据更改.我渴望使用可以在我想要的任何表格上实现的系统.
我的基本原则是:“之前,之后,谁由,何时”任何更改的信息.
解决方法
疾病预防控制中心应该是我看来结束的一种手段.过去我已经实施了审计跟踪解决方案,并且涉及到使用触发器.对于高度事务性的数据库来说,这必然是非常混乱和性能密集的.
CDC给您的是在不使用触发器的情况下记录审核数据的能力,但您仍然需要一种方法将该数据导入永久性表.这可以通过要审计的每个表的镜像表或跟踪所有表的所有更改的单个表完成(我已经做了后者).
以下是一些链接,其中包含有关使用触发器进行操作的其他信息:
SQL Audit Trail
sql-server-history-table-populate-through-sp-or-trigger
这是一个使用LINQ:DoddleAudit的开源审计跟踪解决方案