SQL Server更改数据捕获 - 捕获进行更改的用户

时间:2016-12-29 13:28:38

标签: sql-server sql-server-2014 audit change-data-capture

关于 SQL Server Change Data Capture ,您是否可以跟踪对行/列数据进行更改的用户,或者无论如何都要扩展CDC以允许此操作?我在文档中看不到任何内容。

2 个答案:

答案 0 :(得分:3)

您可以创建一个新字段,在每个更改后存储和更新用户的详细信息,机器,时间等。

此外,您可以使用第三方工具进行用户审核 - SQL Audit& Compliance manager。我已经使用了两者,你不能错过任何一个。可能还有更多像那样的工具。

答案 1 :(得分:2)

您无法使用CDC捕获用户名..

您必须使用审核才能执行此操作,或者如果这是一次性请求,您可以查询TLOG ..

以下是请求相同的连接项..

CDC : options to capture more data (username, date/time, etc)

你也可以按照Aaron Bertrand的这篇文章Playing with CDC in Katmai使用触发器。

创建表格

CREATE TABLE cdc.dbo_test_CT_MoreInfo
(
startlsn BINARY(10),
seqval BINARY(10),
operation INT,
username SYSNAME NOT NULL DEFAULT SUSER_SNAME(),
eventDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (startlsn, seqval, operation)
);
GO

创建触发器:

CREATE TRIGGER cdc.LogMoreCDCInfo
ON cdc.dbo_test_CT
FOR INSERT
AS
BEGIN
  IF @@ROWCOUNT > 0
  BEGIN
    INSERT cdc.dbo_test_CT_MoreInfo(startlsn,seqval,operation)
      SELECT __$start_lsn, __$seqval, __$operation FROM inserted;
  END
END
GO