Protezione per i server collegati
Durante una connessione a un server collegato, ad esempio per l'elaborazione di una query distribuita, il server mittente fornisce un nome dell'account di accesso e una password per connettersi al server ricevente per suo conto. Per far funzionare la connessione, è necessario creare un mapping dell'account di accesso tra i server collegati utilizzando le stored procedure di sistema di SQL Server.
È possibile aggiungere i mapping degli account di accesso dei server collegati tramite sp_addlinkedsrvlogin ed è possibile rimuoverli tramite sp_droplinkedsrvlogin. Il mapping dell'account di accesso di un server collegato definisce un account di accesso remoto e una password remota per il server collegato e l'account di accesso locale specificati. Quando SQL Server si connette a un server collegato per eseguire una query distribuita o una stored procedure, SQL Server cerca gli eventuali mapping dell'account di accesso corrente che esegue la query o la procedura. Se trova un mapping, SQL Server invia l'account di accesso remoto e la password corrispondenti quando si connette al server collegato.
Ad esempio, per il server collegato S1 è stato configurato un mapping dell'account di accesso locale U1 all'account di accesso remoto U2 tramite la password remota 8r4li034j7$. Quando l'account di accesso locale U1 esegue una query distribuita che accede a una tabella archiviata nel server collegato S1, nel momento in cui SQL Server si connette al server collegato S1, come ID utente e password vengono passati U2 e 8r4li034j7$.
Il mapping predefinito per la configurazione di un server collegato prevede l'emulazione delle credenziali di protezione correnti dell'account di accesso. Questo tipo di mapping è definito mapping automatico. Quando viene aggiunto un server collegato tramite sp_addlinkedserver, per tutti gli account di accesso locali viene aggiunto un mapping automatico predefinito. Se è disponibile la delega degli account di protezione e il server collegato supporta l'autenticazione di Windows, è supportato il mapping automatico degli account di accesso autenticati tramite l'autenticazione di Windows.
[!NOTA]
Se possibile, utilizzare l'autenticazione di Windows.
Se la delega degli account di protezione non è disponibile nel client o nel server mittente o se il server/provider collegato non supporta l'autenticazione di Windows, il mapping automatico non funziona per gli account di accesso che utilizzano l'autenticazione di Windows. Sarà pertanto necessario configurare un mapping di account di accesso locale tra un account di accesso che utilizza l'autenticazione di Windows e un account di accesso specifico nel server collegato che non è autenticato tramite l'autenticazione di Windows. In questo caso, l'account di accesso remoto utilizza l'autenticazione di SQL Server se il server collegato è un'istanza di SQL Server.
Le query distribuite sono soggette alle autorizzazioni per la tabella remota concesse all'account di accesso remoto dal server collegato. SQL Server non esegue tuttavia convalide delle autorizzazioni in fase di compilazione. Le violazioni delle autorizzazioni vengono rilevate al momento dell'esecuzione della query in base a quanto segnalato dal provider.
[!NOTA]
Per creare piani di query ottimali quando si utilizza una tabella in un server collegato, è necessario che Query Processor ottenga le statistiche di distribuzione dei dati dal server collegato. Gli utenti con autorizzazioni limitate per qualsiasi colonna della tabella potrebbero non disporre delle autorizzazioni sufficienti per ottenere tutte le statistiche utili, nonché ricevere un piano della query meno efficiente e riscontrare problemi di prestazioni. Se il server collegato è un'istanza di SQL Server, per ottenere tutte le statistiche disponibili è necessario che l'utente sia il proprietario della tabella oppure un membro del ruolo predefinito del server sysadmin, del ruolo predefinito del database db_owner oppure del ruolo predefinito db_ddladmin nel server collegato.
Test della connessione ai server collegati
In Esplora oggetti fare clic con il pulsante destro del mouse sul server collegato, quindi scegliere Test connessione.
Vedere anche