如何为本地服务配置权限 (Transact-SQL)

SQL Server 强制安全主体具有针对每个服务的 SEND 权限,以及针对每个队列的 RECEIVE 权限。拥有起始服务的安全主体必须具有针对目标服务的 SEND 权限。应用程序的安全主体必须具有针对应用程序从其接收消息的每个队列的 RECEIVE 权限。

此过程是用于创建远程安全配置的过程的简化形式。无论是本地安全配置还是远程安全配置,您都要为发送消息的服务授予针对目标服务的 SEND 权限和针对队列的 RECEIVE 权限。但是,对于远程安全配置,您还必须配置 Service Broker 安全机制,以正确标识远程用户。对于在单个数据库中配置安全性,仅需授予权限即可。

为本地服务授予权限

  1. 为用户授予从应用程序所使用的队列进行接收的权限。

  2. 为拥有起始服务的用户授予向应用程序与之通信的服务发送消息的权限。

示例

此示例配置的权限允许 BrokerApplicationUser 将消息从使用队列 StoreFrontQueue 的服务发送到服务 Ordering。此过程假定用户、服务及队列都已存在。

USE AdventureWorks ;
GO

-- This example sets permissions for a service
-- program that sends messages to the Ordering service
-- and receives messages from the StoreFrontQueue queue.

-- Grant SEND permission on the service to the owner
-- of the initiating service.
GRANT SEND ON SERVICE::[Ordering]
TO [BrokerApplicationUser] ;
GO

-- Grant RECEIVE permission on the queue.
GRANT RECEIVE ON [StoreFrontQueue]
TO [BrokerApplicationUser] ;
GO

请参阅

任务

如何将目标服务配置为使用匿名对话安全模式 (Transact-SQL)
如何将目标服务配置为使用完全对话安全模式 (Transact-SQL)
如何将起始服务配置为使用完全对话安全模式 (Transact-SQL)
如何将起始服务配置为使用匿名对话安全模式 (Transact-SQL)

概念

Service Broker 用户级权限

其他资源

GRANT (Transact-SQL)
GRANT Service Broker 权限 (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助