有没有简单的方法可以查看 SQL Server 2008 中查询时权限被拒绝的事件(以及查询的文本和权限被拒绝的特定对象)?
我有一个应用程序正在对数据库执行大量操作,其中一项操作的权限被拒绝。我需要确切地找出被拒绝的查询,以便我可以准确地计算出我需要授予相关数据库角色的最小附加权限集,以使所有操作成功。
我尝试使用 SQL Profiler,并选择仅记录事件“安全审计/审计架构对象访问事件”,这看起来几乎可以完成工作。但是,这会记录成功和失败的事件,据我所知,UI 中没有显示任何内容来区分它们 - 因此我无法分辨它抛出的数百个事件中的哪一个是我感兴趣的。还有其他方法可以仅捕获失败的 SQL 语句吗?
谢谢
答案1
回答我自己的问题 :-) 经过更多实验后,我发现在 SQL Profiler 中,当您设置要分析的事件时,有一个选项可以选择列,您可以添加的列之一是“成功”列 - 在审计架构对象访问事件的情况下 - 它会告诉您是否授予了权限。因此,添加该列然后在记录的事件中查找该列中的“0”解决了我的问题。
我不确定是否有更好的解决方案,但我现在已经解决了。