SQL 服务器更改数据捕获 - 捕获进行更改的用户

SQL Server Change Data Capture - Capture user who made the change

关于SQL Server Change Data Capture,您能否跟踪对row/column数据进行更改的用户或者是否有扩展 CDC 以允许这样做?我在文档中看不到任何内容。

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

您必须使用审核才能这样做,或者如果这是一次性请求,您可以查询 TLOG..

下面是请求相同的连接项目..

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

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

创建 table :

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

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

此外,您还可以使用第三方工具进行用户审核 – SQL Audit & Compliance manager。我都用过,你不会错的。可能有更多类似的工具。