Creazione di server collegati (motore di database di SQL Server)
La creazione di server collegati consente di utilizzare dati di più origini. Il server collegato non deve essere un'altra istanza di SQL Server, tuttavia si tratta di uno scenario comune. In questo argomento viene illustrato come creare un server collegato e come accedere ai dati da un'altra istanza di SQL Server.
In questo argomento
Prima di iniziare:
Background
Sicurezza
Esempi:
SQL Server Management Studio
Transact-SQL
Completamento: passaggi da effettuare dopo aver creato un server collegato
Background
Un server collegato consente l'accesso a query distribuite ed eterogenee in origini dati OLE DB. Dopo aver creato un server collegato, le query distribuite possono essere eseguite in questo server e consentono di creare un join di tabelle provenienti da più origini dati. Se il server collegato viene definito come un'istanza di SQL Server, è possibile eseguire stored procedure remote.
Le funzionalità e gli argomenti obbligatori del server collegato possono variare in modo significativo. Tra gli esempi contenuti in questo argomento ne viene fornito uno tipico nel quale però non sono descritte tutte le opzioni. Per ulteriori informazioni, vedere sp_addlinkedserver (Transact-SQL).
Sicurezza
Autorizzazioni
È richiesta l'autorizzazione ALTER ANY LINKED SERVER per il server.
[Torna all'inizio]
Come creare un server collegato
È possibile utilizzare uno degli elementi seguenti:
SQL Server Management Studio
Transact-SQL
Utilizzo di SQL Server Management Studio
Per creare un server collegato a un'altra istanza di SQL Server tramite SQL Server Management Studio
In SQL Server Management Studio aprire Esplora oggetti, espandere Oggetti server, fare clic con il pulsante destro del mouse su Server collegati, quindi Nuovo server collegato.
Nella casella Server collegato della pagina Generale digitare il nome dell'istanza di SQL Server a cui si sta eseguendo il collegamento.
Nota
Se l'istanza di SQL Server è quella predefinita, immettere il nome del computer che ospita l'istanza di SQL Server. Se l'istanza di SQL Server è un'istanza denominata, immettere il nome del computer e il nome dell'istanza, ad esempio Contabilità\SQLExpress.
Nell'area Tipo di server selezionare SQL Server per indicare che il server collegato è un'altra istanza di SQL Server.
Nella pagina Sicurezza specificare il contesto di sicurezza che verrà utilizzato quando la connessione al server collegato viene eseguita dall'istanza originale di SQL Server. In un ambiente di dominio in cui gli utenti eseguono la connessione tramite account di dominio personalizzati, la selezione di Verranno effettuate con il contesto di sicurezza corrente dell'account di accesso è spesso la soluzione migliore. Quando gli utenti eseguono la connessione all'istanza originale di SQL Server utilizzando un account di accesso di SQL Server, la scelta ottimale spesso consiste nel selezionare Verranno effettuate con il contesto di sicurezza seguente, quindi fornendo le credenziali necessarie per l'autenticazione nel server collegato.
Fare clic su OK.
[Torna all'inizio]
Utilizzo di Transact-SQL
Per creare un server collegato tramite Transact-SQL, utilizzare le istruzioni sp_addlinkedserver (Transact-SQL)CREATE LOGIN (Transact-SQL) e sp_addlinkedsrvlogin (Transact-SQL).
Per creare un server collegato a un'altra istanza di SQL Server tramite Transact-SQL
Nell'Editor query immettere il comando Transact-SQL seguente per il collegamento a un'istanza di SQL Server denominata SRVR002\ACCTG:
USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'SRVR002\ACCTG', @srvproduct=N'SQL Server' ; GO
Eseguire il codice riportato di seguito per configurare il server collegato in modo da utilizzare le credenziali di dominio dell'account di accesso utilizzate dal server collegato.
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL , @useself = N'True' ; GO
[Torna all'inizio]
Completamento: passaggi da effettuare dopo aver creato un server collegato
Per testare il server collegato
Eseguire il codice riportato di seguito per testare la connessione al server collegato. In questo esempio vengono restituiti i nomi dei database nel server collegato.
SELECT name FROM [SRVR002\ACCTG].master.sys.sysdatabases ; GO
Scrittura di una query che consente creare un join di tabelle di un server collegato
Utilizzare nomi in quattro parti per fare riferimento a un oggetto in un server collegato. Eseguire il codice riportato di seguito per restituire un elenco di tutti gli account di accesso nel server locale e i relativi account di accesso corrispondenti nel server collegato.
SELECT local.name AS LocalLogins, linked.name AS LinkedLogins FROM master.sys.server_principals AS local LEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked ON local.name = linked.name ; GO
Quando viene restituito NULL per l'account di accesso del server collegato, tale account di accesso non è presente nel server collegato. Questi account di accesso non potranno essere utilizzati dal server collegato a meno tale server non sia configurato per passare un contesto di sicurezza differente oppure il server collegato accetta connessioni anonime.
[Torna all'inizio]