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

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

  • 用户“乔治”在2011年6月20日的表“阿尔法”做了一个插入
  • 用户'Fred'在2011年6月21日在'Beta'表做了删除

如果是,我如何获取这些信息? 如果没有,最简单的方法是什么(我认为这是审计scheme )。

如果数据库处于完全恢复模式,并且日志尚未备份或日志备份可用,则事务日志将具有此状态。

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

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

您可以手动创build适当的DML触发器,但这也需要手动设置审计存储库。 另一方面,可以使用ApexSQL审计 (SQL Server数据库的审计工具)自动执行该stream程,该工具可捕获数据库中发生的数据更改,包括有关谁更改,哪些对象受到影响,何时生成,以及用于进行更改的SQLlogin名,应用程序和主机的信息。 它将所有捕获的信息存储在中央存储库中,并以便于打印的格式导出。ApexSQL Audit用于审计的技术基于触发器。 这些是使用其可视化界面创build的,不需要任何T-SQL知识。

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

你提到的链接有一步一步的指示,它会做你想要的东西,只要确保你不留下审计文件的大小无限,我会build议在MB的大小,否则他们永远采取打开。