SQLShack (Nederlands)

gelinkte servers staan het verzenden van een T-SQL-statement toe op een SQL Server-instantie, die gegevens van andere SQL Server-instanties retourneert. Een gekoppelde server maakt het mogelijk gegevens van verschillende SQL Server-instanties samen te voegen met behulp van één T-SQL-statement wanneer gegevens in meerdere databases op verschillende SQL-instanties bestaan. Door een gekoppelde server te gebruiken om gegevens van verschillende SQL-instanties op te halen, is het enige wat gedaan moet worden om verbinding te maken met één SQL-instantie.,

Er zijn twee manieren om gekoppelde server in SSMS te configureren. Een manier is met behulp van sp_addlinkedserver systeem opgeslagen procedure en een andere is met behulp van SQL Server Management Studio (SSMS) GUI-interface.

in dit artikel wordt uitgelegd hoe u een gekoppelde server configureert met behulp van een SQL Server-gegevensbron. Meer informatie over andere gegevensbronnen vindt u op deze link.,

om Te zien allemaal gemaakt gekoppelde servers in SSMS, onder de Object Explorer, kiest de Server Objecten map en uitbreiden van de Gekoppelde Servers map:

maken van een gekoppelde server in SSMS, klik rechtsboven op de Gekoppelde Servers map en selecteer in het contextmenu de Nieuwe Gekoppelde Server een optie:

De Nieuwe Gekoppelde Server dialoogvenster verschijnt:

In deze dialoog, de naam van een gekoppelde server en server type geïdentificeerd moet worden., De gekoppelde servers kunnen voor verschillende soorten gegevensbron worden gedefinieerd als de keuzerondje andere gegevensbron wordt gekozen. Voor dit artikel wordt de radioknop SQL Server onder de sectie servertype gekozen en in het tekstvak gekoppelde server wordt een naam van de server ingevoerd:

als het SQL Server-type is gekozen om een SQL Server gekoppelde server in te stellen, moet de naam in het tekstvak gekoppelde server de naam van de externe SQL Server zijn.,

als een SQL Server-exemplaar standaard is, typt u de naam van de computer waarop het exemplaar van SQL Server Host (bijvoorbeeld WSERVER2012). Als de SQL Server een benoemde instantie is, typt u de naam van de computer en de naam van de instantie gescheiden door een schuine streep (bijvoorbeeld WSERVER2012\SQLEXPRESS).,

anders kan de volgende fout optreden wanneer de OK-knop wordt ingedrukt:

om in te stellen hoe een gebruiker zich zou aanmelden bij de wserver2012\SQLEXPRESS instantie, selecteer onder de sectie pagina selecteren in de linkerbovenhoek van het dialoogvenster Nieuwe gekoppelde Server het Beveiligingsitem:

hier kunnen verschillende manieren worden ingesteld om de gekoppelde server te authenticeren.

onder de Local server login to remote server login toewijzingen, kunnen twee manieren van lokale logging naar een remote login worden ingesteld., Een manier is om een lokale login te koppelen aan een remote login en een andere manier is om je voor te doen.

lokale Login

In het veld lokale Login worden alle lokale logins weergegeven. De lokale login kan een SQL Server authenticatie zijn lokale login:

of een Windows authenticatie login:

wanneer u nu op de knop OK in het dialoogvenster Nieuwe gekoppelde Server klikt, verschijnt de volgende foutmelding:

de login-toewijzingen moeten ofwel imiteren zijn of een aanmeldnaam op afstand hebben.,

zie onderstaande afbeelding:

Dit gebeurt omdat het selectievakje imiteren niet is aangevinkt.

imiteren

het selectievakje imiteren wanneer ingeschakeld geeft de lokale aanmeldingsreferenties door aan de gekoppelde server., Voor SQL Server-authenticatie moet dezelfde login met de exacte referenties bestaan op de gekoppelde server, anders moet de lijst met databases in de map catalogi er als volgt uitzien:

Voor Windows-logins moet de login een geldige login zijn op de gekoppelde server. Om imitatie te kunnen gebruiken, moet de delegatie tussen de lokale server en de gekoppelde server worden ingesteld.

laten we een gekoppelde server maken met behulp van de lokale windows-login., Kies de lokale Windows-login en vink het selectievakje imiteren aan en druk op de OK-knop:

