【问题标题】:For Auditing Triggers or CDC用于审计触发器或 CDC
【发布时间】:2010-08-22 03:52:31
【问题描述】:

我想看看其他人是否正在使用 SQL Server 2008 Change Data Capture,如果是,您觉得如何?我们目前使用 APEXSQL 审计触发器来进行审计,这似乎工作得很好,但这意味着我们必须向所有“审计”表添加触发器。

我读过的一些文章指出了一些事情,例如当您更改架构然后删除旧的时必须创建一个新的捕获表,但就一般维护而言,它似乎相当简单。

非常感谢任何 cmets /input。

--S

【问题讨论】:

    标签: sql tsql sql-server-2008


    【解决方案1】:

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

    您没有在此处提及新的服务器审核规范,这将是另一种选择,但请记住,服务器审核规范用于通过包含进行审核。这是我仍然在我的 SQL Server 2008 Ent 数据库中使用旧的、经过验证的触发器和审计表方法的原因之一,它仍然是最简单的解决方案,直到新功能超越产品中的 v1.0 功能。

    【讨论】:

      【解决方案2】:

      如果您有有效的审计解决方案,我什至不会尝试。

      我在调查此问题时注意到的另一个问题是,您无法添加对表进行更改的用户等内容(或者至少我不知道如何),因此您的审计表可能更灵活超过 CDC 允许的范围。

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

      【讨论】:

      • 非常感谢您提供有意义的信息。因此,如果我想使用数据来填充数据仓库,您是否只使用这些函数来获取您当前尚未提取的数据?
      猜你喜欢
      • 2017-03-25
      • 2010-09-29
      • 2014-04-19
      • 1970-01-01
      • 2014-04-14
      • 2021-06-05
      • 2018-06-04
      • 1970-01-01
      相关资源
      最近更新 更多