0

我有一个激活 SP,它调用另一个 SP,它调用其他 SP 来插入和更新 TempDB 中存在的表。我已经使用具有 SA 权限的用户创建了队列,并且激活 SP 具有 SA 权限(尝试解决该问题)。

我继续收到此错误:对象“xxxxxxxx”、数据库“tempdb”、模式“dbo”的 SELECT 权限被拒绝。

我有能力在没有 Service Broker 的情况下执行该过程(直接调用 SPs Service Broker 正在调用)并且它工作正常。

有人有想法么?

谢谢

4

1 回答 1

0

我不记得它到底是怎么回事,但是激活过程的执行上下文很奇怪。设置跟踪(或扩展事件)并查看谁在调用您的过程。我的猜测是你会感到惊讶。您可以在过程中抛出“execute as”子句,进入某些模块签名,或授予过程执行者权限。

于 2012-11-30T03:32:24.550 回答