Share via


Procédure : configurer des autorisations pour un service local (Transact-SQL)

SQL Server utilise l'autorisation SEND pour chaque service et l'autorisation RECEIVE pour chaque file d'attente. L'entité de sécurité qui détient le service initiateur doit disposer des autorisations SEND pour le service cible. L'entité de sécurité d'une application doit disposer de l'autorisation RECEIVE pour chaque file d'attente de laquelle l'application reçoit des messages.

Cette procédure constitue une forme simplifiée de la procédure de création d'une configuration de sécurité distante. Dans les deux cas, vous accordez l'autorisation SEND sur le service de destination et l'autorisation RECEIVE sur la file d'attente pour le service qui envoie les messages. Toutefois, pour une configuration de sécurité distante, vous devez également configurer la sécurité Service Broker afin d'identifier correctement l'utilisateur distant. La configuration dans une base de données unique ne requiert que l'octroi d'autorisations.

Octroi d'autorisations pour un service local

  1. Accordez à l'utilisateur l'autorisation de recevoir des messages de la file d'attente que l'application utilise.

  2. Accordez à l'utilisateur qui possède le service initiateur l'autorisation d'envoyer des messages aux services avec lesquels l'application communique.

Exemple

Cet exemple configure des autorisations permettant à BrokerApplicationUser d'envoyer des messages du service qui utilise la file d'attente StoreFrontQueue au service Ordering. Cette procédure présuppose que l'utilisateur, les services et la file d'attente existent déjà.

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