如何:設定本機服務的權限 (Transact-SQL)

SQL Server 會強制設定每個服務的 SEND 權限以及每個佇列的 RECEIVE 權限。擁有起始服務的安全性主體必須具有目的地服務的 SEND 權限。應用程式的安全性主體必須具有每個佇列的 RECEIVE 權限,以供該應用程式從每個佇列接收訊息。

此程序是建立遠端安全性組態之程序的簡單形式。在任一情況下,您都必須為傳送訊息的服務授與目的地服務的 SEND 權限以及佇列的 RECEIVE 權限。不過,對於遠端安全性組態,您還必須設定 Service Broker 安全性以正確識別遠端使用者。對於單一資料庫內的組態,您只需授與權限。

為本機服務授與權限

  1. 授與使用者從應用程式所使用之佇列進行接收的權限。

  2. 授與擁有起始服務的使用者將訊息傳送至與應用程式通訊之服務的權限。

範例

此範例設定權限,以允許 BrokerApplicationUser 將使用 StoreFrontQueue 佇列之服務所送來的訊息傳送至 Ordering 服務。此程序假設使用者、服務和佇列都已存在。

USE AdventureWorks2008R2 ;
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