Condividi tramite


Controllo di identità e accesso (Service Broker)

La maggior parte delle applicazioni di Service Broker che coinvolgono più istanze vengono eseguite nel contesto di protezione di un'entità di database creata appositamente per l'applicazione. A queste entità di database devono essere concesse le autorizzazioni minime necessarie per il completamento delle attività eseguite dall'applicazione.

Le considerazioni seguenti si applicano a entità di database create per applicazioni di Service Broker:

  • La funzionalità di autorizzazione remota di Service Broker viene utilizzata quando un'applicazione remota di Service Broker si connette a SQL Server e recapita un messaggio all'istanza. L'entità di database specificata per l'autorizzazione remota deve disporre dell'autorizzazione CONNECT nel database che ospita il servizio di origine e dell'autorizzazione SEND per lo stesso servizio di origine. L'utente deve essere proprietario del certificato utilizzato per l'autenticazione. Non esistono requisiti che impongano all'utente la proprietà di altri oggetti o di altre autorizzazioni o l'esecuzione dell'accesso mediante altri meccanismi.

  • Per iniziare una conversazione, un'entità di database deve disporre di autorizzazioni RECEIVE per la coda del servizio di origine.

  • L'entità di database proprietaria del servizio di origine deve disporre di autorizzazioni SEND per il servizio di destinazione.

  • Per inviare messaggi a un servizio, l'entità di database deve disporre di autorizzazioni SEND per il servizio. Per i servizi ospitati in un'istanza diversa, la funzionalità di protezione del dialogo di Service Broker determina l'entità di database nell'istanza remota. Per ulteriori informazioni, vedere Protezione del dialogo di Service Broker. Si noti che Service Broker non considera l'appartenenza ai ruoli di Windows durante il controllo delle autorizzazioni SEND.

  • L'utente specificato come utente di una stored procedure di attivazione deve disporre dell'autorizzazione per l'esecuzione della stored procedure stessa. L'utente specificato dispone spesso delle autorizzazioni necessarie per l'esecuzione delle istruzioni contenute nella stored procedure. Si noti, tuttavia, che se la stored procedure stessa viene definita con una clausola EXECUTE AS, le istruzioni in essa contenute vengono eseguite con il contesto di protezione definito dalla stored procedure. SQL Server imposta innanzitutto il contesto di protezione per l'utente specificato per la coda. SQL Server esegue quindi la stored procedure che a sua volta modifica il contesto di protezione per l'utente specificato per la stored procedure.

  • Quando la funzionalità di protezione del trasporto di Service Broker utilizza l'interfaccia SSPI, l'account del servizio del database remoto deve disporre dell'autorizzazione CONNECT in master e deve inoltre corrispondere a un account di accesso. Pertanto, l'account con il quale viene eseguita l'istanza remota di SQL Server deve avere l'autorizzazione di accesso a SQL Server mediante l'autenticazione di Windows. Non esistono requisiti per l'account di accesso che impongano altre autorizzazioni o la proprietà di oggetti in un qualsiasi database.