Vorgehensweise: Konfigurieren von Berechtigungen für einen lokalen Dienst (Transact-SQL)

SQL Server erzwingt die SEND-Berechtigung für jeden Dienst sowie RECEIVE-Berechtigungen für jede Warteschlange. Der Sicherheitsprinzipal, der den initiierenden Dienst besitzt, muss über SEND-Berechtigungen für den Zieldienst verfügen. Der Sicherheitsprinzipal für eine Anwendung muss über eine RECEIVE-Berechtigung für jede Warteschlange verfügen, von der die Anwendung Nachrichten empfängt.

Dieses Verfahren ist ein vereinfachtes Verfahren zum Erstellen einer Remotesicherheitskonfiguration. In beiden Fällen erteilen Sie die SEND-Berechtigung am Zieldienst und die RECEIVE-Berechtigung an der Warteschlange für den Dienst, der die Nachrichten sendet. Für eine Remotesicherheitskonfiguration müssen Sie jedoch auch die Service Broker-Sicherheit konfigurieren, um den Remotebenutzer ordnungsgemäß zu identifizieren. Für eine Konfiguration innerhalb einer einzelnen Datenbank müssen Sie lediglich Berechtigungen erteilen.

Erteilen von Berechtigungen für einen lokalen Dienst

  1. Erteilen Sie dem Benutzer die Berechtigung, von der Warteschlange zu empfangen, die von der Anwendung verwendet wird.

  2. Erteilen Sie dem Benutzer, der den initiierenden Dienst besitzt, die Berechtigung, Nachrichten an die Dienste zu senden, mit denen die Anwendung kommuniziert.

Beispiel

In diesem Beispiel werden die Berechtigungen so konfiguriert, dass BrokerApplicationUser Nachrichten von dem Dienst, der die StoreFrontQueue-Warteschlange verwendet, an den Ordering-Dienst senden kann. In dieser Prozedur wird davon ausgegangen, dass der Benutzer, die Dienste und die Warteschlange bereits vorhanden sind.

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