Server collegati (Motore di database)

Configurare un server collegato per consentire a Motore di database di SQL Server di eseguire comandi su origini dati OLE DB all'esterno dell'istanza di SQL Server. In genere i server collegati sono configurati per consentire a Motore di database di eseguire l'istruzione Transact-SQL che include tabelle in un'altra istanza di SQL Server o un altro prodotto del database quale Oracle. Molti tipi di origini dati OLE DB possono essere configurati come server collegati, incluso Access e Excel Microsoft. I server collegati offrono i vantaggi riportati di seguito:

  • Possibilità di accedere ai dati dall'esterno di SQL Server.

  • Possibilità di eseguire query distribuite, aggiornamenti, comandi e transazioni su origini dati eterogenee in tutta l'azienda.

  • Possibilità di utilizzare origini dati diverse in modo analogo.

È possibile configurare un server collegato tramite SQL Server Management Studio o tramite l'istruzione sp_addlinkedserver (Transact-SQL) I provider OLE DB variano in modo sostanziale nel tipo e nel numero di parametri richiesti. Ad esempio alcuni provider richiedono di fornire un contesto di sicurezza per la connessione utilizzando sp_addlinkedsrvlogin (Transact-SQL). Alcuni provider OLE DB consentono a SQL Server di aggiornare i dati sull'origine OLE DB. Altri forniscono accesso soltanto ai dati di sola lettura. Per informazioni su ogni provider OLE DB, consultare la documentazione relativa a detto provider OLE DB.

Componenti di un server collegato

Nella definizione di un server collegato sono specificati gli oggetti seguenti:

  • Un provider OLE DB

  • Un'origine dei dati OLE DB

Un provider OLE DB è una DLL in grado di gestire un'origine dei dati specifica e interagire con essa. Un'origine dei dati OLE DB identifica lo specifico database a cui è possibile accedere tramite OLE DB. Anche se le origini dei dati su cui si eseguono query tramite definizioni di server collegati sono in genere database, esistono provider OLE DB per un'ampia gamma di file e formati di file, quali file di testo, dati di fogli di calcolo e risultati di ricerche di contenuto full-text.

Il provider OLE DB di Microsoft SQL Server Native Client (PROGID: SQLNCLI11) è il provider OLE DB ufficiale per SQL Server.

[!NOTA]

Le query distribuite di SQL Server sono progettate per funzionare con qualsiasi provider OLE DB che implementi le interfacce OLE DB necessarie. SQL Server è stato tuttavia testato solo con il provider OLE DB di SQL Server Native Client e con alcuni altri provider.

Dettagli relativi ai server collegati

Nella figura seguente vengono illustrati i componenti di base di una configurazione con server collegati.

Livello client, livello server e livello server di database

I server collegati vengono in genere utilizzati per la gestione delle query distribuite. Quando un'applicazione client esegue una query distribuita tramite un server collegato, SQL Server analizza il comando e invia le richieste a OLE DB. È possibile richiedere l'esecuzione di una query sul provider o l'apertura di una tabella di base dal provider.

Un'origine dei dati può restituire dati tramite un server collegato solo se il relativo provider OLE DB (DLL) è presente nello stesso server dell'istanza di SQL Server.

Quando viene utilizzato un provider OLE DB di terze parti, l'account con cui viene eseguito il servizio SQL Server deve disporre di autorizzazioni di lettura ed esecuzione per la directory, e tutte le sottodirectory, in cui è installato il provider.

Gestione dei provider

È disponibile un set di opzioni che consente di controllare la modalità con cui SQL Server carica e utilizza i provider OLE DB specificati nel Registro di sistema.

Gestione delle definizioni dei server collegati

Quando si configura un server collegato è necessario registrare in SQL Server i dati per la connessione e le informazioni sull'origine dei dati. Dopo la registrazione sarà possibile fare riferimento all'origine dei dati utilizzando un singolo nome logico.

Per gestire le definizioni dei server collegati è possibile utilizzare stored procedure e viste del catalogo:

  • Per creare una definizione di server collegato, eseguire sp_addlinkedserver.

  • Per visualizzare informazioni sui server collegati definiti in una specifica istanza di SQL Server, eseguire una query sulle viste del catalogo di sistema sys.servers.

  • Per eliminare la definizione di un server collegato, eseguire sp_dropserver. Questa stored procedure può essere utilizzata anche per rimuovere un server remoto.

Per definire i server collegati è inoltre possibile utilizzare SQL Server Management Studio. In Esplora oggetti fare clic con il pulsante destro del mouse su Oggetti server, scegliere Nuovo e quindi Server collegato. Per eliminare la definizione di un server collegato, è possibile fare clic con il pulsante destro del mouse sul nome del server collegato e scegliere Elimina.

Quando si esegue una query distribuita su un server collegato, per ogni origine dei dati su cui viene eseguita la query specificare un nome di tabella completo in quattro parti. Il nome in quattro parti deve avere il formato seguente: linked_server_name.catalog**.schema.**object_name.

[!NOTA]

È possibile definire un server collegato in modo che punti all'indietro (loopback) al server in cui è stato definito. I server di loopback risultano particolarmente utili durante il test di un'applicazione in cui vengono utilizzate query distribuite in una rete con un solo server. I server collegati di loopback sono destinati ai test e non sono supportati per molte operazioni, ad esempio le transazioni distribuite.

Attività correlate

Creazione di server collegati (Motore di database di SQL Server)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_dropserver (Transact-SQL)

Contenuto correlato

sys.servers (Transact-SQL)

sp_linkedservers (Transact-SQL)