SQLShack (Italiano)

I server collegati consentono di inviare un’istruzione T-SQL su un’istanza di SQL Server, che restituisce dati da altre istanze di SQL Server. Un server collegato consente di unire i dati da diverse istanze di SQL Server utilizzando una singola istruzione T-SQL quando i dati esistono su più database su istanze SQL diverse. Utilizzando un server collegato per recuperare i dati da diverse istanze SQL, l’unica cosa che dovrebbe essere fatta è connettersi a un’istanza SQL.,

Esistono due modi per configurare il server collegato in SSMS. Un modo è quello di utilizzare sp_addlinkedserver sistema stored procedure e un altro è quello di utilizzare SQL Server Management Studio (SSMS) interfaccia GUI.

In questo articolo verrà spiegato come configurare un server collegato utilizzando un’origine dati SQL Server. Maggiori informazioni su altre fonti di dati possono essere trovate su questo link.,

Per vedere tutte collegato creato server in sql server management studio, in Esplora Oggetti, ha scelto la cartella Oggetti Server e di espandere il Server Collegati cartella:

Per creare un server collegato in sql server management studio, fare clic destro sul Server Collegati cartella e dal menu contestuale, selezionare il Nuovo Server Collegato opzione:

Il Nuovo Server Collegato finestra di dialogo viene visualizzato:

In questa finestra di dialogo, il nome di un server collegato e il tipo di server deve essere identificato., I server collegati possono essere definiti per diversi tipi di origine dati se viene scelto il pulsante di opzione Altra origine dati. Per lo scopo di questo articolo, SQL Server radio pulsante sotto il tipo di Server di sezione saranno scelti e Collegati nella casella di testo server, nome del server sarà inserito:

Se il tipo di SQL Server è scelto di configurare un Server di SQL server collegato, il nome specificato nel server Collegato casella di testo deve essere il nome del Server SQL remoto.,

Se un’istanza di SQL Server è un’istanza predefinita, digitare il nome del computer che ospita l’istanza di SQL Server (ad esempio WSERVER2012). Se SQL Server è un’istanza con nome, digitare il nome del computer e il nome dell’istanza separati da una barra (ad esempio WSERVER2012\SQLEXPRESS).,

in caso Contrario potrebbe verificarsi il seguente errore quando si preme il tasto OK:

Per impostare il modo in cui un utente avrebbe autenticare il WSERVER2012\SQLEXPRESS esempio, sotto Selezionare una sezione della pagina in alto a sinistra del Nuovo Server Collegato finestra di dialogo, selezionare la voce Protezione:

Qui i diversi modi per autenticare il server collegato.

Sotto le mappature di accesso server locale a server remoto, è possibile impostare due modi di accesso locale a un accesso remoto., Un modo è associare un accesso locale a un accesso remoto e un altro modo è impersonare.

Login locale

Nel campo Login Locale, verranno elencati tutti gli accessi locali. Il locale di accesso, può essere un’Autenticazione di SQL Server locale di accesso:

O un accesso di Autenticazione di Windows:

Ora, quando si fa clic sul pulsante OK sul Nuovo Server Collegato finestra di dialogo, il seguente messaggio di errore viene visualizzato:

Il mapping di accesso deve essere o rappresentare o che hanno un account di accesso remoto nome.,

Vedere l’immagine qui sotto:

Questo accade perché la casella di controllo Impersona non è selezionata.

Impersona

La casella di controllo Impersona quando è selezionata passa le credenziali di accesso locali al server collegato., Per l’autenticazione SQL Server, lo stesso login con le credenziali esatte deve esistere sul server collegato, altrimenti quando connesso al server con l’autenticazione SQL Server, l’elenco dei database nella cartella Cataloghi può essere simile a questo:

Per gli accessi Windows, il login deve essere un login valido sul server collegato. Per utilizzare la rappresentazione, è necessario impostare la delega tra il server locale e il server collegato.

Creiamo un server collegato utilizzando il login locale di Windows., Dal Locale di Accesso della casella combinata, scegliere il locale di accesso di Windows e controllare il Impersonare casella di controllo e premere il pulsante OK:

