【问题标题】:How to make Audit Log in SQL Server? [duplicate]如何在 SQL Server 中制作审计日志? [复制]
【发布时间】:2019-07-29 23:29:10
【问题描述】:

在我问这个问题之前,是的,我已经完成了我的研究,是的,我已经尝试实施了几件最终对我不起作用的事情(请参阅我的上一篇文章)。所以基本上我正在尝试创建一个 LogTable 来记录对我的表所做的任何更新或修改。它将具有更改前的先前值和更改后的更新值以及时间戳和用户 ID。

我不太确定如何解决这个问题,因为我已经尝试过创建数据库触发器和 LogTable,但它并没有像我想象的那样工作。

我从查询中得到以下信息:

我使用本教程来达到这一点,但本教程没有展示如何获取更新或获取以前的数据等。 https://jackworthen.com/2018/03/19/creating-a-log-table-to-track-changes-to-database-objects-in-sql-server/

感谢您提供的任何帮助, 谢谢。

【问题讨论】:

  • 您要检测结构变化还是数据变化?
  • @RubensFarias 只是数据更改。结构将保持不变。
  • 这有点奇怪。您提到数据库触发器,但您的整个解释是标准触发器。您是否考虑过使用变更数据捕获,这样您就不必在这里重新发明轮子?我认为您不想在审计表中捕获先前的值和当前值。只需记录以前的值,您的表存储量就是当前值的两倍。而且您始终可以轻松找到当前值。它在表中。
  • 您链接到的教程是跟踪数据库对象的结构更改。它与针对数据的CRUD 操作完全无关。这不是在数据库级别完成的;它是在表级别完成的,@SeanLange 是正确的。如果您选择忽略 Change Data Capture, Change Tracking,Temporal Tables,您可能会重新发明轮子。

标签: sql sql-server


【解决方案1】:

感谢所有评论帮助我的人,但我能够通过使用 Ruben 给出的链接并相应地进行调整来解决它。

这是链接:Log record changes in SQL server in an audit table

只要按照它,应该回答你可能遇到的任何问题。

谢谢。

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2020-08-09
    • 2013-10-19
    • 2014-12-09
    • 2011-03-08
    • 1970-01-01
    • 2016-09-15
    • 2010-11-17
    • 2023-03-30
    相关资源
    最近更新 更多