进行更改的SQL Server 2008 Change Data Capture?

MrE*_*ndo 9 sql cdc auditing sql-server-2008

我在大约一周前就SOF提出了一个关于审计SQL数据更改的问题.关于使用触发器的常见问题出现了,在SQL Server 2008中也提到了CDC.

我今天一直在尝试,到目前为止这么好,我看不到它支持的一件事是跟踪谁实际做出了改变.谁执行了这个陈述?

我很想知道是否有人使用CDC进行审核,以及您如何跟踪谁做出了更改?

小智 7

我直接使用以下方法更改了CDC表: ALTER TABLE cdc.dbo_MyTable_CT ADD UserName nvarchar(50)NULL DEFAULT(SUSER_SNAME())

顺便说一下,您不需要日期信息,因为它已经在开始和结束LSN字段中.

我唯一的问题是我的用户通过Windows组登录,允许他们修改权限,但UserName字段始终是我的用户名而不是他们的用户名.我还没有找到解决这个问题的方法.


小智 7

更改数据捕获不会跟踪用户,进行更改的计算机或更改时间.

跟踪使用CDC进行更改的用户的最佳解决方案是创建一个新字段来存储用户详细信息,这些信息将在每次更改时更新(在此处找到该想法).

同一系列中的另一篇文章引导我使用第三方工具,提供开箱即用的解决方案.我还在评估过程,但到目前为止看起来还不错.在本续集的最后,您可以在一个方便的表格中看到跟踪信息的比较.

希望这可以帮助.


Aar*_*ton 1

CDC 实际上并不是为审计而设计的。如果您正在寻找审核功能,您应该使用SQL Server Audit

  • SQL Server Audit 不捕获之前和之后的值。令人难以置信的是,MS 经历了实施两种方法(CDC 和 SSA)的麻烦,但它们都没有解决完全审核变更的问题。 (3认同)