Sotto i Cataloghi di cartella, tutti i database che si trovano sul server collegato verranno elencati:

Utente Remoto

L’utente remoto opzione permette agli utenti di SQL server locale per connettersi a SQL server collegata anche se le credenziali non sono presenti sul server remoto utilizzando le credenziali dell’utente che esiste sul server remoto., Fondamentalmente, consente agli accessi locali di connettersi a un server remoto come login diverso che deve esistere su un server remoto.

Password remota

Specificare la password dell’utente remoto.

Dall’elenco a discesa Accesso locale, scegliere un accesso locale che dovrebbe essere associato a un accesso remoto. Nel campo Utente remoto immettere il nome dell’utente remoto esistente sul server remoto e nella Password remota archiviata immettere una password dell’utente remoto.,e7″>

Inoltre, il Server Collegato finestra di dialogo, esso può essere identificato come account di accesso che non sono impostato il server Locale di accesso al server remoto mapping elenco connettersi al server collegato, per questo ci sono quattro opzioni che possono essere utilizzati e si trovano sotto il Per un account di accesso non definito nell’elenco di sopra, le connessioni sezione:

Non essere fatti

Se questo pulsante è scelto, tutti gli utenti che non sono identificati in Locale il server di login al server remoto mapping elenco non può stabilire una connessione al server collegato.,

Per esempio, se il login con un account diverso (ad esempio, Ben) che non il mapping di accesso elenco l’elenco dei database sotto i Cataloghi cartella sarà simile a questa:

Se si tenta di eseguire una query di server collegato:

1
2
3

SELECT * FROM .AdventureWorks2014.Risorse umane.,Dipendente e

Il seguente risultato verrà visualizzato:

Msg 7416, Livello 16, Stato 1, Riga 1
l’Accesso al server remoto è negato perché no login-mapping esiste.

Be made without using a security context

L’opzione Be made without using a security context viene utilizzata per connettersi a origini dati che non richiedono alcuna autenticazione, ad esempio come un file di testo., Quando questa opzione è selezionata per la connessione a un server collegato, avrà lo stesso effetto di selezionare l’opzione “Non essere fatto”.

Se si tenta di eseguire una query di server collegato:

1
2
3

SELECT * FROM .AdventureWorks2014.Risorse umane.,Employee e

The following message e may appear:

OLE DB provider “SQLNCLI11” for linked server “WSERVER2012\SQLEXPRESS” returned message “Invalid authorization specification”.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider “SQLNCLI11” for linked server “WSERVER2012\SQLEXPRESS” reported an error. Authentication failed.,
Msg 7303, Livello 16, Stato 1, Riga 1

Impossibile inizializzare l’oggetto origine dati del provider OLE DB “SQLNCLI11” per il server collegato “WSERVER2012 \ SQLEXPRESS”.

Essere effettuato utilizzando il contesto di sicurezza corrente del login

Se questa opzione è scelta, passerà il contesto di sicurezza corrente del login locale al login remoto. Se viene utilizzata l’autenticazione di Windows, le credenziali di Windows verranno utilizzate per connettersi a un server SQL remoto. Se viene utilizzata l’autenticazione SQL Server, le credenziali di accesso locali verranno passate a SQL Server remoto., Nota, per stabilire la connessione a un server remoto con successo, l’utente con le stesse credenziali deve essere presente sul server remoto altrimenti quando si esegue una query di server collegato:

1
2
3

SELECT * FROM .AdventureWorks2014.Risorse umane.,Dipendente e

verrà visualizzato Il seguente messaggio:

messaggio 18456, Livello 14, Stato 1, Riga 1
Accesso non riuscito per l’utente ‘Ben’.

Essere fatto utilizzando questo contesto di sicurezza

La quarta opzione sotto il Per un login non definito nella lista di cui sopra, connessioni sarà sezione viene effettuata utilizzando questo contesto di sicurezza., Nei campi Login remoto e Con password, immettere le credenziali del login di autenticazione SQL Server esistenti su un server remoto, altrimenti potrebbe verificarsi il seguente errore:

