3

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

4

2 回答 2

3

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

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

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

CDC:捕获更多数据的选项(用户名、日期/时间等)

您还可以按照 Aaron Bertrand的这篇文章在 Katmai 中使用 CDC使用触发器。

创建表:

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
于 2016-12-29T14:54:22.820 回答
3

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

此外,还有可用于用户审计的第三方工具——SQL 审计合规管理器。我都用过,你都不会出错。可能还有更多类似的工具。

于 2017-03-02T16:34:56.127 回答