0

我正在使用 SQL 2008 并在表 XYZ 上启用了 DELETE、UPDATE 和 INSERT 审计。除了查询数据时,它的效果很好:

SELECT * FROM fn_get_audit_file('H:\SQLAudits\*', default, default)

它实际上并没有向我显示删除或插入或更新的内容,只是显示删除等......发生了。上述查询的语句列显示了以下代码段:

delete [dbo].[XYZ]  where ([Name] = @0)

我想让它告诉我@0 的值是什么。有没有办法做到这一点?

4

4 回答 4

0

From what I've found about it, SQL Server 2008's "auditing" feature is very lacking. It does not act as a traditional data audit trail, where you store a new row every time something changes (via Triggers), with complete information such as the user who made the change. It more or less just tells you something has changed without much detail. I really wish SQL Server would include full data audit trail features.

于 2012-05-24T15:22:15.267 回答
0

SQL Server 审计工具非常强大,但是,它从未被设计用于记录数据更改(例如,在 db 'test' 中的表 'dummy' 中,col1 被 'sa' 从 'fred' 更改为 'santa')。

为此,您将需要更改数据捕获( http://msdn.microsoft.com/en-us/library/bb522489.aspx )。

干杯,马克

于 2013-10-10T04:55:48.273 回答
0

参考

同时,您为类型Creating Database Audit Specification选择操作,,Audit ActionINSERTUPDATEDELETE

这导致向我们显示日志,说Select or Insert or Update or Delete......但永远无法看到个人价值

示例 - 单击此处查看插入/更新/删除的日志

于 2012-05-24T16:13:42.307 回答
0

您可以使用 SQL Server Profiler 监控删除语句。您将能够看到更改。另一种监视方法是使用 SQL Server 中的 CDC(更改数据捕获)功能。此功能可让您监控表格中的更改。

最后,还有其他相关的工具,例如 ApexSQL Trigger。

于 2015-01-29T23:07:16.327 回答