L’ultima voce nel menu Seleziona una pagina è la voce Opzioni server. Quando si seleziona questa opzione, verrà mostrata la seguente finestra:

Qui è possibile visualizzare o impostare opzioni aggiuntive per il server collegato.

Compatibile con le regole di confronto

La prima opzione è l’opzione compatibile con le regole di confronto., Questa opzione viene utilizzata per identificare se il server collegato ha le stesse regole di confronto del server locale. Questa opzione dovrebbe essere impostata su True solo se è noto che il server collegato ha le stesse regole di confronto del locale, altrimenti dovrebbe essere impostata su False (default).

Accesso ai dati

Questa opzione viene utilizzata per consentire / negare l’accesso ai dati del server collegato. Se questa opzione è impostata su False, l’accesso a remote verrà negato. Questa opzione è utile per disabilitare temporaneamente l’accesso a un server remoto., Il seguente messaggio apparirà quando si esegue una query sul server collegato e questa opzione è impostata su False:

Msg 7411, Livello 16, Stato 1, Riga 1
Il server ‘WSERVER2012\SQLEXPRESS’ non è configurato per l’ACCESSO AI DATI.

Per impostazione predefinita, l’opzione è impostata su True

RPC e RCP Out

Questo RCP (Remote Procedure Call) viene utilizzato per consentire l’accesso alle procedure remote da chiamare dal server collegato o da chiamare al server collegato.,

Se queste opzioni sono impostate su False, verrà visualizzato il seguente errore quando vengono chiamate alcune procedure dal server collegato:

Msg 7411, Livello 16, Stato 1, Riga 4
Il server ‘WSERVER2012\SQLEXPRESS’ non è configurato per RPC.,

per impostazione predefinita, il valore False sono impostati per la RPC e RCP opzioni

Utilizzare il Telecomando di Confronto

Quando questa opzione è impostata su True, la collezione di colonne remote sarà utilizzato per la raccolta specificato nel Nome delle regole di Confronto depositata essere utilizzato per i dati di origine che non sono di origine dati SQL Server, ma se l’opzione è impostata su False, il confronto per il server locale verranno utilizzati. Per impostazione predefinita, è impostato su False.,

Nome regole di confronto

Se l’opzione Use Remote Collation filed è impostata su True, questa opzione viene utilizzata per specificare il nome regole di confronto del server collegato per l’origine dati non SQL Server. Quando si sceglie un nome di confronto, deve essere un confronto supportato da SQL Server.

Timeout di connessione

Questa opzione viene utilizzata per impostare il tempo massimo di attesa del server locale per ottenere una connessione all’istanza SQL Server del server collegato. Se è impostato 0 (zero), viene utilizzata l’opzione timeout di accesso remoto del server. Per impostazione predefinita, 10 secondi è impostato per questa opzione., Nota, il valore predefinito per SQL Server 2008 è 20 secondi.

Query Timeout

Questa opzione viene utilizzata per impostare quanto tempo, in secondi, un processo remoto può richiedere prima che il tempo sia scaduto. Il valore predefinito è 600 secondi (10 minuti). Per disabilitare il timeout della query, inserire 0 (zero) in questo campo e la query attenderà fino al completamento.

Distributore

In questa opzione, è possibile specificare se il server collegato partecipa alla replica come Publisher di distribuzione.,

Il Distributore è un’istanza di database, che funge da archivio per i dati specifici di replica associati a uno o più Publisher

Publisher

In questa opzione, è possibile impostare se il server collegato sia un publisher di replica o meno. Se True, il server collegato è un publisher. Altrimenti, non lo è.

L’editore è un’istanza di database, che rende i dati disponibili ad altre posizioni attraverso la replica.

Subscriber

In questa opzione, è possibile specificare se il server collegato è un subscriber di replica o meno.,

Un abbonato è un’istanza di database, che riceve i dati replicati.

