在SQL Server 2008中,数据库"tempdb"中被拒绝了"SHOWPLAN"权限。

7

当我在包含实际执行计划的情况下运行以下查询时,会抛出以下错误:

执行结果:

(1 行受影响)

(89 行受影响)

(1 行受影响) Msg 262, Level 14, State 4, Line 25 在数据库 'tempdb' 中拒绝了 SHOWPLAN 权限。

注意:在对 temptables 创建聚集索引之前,它可以正常工作。但是,在创建聚集索引后,会显示上述错误。如何查看以下查询的执行计划,有什么建议吗?

3个回答

13

请让管理员在tempdb中运行以下内容:

GRANT SHOWPLAN TO <UserName>
GO

其中<UserName>是您的用户名。


1
在我的情况下,我在存储过程中指定了“with execute as 'dbo'”选项。由于dbo用户是特定于数据库的,我怀疑您无法在tempdb中授予它SHOWPLAN权限。相反,我从存储过程中删除了“with execute as 'dbo'”子句,然后可以继续性能测试。

0

我刚刚遇到这个问题,只需关闭并重新打开我的Microsoft SQL Server管理工具。


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