用于审计触发器或CDC

时间:2010-08-22 03:52:32

标签: sql tsql sql-server-2008

我想看看其他人是否正在使用SQL Server 2008更改数据捕获,如果是这样,你喜欢它吗?我们目前使用APEXSQL审计触发器进行审计,这看起来效果很好,但这意味着我们必须向所有“审计”表添加触发器。

我读过的一些文章指出了在更改模式然后删除旧模式时必须创建新的捕获表的事情,但就一般维护而言,它似乎相当直接。

非常感谢任何评论/意见。

- S

2 个答案:

答案 0 :(得分:5)

系统的繁忙程度以及审计的最终目标是什么;跟踪短时间内的变化,或长时间审核变更?我与CDC最大的问题之一是它利用日志阅读器和SQL代理作业来捕获变化,因此繁忙的系统可能会落后于它永远不会赶上的点,除非你关闭CDC,导致最坏的情况完整的事务日志,或者最好是延迟截断,导致日志大小增加。如果您的目的是进行真正的审计,那么CDC不是为此而构建的,它更多地用于同步更改而不是长期审计,除非您设置作业以将数据提取到审计表中,就像使用触发式解决方案一样。

您在此处未提及新的服务器审核规范,这是另一个需要考虑的选项,但请记住,服务器审核规范用于包含审核。这是我仍然在我的SQL Server 2008 Ent数据库中使用旧的尝试和真实的触发器和审计表方法的原因之一,它仍然是最简单的解决方案,直到较新的功能超过产品中的v1.0功能。

答案 1 :(得分:2)

如果你有一个有效的审计解决方案,我甚至都不会尝试。

我在研究这个问题时注意到的另一个问题是你不能添加诸如对表进行更改的用户之类的东西(或者至少我无法弄清楚如何),因此你的审计表可能更灵活比CDC允许的。

最后CDC表会在3天后过期(虽然我认为您可以更改过期但仍需设置一个特定的时间范围。)我们将审核记录保留的时间比此长,因此您仍需要将它们复制出CDc表到审计表。