如何在SQL Server 2012中捕获截断语句信息

3
我希望能够在我的生产服务器上,捕获所有数据库中截断语句的信息以及与其相关的用户/登录信息。
示例:
Use mydb
go 
truncate table deleteme_table

我希望能够像下面这样将信息捕获到表格中:
Table           Operation   Database    Login              Time
deleteme_table  Truncate    mydb        sandeep.pulikonda  17-12-2014 17:50:00

如果上述情况不可行,请建议可能的捕获方式。

我正在使用SQL Server 2012标准版。 因此,该版本不支持粒度级别的审核。


SQL Server默认不跟踪此信息。您需要使用服务器端跟踪(Profiler不是“好方法”)或使用扩展事件。默认跟踪不捕获此信息,也没有DDL事件支持DDL触发器方法(尽管我刚刚要求了一个)。 - Aaron Bertrand
1个回答

1

抱歉,我正在使用 SQL Server 2012 标准版。因此,该版本不支持细粒度审计。 - Sandeep Pulikonda
尝试我的第二个建议,SQL Server Profiler。 - Adrian Nasui
可以,跟踪器可以捕获所有时间。我的意思是像表触发器一样。 - Sandeep Pulikonda
不幸的是,Profiler 确实会对性能产生影响,因此不建议长期使用。 - Adrian Nasui
我看到扩展事件是微软推荐用于此类任务的技术,但我不确定您是否可以通过这种方式解决您的问题。请查看这篇文章,它解释了如何在SSMS 2012中定义和使用扩展事件。 https://www.simple-talk.com/sql/database-administration/getting-started-with-extended-events-in-sql-server-2012/ - Adrian Nasui

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接