in de map catalogi worden alle databases die zich op de gekoppelde server bevinden weergegeven:

externe gebruiker

met de optie externe gebruiker kunnen gebruikers van de lokale SQL Server verbinding maken met de gekoppelde SQL Server, ook al zijn hun referenties niet op de externe server aanwezig met behulp van de referenties van de gebruiker die op de externe server bestaat., In principe staat het lokale logins toe om verbinding te maken met een externe server als een andere login die moet bestaan op een externe server.

wachtwoord op afstand

geef het wachtwoord van de gebruiker op afstand op.

kies in de vervolgkeuzelijst lokale aanmelding een lokale aanmelding die moet worden toegewezen aan een aanmelding op afstand. Voer in het veld externe gebruiker de naam in van de externe gebruiker die op de externe server aanwezig is en voer in het opgeslagen externe wachtwoord een wachtwoord van die externe gebruiker in.,e7″>

Bovendien, op de Gekoppelde Server dialoog, kan worden nagegaan hoe de aanmeldingen die niet zijn gevestigd in de Lokale server aanmelden bij externe server login toewijzingen lijst zal aansluiten op de gekoppelde server, die er zijn vier opties die kunnen worden gebruikt en ze zijn te vinden onder het Voor een aanmelding niet in de bovenstaande lijst, zijn verbindingen sectie:

Niet worden gemaakt

Als dit keuzerondje is gekozen, worden alle gebruikers die niet zijn geïdentificeerd in de Lokale server aanmelden bij externe server login toewijzingen lijst kan geen verbinding met de gekoppelde server.,

bijvoorbeeld, als inloggen met een andere account (bijv. Ben) die niet in de login-lijst toewijzingen de lijst van de databases onder de Catalogi map zal er als volgt uitzien:

Als u probeert uit te voeren een gekoppelde server query:

1
2
3

SELECT * FROM .AdventureWorks2014.HumanResources.,Werknemer e

het volgende resultaat zal verschijnen:

MSG 7416, niveau 16, Status 1, Regel 1
Toegang tot de externe server wordt geweigerd omdat er geen login-toewijzing bestaat.

worden gemaakt zonder een beveiligingscontext te gebruiken

De optie worden gemaakt zonder een beveiligingscontext te gebruiken wordt gebruikt voor het verbinden met gegevensbronnen waarvoor geen authenticatie vereist is, bijvoorbeeld als een tekstbestand., Wanneer deze optie is geselecteerd voor verbinden met een gekoppelde server, zal hetzelfde effect hebben als het selecteren van de optie “niet worden gemaakt”.

Als u probeert uit te voeren een gekoppelde server query:

1
2
3

SELECT * FROM .AdventureWorks2014.HumanResources.,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, Level 16, State 1, Line 1

kan het gegevensbronobject van OLE DB provider “SQLNCLI11” voor gekoppelde server “WSERVER2012\SQLEXPRESS”niet initialiseren.

worden gemaakt met behulp van de huidige beveiligingscontext

als deze optie wordt gekozen, zal de huidige beveiligingscontext van de lokale aanmelding worden doorgegeven aan de externe aanmelding. Als Windows-verificatie wordt gebruikt, worden de Windows-referenties gebruikt om verbinding te maken met een externe SQL-server. Als SQL Server-verificatie wordt gebruikt, worden de lokale aanmeldingsreferenties doorgegeven aan externe SQL Server., Let op, verbinding maken met de externe server met succes, dan is de gebruiker met de exacte dezelfde referenties moet aanwezig zijn op de externe server anders bij het uitvoeren van een gekoppelde server query:

1
2
3

SELECT * FROM .AdventureWorks2014.HumanResources.,Werknemer e

het volgende bericht verschijnt:

Msg 18456, niveau 14, status 1, Regel 1
Login mislukt voor gebruiker ‘Ben’.

worden gemaakt met behulp van deze beveiligingscontext

de vierde optie onder de voor een login niet gedefinieerd in de lijst hierboven, verbindingen zal sectie wordt gemaakt met behulp van deze beveiligingscontext., Voer in de velden extern aanmelden en met wachtwoord de referenties in van de SQL Server-authenticatie-login die op een externe server aanwezig is, anders kan de volgende fout optreden:

