DML 审计(“谁做了插入?”)

DML 审计(“谁做了插入?”)

开箱即用的新创建的数据库(在 SQL Server 2008 中)是否保留任何 DML 审计记录,例如:

  • 用户 'George' 于 2011 年 6 月 20 日在表 'Alpha' 上进行了插入
  • 用户 'Fred' 于 2011 年 6 月 21 日删除了表 'Beta'

如果是,我该如何访问这些信息?如果不是,最简单的打开它的方法是什么(我假设这些是审计选项)。

答案1

如果数据库处于完整恢复模式,且日志尚未备份或日志备份可用,则事务日志将包含此信息。

有一些第三方产品,例如 LiteSpeed for SQL Server,可以查看事务日志。

如果数据库处于简单恢复模式,则这些数据不会保存很长时间。

答案2

您可以手动创建适当的 DML 触发器,但这也需要手动设置审计存储库。另一方面,可以使用ApexSQL审计,一种用于 SQL Server 数据库的审计工具,可捕获数据库中发生的数据更改,包括更改者、受影响的对象、更改时间,以及用于进行更改的 SQL 登录、应用程序和主机的信息。它将所有捕获的信息存储在中央存储库中,并以打印友好格式导出。ApexSQL Audit 用于审计的技术基于触发器。这些触发器是使用其可视化界面创建的,无需任何 T-SQL 知识。

免责声明:我在 ApexSQL 担任产品支持工程师

答案3

关联您提到的有很好的分步说明,它会准确地完成您想要的,只需确保不要让审计文件大小不受限制,我建议以 MB 为单位限制大小,否则它们将需要很长时间才能打开。

相关内容