SQLShack (Dansk)

Linkede servere tillader at indsende en T-SQL-sætning på en SQL Server-forekomst, der returnerer data fra andre SQL Server-forekomster. En knyttet server giver mulighed for at deltage data fra flere SQL Server-forekomster ved hjælp af en enkelt T-SQL-sætning, når data, som findes på flere databaser på forskellige SQL tilfælde. Ved at bruge en linket server til at hente data fra flere S .l-forekomster, er det eneste, der skal gøres, at oprette forbindelse til en s .l-instans.,

Der er to måder at konfigurere linket server i SSMS. En måde er ved hjælp af sp_addlinkedserver system stored procedure og en anden er ved hjælp af S .l Server Management Studio (SSMS) GUI interface.

i denne artikel vil blive forklaret, hvordan du konfigurerer en linket server ved hjælp af en s .l Server datakilde. Mere information om andre datakilder kan findes på dette link.,

for At se alle oprettede linkede servere i SSMS, i henhold til Object Explorer, skal du vælge den Server Objekter mappe og udvide de Linkede Servere mappe:

for At oprette en sammenkædet server i SSMS, højreklik på den Sammenkædede Servere mappe og fra genvejsmenuen vælge den Nye Knyttet Server løsning:

Ny Forbundet Serveren vises en dialogboks med en:

I denne dialogboks, navnet på et linked server og server type, skal være identificeret., De sammenkædede servere kan defineres for forskellige slags datakilde, hvis den anden datakilde radioknap er valgt. Med henblik på denne artikel, SQL Server radio-knappen under Server type afsnit, som vil blive valgt, og i den Linkede server tekstboks, et navn for serveren vil blive indgået med:

Hvis SQL Server type er valgt til at konfigurere SQL Server koblet server, det navn der er angivet i Forbundet serveren tekstfeltet skal være navnet på den eksterne SQL-Server.,