Het Laatste item in het menu Pagina selecteren is het item Serveropties. Wanneer u deze optie selecteert, wordt het volgende venster getoond:

hier kunnen extra opties voor gekoppelde server worden gezien of ingesteld.

Collation Compatible

de eerste optie is de Collation Compatible optie., Deze optie wordt gebruikt om te bepalen of de gekoppelde server dezelfde collatie heeft als de lokale server. Deze optie moet alleen op True worden ingesteld als bekend is dat de gekoppelde server dezelfde collatie heeft als de lokale, anders moet deze op False worden ingesteld (standaard).

gegevenstoegang

Deze optie wordt gebruikt om toegang tot de gekoppelde servergegevens toe te staan/te weigeren. Als deze optie is ingesteld op False, wordt de toegang tot remote geweigerd. Deze optie is handig om de toegang tot een externe server tijdelijk uit te schakelen., Het volgende bericht zal verschijnen bij het uitvoeren van een gekoppelde server query en deze optie is ingesteld op False:

Msg 7411, niveau 16, Status 1, Regel 1
Server ‘WSERVER2012\SQLEXPRESS’ is niet geconfigureerd voor toegang tot gegevens.

standaard is de optie ingesteld op True

RPC en RCP Out

Deze RCP (Procedure op afstand aanroep) wordt gebruikt om de toegang tot procedures op afstand mogelijk te maken om te worden aangeroepen vanaf de gekoppelde server of om te worden aangeroepen naar de gekoppelde server.,

als deze opties zijn ingesteld op False, zal de volgende fout verschijnen wanneer sommige procedures van de gekoppelde server worden aangeroepen:

Msg 7411, niveau 16, Status 1, Regel 4
Server ‘WSERVER2012\SQLEXPRESS’ is niet geconfigureerd voor RPC.,

standaard is de waarde Onwaar zijn ingesteld voor de RPC en RCP opties

Gebruik Sorteren op Afstand

Als deze optie is ingesteld op True, wordt de collectie van externe kolommen worden gebruikt en collectie die is opgegeven in de Sortering Naam ingediend zal worden gebruikt voor de gegevensbron die geen SQL Server-gegevensbron, maar als de optie is ingesteld op False dan wordt de sortering voor de lokale server worden gebruikt. Standaard is dit ingesteld op False.,

Collation Name

als de opgeslagen Remote Collation gebruiken is ingesteld op True, wordt deze optie gebruikt om de collationnaam van de gekoppelde server op te geven voor de gegevensbron die geen SQL Server-gegevensbron is. Wanneer een collationnaam wordt gekozen, moet het een collation zijn die SQL Server ondersteunt.

verbindingstijd

Deze optie wordt gebruikt om de maximale tijd in te stellen waarop de lokale server moet wachten om een verbinding te krijgen met de gelinkte SQL Server-instantie van de server. Als 0 (nul) is ingesteld, dan wordt de server optie remote login time-out gebruikt. Standaard is 10 seconden ingesteld voor deze optie., Opmerking: de standaardwaarde voor SQL Server 2008 is 20 seconden.

Query Time-Out

Deze optie wordt gebruikt om in seconden in te stellen hoe lang een proces op afstand kan duren voordat de tijd voorbij is. De standaardwaarde is 600 seconden (10 minuten). Om query time-out uit te schakelen zet 0 (nul) in dit veld en de query zal wachten tot het is voltooid.

distributeur

In deze optie kan worden opgegeven of de gekoppelde server deelneemt aan replicatie als distributie-uitgever.,

de Distributeur is een database-instantie, die fungeert als een opslag voor replicatiespecifieke gegevens die zijn gekoppeld aan een of meer uitgevers

Publisher

In deze optie kan worden ingesteld of de gekoppelde server een replicatieuitgever is of niet. Indien ingeschakeld is de gekoppelde server een uitgever. Anders niet.

de uitgever is een database-instantie, die gegevens beschikbaar maakt voor andere locaties door replicatie.

abonnee

In deze optie kan worden opgegeven of de gekoppelde server een replicatieabonnee is of niet.,

een abonnee is een database-instantie die gerepliceerde gegevens ontvangt.

meer informatie over distributeur, uitgever en Abonnee is te vinden op de pagina over het Replicatiepublicatiemodel.

Lazy schema validation

Deze optie controleert schemawijzigingen die zijn opgetreden sinds compilatie in de externe tabellen. Als deze optie is ingesteld op False (standaardstatus), controleert SQL Server de wijzigingen voordat een query wordt uitgevoerd en als er enkele wijzigingen zijn, wordt de query opnieuw gecompileerd., Als de validatie van het Lazy-schema is ingesteld op True, controleert een SQL Server-vertragingsschema de externe tabellen totdat de query wordt uitgevoerd.

promotie van gedistribueerde transacties inschakelen

Deze optie wordt gebruikt om de acties van een server-to-server procedure te beveiligen via een Microsoft Distributed Transaction Coordinator (MS DTC) transactie. Als deze optie op True is ingesteld, Start een op afstand opgeslagen procedure een gedistribueerde transactie en schakelt de transactie in met MS DTC.

als alles is ingesteld, klik dan op de OK knop in het dialoogvenster Nieuwe gekoppelde Server., Een nieuw aangemaakte gekoppelde server verschijnt onder de map gekoppelde Server.,rks goed, ga rechts-klikken op de gekoppelde server en kies Verbinding Testen:

Als een verbinding met de gekoppelde server is opgericht met succes, de volgende info message box zal verschijnen:

Anders een foutbericht verschijnt met een probleem dat verhindert dat in verbinding te worden gebracht:

het Opvragen van gegevens met behulp van een gekoppelde server

het Opvragen van gegevens met behulp van het gekoppelde server is een beetje anders dan het opvragen van gegevens uit de lokale SQL-Server., In de normale queries wordt meestal tweedelige notatie gebruikt . bijvoorbeeld HumanResources.Werknemer:

1
2
3

SELECT * FROM HumanResources.Employee e

bij het opvragen van een tabel van een gekoppelde server wordt de vierde notatie gebruikt LinkedServer.Database.Schema.Objectnaam., Ophalen van gegevens uit de tabel Werknemer die is gelegen in een database op de server, het opvragen van de code zal er als volgt uitzien:

1
2
3

SELECT * FROM …,

Verwijderen van een gekoppelde server

Voor het verwijderen van een gekoppelde server, onder de Gekoppelde Servers map, klik met rechts op de gekoppelde server en van de context-menu kies de opdracht Verwijderen:

Dit opent het Verwijderen dialoogvenster Object:

Klik op de OK-knop en in het bericht venster, kies de knop yes (Ja):

Als alles goed gaat, de server gekoppeld zullen verwijderd worden uit de Gekoppelde map Servers., Server gekoppeld Server met behulp van Transact-SQL

  • Hoe query Excel-gegevens met behulp van SQL Server gekoppelde servers
  • Hoe u een Gekoppelde Server met behulp van de ODBC-driver
  • het maken van een gekoppelde server naar een SQL Azure database
    • Auteur
    • Laatste Berichten
    Marko aka “Zivko” is een senior software analist van Nis, Servië gericht op SQL Server en MySQL als opdrachtgever technologieën zoals SSMS, Visual Studio, en VSCode., Hij heeft ruime ervaring met kwaliteitsborging, probleem escalatie/resolutie, en product evangelisatie.hij is een productieve auteur van gezaghebbende content gerelateerd aan SQL Server, waaronder een aantal “platinum” artikelen (top 1% in termen van populariteit en betrokkenheid). Zijn schrijven behandelt een scala aan onderwerpen op MySQL en SQL Server, waaronder remote / linked servers, import / export, LocalDB, SSMS, en meer.Zivko houdt van basketbal, tafelvoetbal en rockmuziek.,
    Zie voor meer informatie over Marko op LinkedIn
    Bekijk alle berichten van Marko Zivkovic

    Laatste berichten door Marko Zivkovic (zie all)
    • Hoe om te verbinden naar een MySQL server op afstand met behulp van SSL op Ubuntu – 28 April 2020
    • Hoe MySQL te installeren op Ubuntu – Maart 10, 2020
    • met Gebruik van SSH sleutels om te verbinden naar een MySQL Server op afstand – 28 November 2019

    Share

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *