【问题标题】:SQL Server Change Data Capture - Capture user who made the changeSQL Server 更改数据捕获 - 捕获进行更改的用户
【发布时间】:2017-05-13 20:10:07
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您无法使用 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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-08
        • 1970-01-01
        • 1970-01-01
        • 2015-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多