Hvis en s .l Server-forekomst er standardforekomst, skal du skrive navnet på den computer, der er vært for forekomsten af s .l Server (f.eks. Hvis S .l Server er et navngivet eksempel, skal du skrive navnet på computeren og navnet på forekomsten adskilt af skråstreg (f.eks.,

Ellers følgende fejl kan opstå, når der trykkes på knappen OK:

for At angive, hvordan en bruger vil godkende til WSERVER2012\SQLEXPRESS eksempel, under Vælg en side sektion på øverste venstre hjørne af det Nye Knyttet Server i dialogboksen, skal du vælge Sikkerhed element:

Her forskellige måder at godkende forbundet serveren kan indstilles.

under den lokale server login til eksterne server login mappings, kan to måder at lokal logning til en ekstern login indstilles., En måde er at knytte en lokal login med en ekstern login og anden måde er at udgive.

lokalt Login

i feltet lokalt Login vises alle de lokale logins. De lokale login kan være en SQL Server-Godkendelse lokal login:

Eller en Windows-Godkendelse login:

Nu, når du klikker på OK-knappen på den Nye Knyttet Server dialog, følgende fejlmeddelelse vises:

login-tilknytninger, skal enten være udgive eller har en remote login navn.,

se billedet nedenfor:

dette sker, fordi afkrydsningsfeltet efterligning ikke er markeret.

efterligne

afkrydsningsfeltet efterligne, når der er markeret, sender de lokale loginoplysninger til den linkede server., For SQL Server-Godkendelse, det samme login med præcis de legitimationsoplysninger, der skal findes på linked server, ellers når der er forbindelse til server med SQL Server-Godkendelse, liste af databaser under Kataloger mappe kan se ud som dette:

For Windows-login, login skal være en gyldigt login på linked server. For at bruge efterligning skal delegeringen mellem den lokale server og den linkede server indstilles.

lad os oprette en linket server ved hjælp af det lokale logindo .s-login., Fra de Lokale Login-combo-boks, skal du vælge den lokale Windows-login og kontrollere Udgive afkrydsningsfeltet, og tryk på OK-knappen:

Under Kataloger mappe, alle databaser, der er placeret på de linkede server, vil blive noteret:

Fjern Bruger

Den eksterne bruger indstilling tillader brugere fra den lokale SQL server til at oprette forbindelse til den sammenkædet SQL-server, selv om deres legitimationsoplysninger, der ikke er til stede på den eksterne server ved hjælp af de legitimationsoplysninger fra brugeren, der eksisterer på den eksterne server., Grundlæggende tillader det lokale logins at oprette forbindelse til en fjernserver som et andet login, der skal findes på en fjernserver.

Fjernadgangskode

Angiv adgangskoden til den eksterne bruger.Vælg et lokalt login, der skal kortlægges til et eksternt login, på rullelisten lokal Login. I feltet fjernbruger skal du indtaste navnet på den fjernbruger, der findes på fjernserveren, og indtast en adgangskode til den fjernbruger i den arkiverede Fjernadgangskode.,e7″>

Derudover, på de Linkede Server dialog, kan det identificeres, hvor logins, der ikke er fastsat i den Lokale server login til remote server login tilknytninger liste vil oprette forbindelse til forbundet serveren, for at der er fire indstillinger, der kan bruges, og de ligger under For et login som ikke er defineret i listen ovenfor, forbindelser vil afsnit:

Ikke gøres

Hvis dette radio-knappen er valgt, eventuelle brugere, som ikke er identificeret i den Lokale server login til remote server login tilknytninger liste kan ikke oprette forbindelse til forbundet serveren.,

For eksempel, hvis logge ind med en anden konto (f.eks Ben), som ikke er angivet i login-kortlægning liste listen over de databaser under Kataloger mappe vil se ud som dette:

Hvis du forsøger at udføre en knyttet server forespørgsel:

1
2
3

SELECT * FROM .Adventurewororks2014.Menneskelige ressourcer.,Medarbejder e

følgende resultat:

Msg 7416, Level 16, Staten 1, Linje 1
Adgang til den eksterne server er nægtet, fordi ingen login-kortlægning eksisterer.

laves uden brug af en sikkerhedskontekst

indstillingen be made uden brug af en sikkerhedskontekst bruges til at oprette forbindelse til datakilder, der ikke kræver nogen godkendelse, for eksempel som en tekstfil., Når denne indstilling er valgt til at oprette forbindelse til en linket server, vil have den samme effekt som at vælge “ikke gøres” valgmulighed.

Hvis du forsøger at udføre en knyttet server forespørgsel:

1
2
3

SELECT * FROM .Adventurewororks2014.Menneskelige ressourcer.,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, Staten 1, Linje 1

kan Ikke initialisere data source objekt af OLE DB provider “SQLNCLI11” for linked server “WSERVER2012\SQLEXPRESS”.

laves ved hjælp af loginets aktuelle sikkerhedskontekst

hvis denne indstilling er valgt, vil den videregive den aktuelle sikkerhedskontekst for det lokale login til fjernlogin. Hvis der bruges Authenticationindo .s-godkendelse, bruges credentialsindo .s-legitimationsoplysningerne til at oprette forbindelse til en ekstern s .l-server. Hvis der bruges S .l Server-godkendelse, overføres de lokale loginoplysninger til ekstern s .l Server., Bemærk, at oprette forbindelse til serveren med succes, så brugeren med præcis de samme legitimationsoplysninger skal findes på den eksterne server, ellers når at udføre en knyttet server forespørgsel:

1
2
3

SELECT * FROM .Adventurewororks2014.Menneskelige ressourcer.,Medarbejder e

følgende meddelelse vises:

Msg-18456, Niveau 14, Staten 1, Linje 1
Login failed for user ‘Ben’.

laves ved hjælp af denne sikkerhedskontekst

den fjerde mulighed under for et login, der ikke er defineret i listen ovenfor, oprettes forbindelser ved hjælp af denne sikkerhedskontekst., I felterne Fjernlogin og med adgangskode skal du indtaste legitimationsoplysningerne for S .l Server Authentication login, der findes på en fjernserver, ellers kan følgende fejl opstå:

det sidste element under menuen vælg en side er Serverindstillingselementet. Når du vælger denne indstilling, vises følgende vindue:

Her kan yderligere indstillinger for linket server ses eller indstilles.

Sorteringskompatibel

den første mulighed er indstillingen Sorteringskompatibel., Denne indstilling bruges til at identificere, om den linkede server har den samme sortering som den lokale server. Denne indstilling skal kun indstilles til True, hvis det vides, at den linkede server har den samme sortering som den lokale, ellers skal den indstilles til False (standard).

dataadgang

denne indstilling bruges til at tillade / nægte adgang til de linkede serverdata. Hvis denne indstilling er indstillet til False, nægtes adgangen til fjernbetjening. Denne mulighed er nyttig for at deaktivere adgang til en fjernserver midlertidigt., Følgende meddelelse vises, når du udfører en linket serverforespørgsel, og denne indstilling er indstillet til falsk:

Msg 7411, Level 16, State 1, Line 1
Server ‘Serverserver2012\s .le .press’ er ikke konfigureret til dataadgang.

som standard er indstillingen indstillet til True

RPC og RCP Out

dette RCP (Remote Procedure Call) bruges til at aktivere adgang til fjernprocedurer, der skal kaldes fra den linkede server eller kaldes til den linkede server.,

Hvis disse indstillinger er indstillet til False, er der muligvis følgende fejlmeddelelse vises, når nogle procedurer, der er knyttet server, kaldet:

Msg 7411, Level 16, Staten 1, Linje 4
Server ‘WSERVER2012\SQLEXPRESS” er ikke konfigureret til RPC.,

Som standard indstilles den falske værdi for RPC-og RCP-indstillingerne

brug ekstern sortering

Når denne indstilling er indstillet til True, bruges samlingen af eksterne kolonner, og indsamling, der er angivet i Sorteringsnavnet arkiveret, bruges til datakilde, der ikke er s .l Server-datakilde, men hvis indstillingen er indstillet til False, bruges sorteringen for den lokale server. Som standard er indstillet til False.,

Sorteringsnavn

Hvis brug Remote sortering arkiveres indstillet til True, bruges denne indstilling til at angive sorteringsnavnet på den linkede server for datakilden, der ikke er s .l Server datakilde. Når du valgte et sorteringsnavn, skal det være en sortering, som s .l Server understøtter.

Connection Timeout

denne indstilling bruges til at indstille den maksimale tid, den lokale server skal vente på for at få en forbindelse til den linkede server s .l Server-forekomst. Hvis 0 (nul) er indstillet, bruges serverindstillingen remote login timeout. Som standard er 10 sekunder indstillet til denne indstilling., Bemærk, standardværdien for S .l Server 2008 er 20 sekunder.

Queryuery Timeout

denne indstilling bruges til at indstille, hvor lang tid, i sekunder, en fjernproces kan tage, før tiden er ude. Standardværdien er 600 sekunder (10 minutter). For at deaktivere forespørgsel timeout sætte 0 (nul) i dette felt, og forespørgslen Vil vente, indtil den er færdig.

distributør

i denne indstilling kan det specificeres, om den linkede server deltager i replikering som distributionsudgiver.,

distributøren er en database instans, der fungerer som en butik for replikation specifikke data forbundet med en eller flere udgivere

udgiver

i denne indstilling, kan det indstilles, om den linkede server til at være en replikation udgiver eller ej. Hvis det er sandt, er den linkede server en udgiver. Ellers er det ikke.

udgiveren er en database instans, der gør data tilgængelige for andre steder gennem replikation.

abonnent

i denne indstilling kan det specificeres, om den linkede server er en replikationsabonnent eller ej.,

en abonnent er en database instans, der modtager replikerede data.

mere information om distributør, udgiver, abonnent kan findes på replikation Publishing Model oversigtsside.

la .y schema validation

denne indstilling kontrollerer skemaændringer, der er sket siden kompilering i fjerntabellerne. Hvis denne indstilling er indstillet til False (standardtilstand), kontrollerer s .l Server ændringer før udførelsen af en forespørgsel, og hvis der er nogle ændringer, genkompilerer den forespørgslen., Hvis la .y schema validation er indstillet til True, kontrollerer et s .l Server-forsinkelsesskema fjerntabellerne, indtil forespørgselsudførelse.

Aktivér Fremme af Distribuerede Transaktioner

Denne indstilling bruges til at beskytte de handlinger, en server-til-server-procedure gennem en Microsoft Distributed Transaction Coordinator (MS DTC) transaktion. Hvis denne indstilling er indstillet til True opkald en ekstern lagret procedure starter en distribueret transaktion og hverver transaktionen med MS DTC.

nu, når alt er indstillet, skal du klikke på OK-knappen i den nye linkede Serverdialog., En nyoprettet linket server vises under den linkede Servermappe.,rks korrekt, skal du gå til højre-klikke på det, at forbundet serveren og vælge Test-Forbindelse:

Hvis en forbindelse med forbundet serveren er etableret med succes, følgende info, vises fejlmeddelelsen:

Ellers, en fejlmeddelelse vil blive vist, der viser et problem, der forhindrer forbindelsen til at blive oprettet:

Forespørge data ved hjælp af en sammenkædet server

for at Forespørge data ved hjælp af den sammenkædede server er en lille smule anderledes end at forespørge data fra den lokale SQL Server., I de normale forespørgsler anvendes normalt to del notation . menneskelige ressourcer.Medarbejder:

1
2
3

SELECT * FROM HumanResources.Medarbejder e

Når du forespørger en tabel fra en forbundet serveren, den fjerde del notation bruges LinkedServer.Database.Skema.Objektnavn., For at få data fra Medarbejder-tabellen, som er beliggende i en database på linked server, forespørge koden vil se sådan her ud:

1
2
3

SELECT * FROM …,

Sletning af en knyttet server

for At slette en knyttet server, under Linkede Servere mappen, højreklik på den sammenkædede server og fra genvejsmenuen vælge Slet kommando:

Dette vil åbne Slet Objekter i dialogboksen:

Klik på OK-knappen, og fra postkassen, skal du vælge knappen Ja:

Hvis alt går godt forbundet serveren vil blive fjernet fra den Linkede Servere mappe., Server koblet server ved hjælp af Transact-SQL

  • Hvordan til at søge Excel-data ved hjælp af SQL Server koblet servere
  • Hvordan du konfigurerer en Knyttet Server, der bruger ODBC-driveren
  • Hvordan at oprette en sammenkædet server til en SQL Azure database
    • Forfatter
    • Seneste Indlæg
    Marko aka “Zivko” er en senior software analytiker fra Nis, Serbien med fokus på SQL Server og MySQL samt klient teknologier som SSMS, Visual Studio, og VSCode., Han har stor erfaring med kvalitetssikring, problem eskalering/opløsning, og produkt evangelisering.
    han er en produktiv forfatter af autoritative indhold relateret til S .l Server, herunder en række “platin” artikler (top 1% i form af popularitet og engagement). Hans skrivning dækker en række emner på Mys .l og s .l Server, herunder eksterne/linkede servere, import/eksport, LocalDB, SSMS og meget mere.
    på sin deltid kan Zivko lide basketball, bordfodbold (bordfodbold) og rockmusik.,
    Se mere om Marko på LinkedIn
    Vis alle indlæg af Marko Zivkovic

    Seneste indlæg af Marko Zivkovic (se alle)
    • Hvordan til at forbinde til en ekstern MySQL-serveren ved hjælp af SSL-om Ubuntu – April 28, 2020
    • Hvordan du installerer MySQL på Ubuntu – Marts 10, 2020
    • Brug af SSH-nøgler til at oprette forbindelse til en ekstern MySQL-Server – November 28, 2019

    Share

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *