Sql server 非dbo sql server用户能否在ServiceBroker中创建队列?

Sql server 非dbo sql server用户能否在ServiceBroker中创建队列?,sql-server,sql-server-2008,queue,service-broker,Sql Server,Sql Server 2008,Queue,Service Broker,我们正在开发一个应用程序,它作为AD用户运行,连接到一个支持ServiceBroker的SQLServer2008数据库 我们在为特定用户授予应用程序工作的正确权限时遇到问题, (应用程序在其操作过程中创建/删除队列),除非我们使该用户成为用于ServiceBroker应用程序的数据库的dbo成员 这是我们让应用程序工作的唯一方法吗?将每个用户作为dbo的成员放入数据库 向用户授予CREATE QUEUE/SERVICE并在特定的表上选择似乎不够 谢谢由于ServiceBroker的分布式特性,

我们正在开发一个应用程序,它作为AD用户运行,连接到一个支持ServiceBroker的SQLServer2008数据库

我们在为特定用户授予应用程序工作的正确权限时遇到问题, (应用程序在其操作过程中创建/删除队列),除非我们使该用户成为用于ServiceBroker应用程序的数据库的dbo成员

这是我们让应用程序工作的唯一方法吗?将每个用户作为dbo的成员放入数据库

向用户授予CREATE QUEUE/SERVICE并在特定的表上选择似乎不够


谢谢

由于ServiceBroker的分布式特性,队列和服务应该是长寿命的对象。创建和删除队列和服务的应用程序不太可能正常运行

也就是说,对队列进行操作所需的权限是RECEIVE(开始对话/发送/接收)。创建队列的用户是队列所有者,并且隐式拥有此权限。若要将消息传递到目标服务,发起方服务必须具有发送权限,但要小心使用基于证书的身份建立身份。请注意,*在SQL Server实例中,*Service Broker对话安全模型将模拟熟悉的用户id模型(即,建立身份不需要证书),但受限制


如果您可以更具体地说明哪个操作失败,我们可以更具体地说明需要什么权限。

由于Service Broker的分布式特性,队列和服务应该是长期存在的对象。创建和删除队列和服务的应用程序不太可能正常运行

也就是说,对队列进行操作所需的权限是RECEIVE(开始对话/发送/接收)。创建队列的用户是队列所有者,并且隐式拥有此权限。若要将消息传递到目标服务,发起方服务必须具有发送权限,但要小心使用基于证书的身份建立身份。请注意,*在SQL Server实例中,*Service Broker对话安全模型将模拟熟悉的用户id模型(即,建立身份不需要证书),但受限制


如果您可以更具体地说明哪个操作失败,那么我们可以更具体地说明所需的权限。

为每个用户创建单独的架构,并使该用户成为该架构的所有者。ServiceBroker将在用户的默认模式中创建存储过程和队列。有关如何设置service broker权限的本节内容可能会帮助您:

为每个用户创建单独的架构,并使该用户成为该架构的所有者。ServiceBroker将在用户的默认模式中创建存储过程和队列。这篇关于如何设置ServiceBroker权限的文章可能会帮助您:

谢谢remus,这是关于代理安全上下文的非常有用的信息。我将尝试获取更多的跟踪信息——目前我正在使用sql跟踪查看create queue语句,但没有显示太多其他信息。还有其他地方我应该寻找ServiceBroker信息吗?我知道这很旧,但这句话引起了我的注意:创建和删除队列和服务的应用程序不太可能正确操作。。。这不正是.NET中的
SqlDependency
类所做的吗?这里没有人在学习Dthanks remus,关于代理安全上下文的非常有用的信息。我将尝试获取更多的跟踪信息——目前我正在使用sql跟踪查看create queue语句,但没有显示太多其他信息。还有其他地方我应该寻找ServiceBroker信息吗?我知道这很旧,但这句话引起了我的注意:创建和删除队列和服务的应用程序不太可能正确操作。。。这不正是.NET中的
SqlDependency
类所做的吗?这里没有人在学习D