我正在考虑更改SQL Server 2005数据库的审核流程,并且我在SQL Server 2008中遇到了Change Data Capture。
这看起来是一个好主意,我很想尝试,但在我做之前,有人在商业环境中使用它,你有什么想法?
我注意到当我在MS帮助中阅读有关CDC时,它说审计数据通常会保留几天。这在这里是不可能的,我想无限期保留数据,有没有人知道这种方法的问题?
如果由于我不知道的原因这不是一个好的解决方案,那么您是否有任何其他解决方案来审核数据更改。我很想使用一个可以在我想要的任何桌子上全面实施的系统。
我是基本的:“之前,之后,Who By,When”信息是否有任何变化。
答案 0 :(得分:9)
在我看来,CDC应该只是达到目的的手段。我过去实施过审计跟踪解决方案,他们参与了触发器的使用。对于高度事务性的数据库来说,这非常混乱和性能密集。
CDC为您提供的是能够在不使用触发器的情况下记录审计数据,但您仍需要一种方法将数据转换为永久表。这可以通过每个要审计的表的镜像表来完成,也可以通过单个表来跟踪所有表的所有更改(我已完成后者)。
以下是一些链接,其中包含有关如何使用触发器执行操作的其他信息:
SQL Audit Trail
sql-server-history-table-populate-through-sp-or-trigger
这是一个使用LINQ的开源审计跟踪解决方案:DoddleAudit
答案 1 :(得分:7)
很晚但希望它对其他读者有用......
以下是几种不同的审核技巧及其优缺点。没有适合所有人的“正确”解决方案。这取决于要求和被审计的系统。
<强>触发器强>
<强> CDC 强>
<强>痕量强>
阅读交易记录
我使用了ApexSQL中的几个审核工具,但Idera(合规经理)和Krell软件(全方位审核)也提供了很好的工具
ApexSQL Audit - 基于触发器的审核工具。生成并管理审计触发器
ApexSQL Log - 允许通过阅读事务日志进行审核
答案 2 :(得分:1)
在SQL Server 2008中,您可以使用“审核”功能并在文件,应用程序日志或系统日志中存储数据。在以下网址找到更多信息:http://msdn.microsoft.com/en-us/library/cc280386.aspx
答案 3 :(得分:0)
您可以编辑Sql Server作业,该作业会在两天后删除捕获的更改。您也可以根据自己的方便延长此清理时间,或将其永久化。
答案 4 :(得分:0)
我正在使用this脚本,您可以定义您希望审核的表或您在数据库中定义的所有表。另外,tvf可以查看历史记录。查看链接,了解详细信息。