Ulteriori informazioni su Distributore, Editore, abbonato sono disponibili nella pagina Panoramica del modello di pubblicazione di replica.

Lazy schema validation

Questa opzione controlla le modifiche allo schema che si sono verificate dalla compilazione nelle tabelle remote. Se questa opzione è impostata su False (stato predefinito), SQL Server controlla le modifiche prima dell’esecuzione di una query e, se ci sono alcune modifiche, ricompila la query., Se la convalida dello schema Lazy è impostata su True, uno schema di ritardo di SQL Server controlla le tabelle remote fino all’esecuzione della query.

Abilita la promozione di transazioni distribuite

Questa opzione viene utilizzata per proteggere le azioni di una procedura server-to-server tramite una transazione Microsoft Distributed Transaction Coordinator (MS DTC). Se questa opzione è impostata su True, la chiamata a una stored procedure remota avvia una transazione distribuita e attiva la transazione con MS DTC.

Ora, quando tutto è impostato, fare clic sul pulsante OK nella finestra di dialogo Nuovo server collegato., Un server collegato appena creato apparirà sotto la cartella del server collegato.,rks correttamente, andare a destra-clic su quel server collegato e scegliere il Test di Connessione:

Se una connessione con il server collegato è stabilita con successo, le seguenti informazioni apparirà il messaggio:

in caso Contrario, un messaggio di errore che mostra un problema che impedisce la connessione sia stabilita:

l’Interrogazione di dati utilizzando un server collegato

l’Interrogazione di dati che utilizza il server collegato è un po ‘ diversa, quindi l’interrogazione di dati da SQL Server locale., Nelle query normali, di solito, viene utilizzata la notazione in due parti ., per esempio HumanResources.Dipendente:

1
2
3

SELECT * FROM HumanResources.Employee e

Quando si interroga una tabella da un server collegato, viene utilizzata la notazione della quarta parte LinkedServer.Database.Schema.Nome oggetto., Per ottenere i dati dalla tabella del Dipendente che si trova in un database sul server collegato, l’interrogazione codice sarà simile a questa:

1
2
3

SELECT * FROM …,

Eliminazione di un server collegato

Per eliminare un server collegato, sotto il Server Collegati cartella, fare clic sul collegamento del server e dal menu contestuale scegliere il comando Elimina:

si aprirà l’Eliminazione di dialogo Oggetto:

fare Clic sul pulsante OK e il messaggio di dialogo, scegliere il pulsante Sì:

Se tutto va bene il server collegato verrà rimosso dal Server Collegati cartella., Server server collegato tramite Transact-SQL

  • Come query di dati di Excel utilizzando SQL Server collegati
  • Come configurare un Server Collegato utilizzando il driver ODBC
  • Come creare un server collegato a un database di SQL Azure
    • Autore
    • Post Recenti
    Marko aka “Zivko” è un software senior analyst da Nis, Serbia a fuoco su SQL Server e MySQL nonché delle tecnologie client, come sql server management studio, Visual Studio, e VSCode., Ha una vasta esperienza con la garanzia della qualità, l’escalation/risoluzione dei problemi e l’evangelizzazione dei prodotti.
    È un autore prolifico di contenuti autorevoli relativi a SQL Server tra cui una serie di articoli “platinum” (top 1% in termini di popolarità e coinvolgimento). La sua scrittura copre una serie di argomenti su MySQL e SQL Server tra cui server remoti/collegati, import/export, LocalDB, SSMS e altro ancora.
    Nel suo part-time, Zivko ama il basket, calcio balilla (calcio balilla), e la musica rock.,
    Vedi di più su Marko LinkedIn
    Visualizza tutti i messaggi di Marko Zivkovic

    Ultimi post by Marko Zivkovic (vedi tutti)
    • Come per connettersi a un server MySQL remoto utilizzando il protocollo SSL su Ubuntu – aprile 28, 2020
    • Come installare MySQL su Ubuntu – Marzo 10, 2020
    • Utilizzo di chiavi SSH per connettersi a un Server MySQL remoto – 28 novembre 2019

    Share

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *