【问题标题】:How can I audit with the Microsoft SQL Server LDF file?如何使用 Microsoft SQL Server LDF 文件进行审核?
【发布时间】:2011-07-21 07:08:57
【问题描述】:
我们需要在我们正在创建的产品中添加审核日志。我们使用 SQL Server 2008 R2。我了解到 LDF 文件保留了所有交易的完整日志*。
我找到了 ApexSQL Log,该工具分析 LDF 文件并提供 GUI。这是对可能性的一个很好的展示。但它很贵。更多信息:http://www.apexsql.com/sql_tools_log.aspx
您知道其他可以分析 LDF 文件的程序吗?或者也许其他提供审计跟踪功能的方法?我知道可以创建触发器。但如果没有必要在我的数据库方案中添加东西,那么我宁愿不这样做。
*仅当您选择完全恢复模式时。
【问题讨论】:
标签:
sql-server-2008-r2
audit
audit-trail
【解决方案1】:
R2 中的新变更数据捕获 (CDC) 功能如何。这不符合你的目的吗?
【解决方案2】:
当涉及到存储在 LDF 文件中的信息时,请确保形成完整的日志链。日志链是事务日志备份的连续序列。它从完整的数据库备份开始,然后是通过审计点的所有后续日志备份。如果它被破坏,只有在丢失之前的最后一次备份之前的日志中的事务可以显示完整信息(例如模式和对象名称,或行历史记录)
与完全记录在 LDF 文件中的 INSERT 和 DELETE 操作不同,UPDATE 操作的记录最少 - 仅记录所做的更改,但不记录旧值和新值。记录 UPDATE 操作时,SQL Server 不会记录行状态之前和之后的完成,而只会记录行发生的增量更改。例如,如果将单词“log”更新为单词“blog”,SQL Server 通常只会在索引 0 处记录添加的字母“b”。这足以确保 ACID,但不足以轻松显示行的前后状态。因此,为了了解真正发生了什么变化,您必须从其余事务日志和/或备份和在线数据库数据重建发生变化的上下文