Condividi tramite


Procedura: Configurazione di autorizzazioni per un servizio locale (Transact-SQL)

SQL Server applica l'autorizzazione SEND a tutti i servizi e autorizzazioni RECEIVE per tutte le code. L'entità di sicurezza proprietaria del servizio di origine deve disporre dell'autorizzazione SEND per il servizio di destinazione. L'entità di sicurezza di un'applicazione deve disporre dell'autorizzazione RECEIVE per ogni coda dalla quale l'applicazione riceve messaggi.

Questa procedura è una versione semplificata della procedura per la creazione di una configurazione di sicurezza remota. In entrambi i casi al servizio che invia i messaggi viene concessa l'autorizzazione SEND per il servizio di destinazione e l'autorizzazione RECEIVE per la coda interessata. Per una configurazione di sicurezza remota, tuttavia, è inoltre necessario configurare la sicurezza di Service Broker per la corretta identificazione dell'utente remoto. Per la configurazione all'interno di un unico database è sufficiente concedere autorizzazioni.

Concessione di autorizzazioni per un servizio locale

  1. Concedere all'utente l'autorizzazione per la ricezione dalla coda utilizzata dall'applicazione.

  2. Concedere all'utente proprietario del servizio di origine l'autorizzazione per l'invio di messaggi ai servizi con i quali l'applicazione comunica.

Esempio

In questo esempio vengono configurate le autorizzazioni per consentire a BrokerApplicationUser di inviare messaggi dal servizio che utilizza la coda StoreFrontQueue al servizio Ordering. Nella procedura si presuppone che l'utente, i servizi e la coda siano già esistenti.

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