Forstå SQL Server Knyttet Servere

Av: Eric Blinn | Oppdatert: 2019-06-28 | Comments (4) | i Slekt: Mer > Knyttet Servere

Problem

jeg ser det er et alternativ i SQL Server Management Studio (SSMS) for Tilknyttede Servere andI ønsker å lære mer om hva de gjør og hvordan de fungerer.

Løsning

Knyttet Servere er en metode der en SQL Server kan snakke til en annen ODBC compliantdatabase, slik som en annen SQL Server-instans eller en Oracle-database, med en directT-SQL-spørring.,

Det er flere viktige innstillinger for å vite når du skal sette opp en Koblet Server.Dette tipset vil dekke opprette en Koblet Server til en annen SQL Server-forekomsten usingthe SSMS GUI sammen med egnet sikkerhet valg. Det vil også vise deg hvordan å usethe Koblet Server i et T-SQL-setningen. Det er astor bibliotek av mer avanserte emner som er tilgjengelige når det grunnleggende har blitt mestret.,

Opprette en SQL Server Koblet Server

I SQL Server Management Studio, i Object Explorer-ruten utvider du «ServerObjects» – delen, klikker du på «Tilkoblede Servere» og velg «NewLinked Server…» fra menyen.

Ny Sammenkoblet Server – Siden Generelt

vil du få opp en skjerm som ser ut som skjermbildet nedenfor. Velg servertype som SQL Server, og skriv inn navnet på den andre forekomsten av SQL Server. Inthis eksempel tilkoblingen vil bli gjort til en navngitt forekomst av SQL Server på thesame maskinen., Dette er absolutt tillatt, men mer vanlig i den forbindelse er madeto en annen maskin helt. De Koblede Server navn er angitt som theServerName\navn på forekomsten. I eksemplet nedenfor har jeg kobler til localserver og forekomsten navn er «SECURITY_TEST».

Ny Sammenkoblet Server – Sikkerhet-Siden

Neste, flytte fra General side til Sikkerhet side bruke menyen på venstre side.Denne siden lar administratoren å fortelle denne SQL Server hvordan å autentisere til andre omgang., Den øverste halvdelen av skjermbildet gir mulighet for individuelle innlogginger til begiven adgang til å benytte Tilknyttede Serveren.

Det er 2 måter å autentisere brukere. Den første er å velge et brukernavn forthem til bruk når du bruker Koblet Server. I skjermbildet nedenfor Eric userwill automatisk logge på sekundær server som innlogging LinkedServerTeston den andre forekomsten. Dette renommeet er lagret i SQL Server Engine andis kryptert. En andre rad, den LinkedServerTest logg inn (en SQL Logg inn) Impersonatebox er sjekket., Dette vil forsøke å bruke det samme brukernavnet og passordet på LinkedServer som det gjorde på den opprinnelige serveren. Etterligning av en Windows-Pålogging kan alsobe gjort, men krever en skikkelig delegasjon bli satt opp.

Nå fokusere på den nedre halvdelen av skjermen. Det er 4 alternativer tilgjengelig. Whicheveroption er valgt her, vil gjelde for alle brukere som ikke er oppført i den øverste delen.,

Valg Beskrivelse
Ikke bli gjort Dette vil gi en feilmelding hvis en bruker prøver å bruke det Knyttet Serverthat, ikke er i listen ovenfor. For å velge dette alternativet, theremust være minst 1 logg inn i den øverste halvdelen av skjermen.
Dette isthe feil alle andre brukere vil få.
Msg 7416 Nivå 16, Tilstand 1,Line 1
få Tilgang til den eksterne serveren er avvist fordi ingen login-mappingexists.,
gjøres uten å bruke en sikkerhet kontekst Dette vil sende en anonym tilkobling til den Sammenkoblede Server og likelywon ikke gi noen tilgang til sekundær server.
gjøres ved hjelp av innlogging er gjeldende sikkerhets-kontekst Dette er det samme som å plassere hver enkelt bruker i den øverste delen withthe utgi seg for å være huket av.,
Bli gjort ved hjelp av denne sikkerhetsoppdateringen sammenheng: Dette alternativet vil kreve et brukernavn og passord skrives inn og vil functionthe samme som om hver enkelt bruker ble lagt til den øverste delen og giventhe nøyaktig samme brukernavn og passord. Det er den minst sikre metoden for å opprette en Koblet Server som alle med tilgang til den første SQL Server willbe stand til å bruke Koblet Server utnytte lagret legitimasjon.,

Ny Sammenkoblet Server – Server Alternativer-Siden

Det er også innstillinger på Alternativer-siden, men for enkle spørringer disse settingscan bli igjen som standard verdier som vist nedenfor.

innstillinger trenger ikke å være endret i de fleste tilfeller, og denne tabellen willexplain hva innstillingene gjør.

Valg Beskrivelse
Sortering Kompatibel Standard er false., Dette kan være satt til true hvis målet serveruses nøyaktig samme sortering som rektor server. Den changecan forbedre ytelsen på noen spørsmål ved å la eksterne kolonne comparisonson tekst type-kolonnen.
Data Access Standard er Sant. Når forfalskning alle individuelle ekstern spørring executionswill mislykkes. Denne innstillingen er uavhengig av RPC Ut. I en scenariowhere BARE remote procedure calls må utføres denne innstillingen kan bechanged false mens RPC Ut er fortsatt sant.,
RPC / RPC Ut Dette står for Remote Procedure Call, og tillater deg å kjøre storedprocedures på Lenkede Server. RPC-gjør det mulig for Eksterne ProcedureCalls fra den spesifiserte serveren og RPC UT, kan Eksterne ProcedureCalls til den angitte serveren.
Bruk Eksterne Sortering / Sortering Navn Standard er False. Når false den lokale serveren sortering vil beused i alle eksterne henvendelser. Når sant sortering av remoteserver vil bli brukt på søk., Hvis det er sant, og den eksterne serveren er IKKE en SQLServer da den lokale serveren kan ikke automatisk slå opp riktig collationvalue. I dette tilfellet bruker Sortering Navnet på innstillingen for å skrive i theremote server sortering.
Tidsavbrudd for Tilkobling Standard er 0. Når ikke-null, dette er antall sekunder towait før tidsavbrudd når du kobler til en koblet server. Når 0, så thevalue er faktisk lese fra en server standard som kan bli funnet ved runningthis kommando.

exec sp_configure 'remote login timeout (s)'
Spørring Timeout Standard er 0., Når ikke-null, dette er antall sekunder towait før tidsavbrudd kjører en spørring mot en koblet server. Når 0 thenthe verdi er faktisk lese fra en server standard som kan bli funnet ved runningthis kommando.

exec sp_configure 'remote query timeout (s)'
Distributør / Publisher / Abonnent Disse innstillingene er kun brukes når den Tilknyttede Serveren blir brukt-post tilsupport replikering.
Lat-Skjema Validering Standard er False. Når forfalskning skjemaet for en ekstern spørring er checkedbefore hver spørring utførelse., Eventuelle endringer i ekstern skjema aredetected på forhånd, og en riktig query plan kan være gjenskapt for å accountfor endringen. Når sant skjemaet er ikke godkjent til det øyeblikk ofexecution. Hvis endring i eksterne skjema gjør query plan invalidthat vil føre til en runtime feil.
Aktiver Markedsføring av Distribuerte Transaksjoner Standard er Sant. Når aktivert noen ekstern spørring som endringer datawill påberope DTC (Distributed Transaction Coordinator)., Dette processprotects slike spørsmål ved at både servere for å ha en felles transactionthat enten fullfører 100% eller 0% – akkurat som en vanlig transaksjonen withina lokale søk. Når deaktivert DTC er ikke påberopt og en mislykket remotequery kan mislykkes og ikke bli helt rullet tilbake.

Spørring Data Over en SQL Server Koblet Server

for Å lese data fra en Koblet Server noen tabeller eller synspunkter må være henvist til usinga 4-del identifikator bestående av de Koblede servernavn, databasenavn, schemaname, og objektet navn – i den rekkefølgen.,

For eksempel slik:

SELECT * FROM .master.sys.databasesSELECT * FROM .WideWorldImporters.Sales.Orders
  • Første Koblet Server navn er gitt som er forour eksempel. I dette eksempelet det må være ført på grunn av sitt format. Ikke alle LinkedServer navn må være i hakeparentes.
  • Neste er databasenavn, master-og WideWorldImporters henholdsvis.
  • Tredje er skjemanavn, sys og Salg henholdsvis.
  • til Slutt, objekt navn er nevnt. I disse eksemplene objekter er databasesand Bestillinger.

Som eksempel er ganske stygg på grunn av arten av de Koblede Server navn., Heldigvis,denne flotte tips viser hvordan du gjør det navn lettere å lese i scenarier likethis.

Når er oppført i en FRA punkt disse tabeller og visninger kan være behandlet i exactsame måte som andre lokale bordet. De kan spørres, aliased, sluttet seg til, andif riktige tillatelsene er satt, og de kan endres ved hjelp av insert, update, og deletestatements.

Ringe Lagrede Prosedyrer Over en Koblet Server

For anvendelsen av denne demo, dette lille prosedyren ble opprettet i masterdatabase på mål knyttet server.,

USE masterGOCREATE PROCEDURE dbo.SQLTips1 AS SELECT 'I was able to be called'; 

prosedyren er deretter utført på den primære eksempel ved hjelp av denne kommandoen whichfollows samme 4 del identifikator skjema som uttalelsene i forrige kapittel.

EXEC .master.dbo.SQLTips1

Men i stedet for den forventede resultat en feil er hevet.

RPC står for Remote Procedure Call. Som standard, Knyttet Servere er kjent for å gjøre lagret prosedyre anrop. Dette er enkelt utbedres ved å aktivere asingle-innstillingen på Lenkede Server., Bla til Koblet Server egenskaper,velg Serveren du Valg og 4thoption i listen vil bli RPC Ut. Bare endre denne verdien er True og clickOK.

innstillingen merket RPC er IKKE den verdi som må endres. Thiscan virke forvirrende siden feilmelding synes å nevne det som er spesielt, men thatis faktisk en arv innstilling som ikke gjør det mulig for RPC-anrop.

Kjøre prosedyren nå gir et mye bedre resultat.,

SQL Server Koblet Server Begrensninger

Knyttet Servere kan være svært nyttig, men det er noen begrensninger som tobe klar over før du implementerer dem. Knyttet Servere kan ikke brukes til å ringe tablevalued eller skalar funksjoner. Også avkorte kommandoen er ikke tillatt å becalled ved hjelp av en Koblet Server.

SQL Server Koblet Server Bruke Tilfeller

ytelse Knyttet Servere er ikke alltid stor, spesielt med largedata sett og massevis av møter mellom lokale og koblede tabeller. Men de kan være veryuseful for spørring mindre datasett.,

noen Ganger kan en ETL behov for et mindre datasett kan oppfylles ved hjelp av en LinkedServer snarere enn en ETL verktøy som inkluderinger for serverside. Når rader involvert nummer i thousandsor lavere 10s av tusenvis en Koblet Server basert ETL kan være i stand til å fullføre inless tid enn det tar å starte inkluderinger for serverside-motoren.

Neste Trinn
  • Det er en hel familie av avansert Knyttet Server tips på MSSQLTips.,com
  • Gjør Koblet Server navn lettere å lese

Sist Oppdatert: 2019-06-28

Om forfatteren
Eric Blinn er Sr Data Arkitekt for Squire Patton Boggs. Han er også en SQL forfatter og PASSERE Lokale gruppeleder.
Vis alle mine tips
Related Ressurser

  • Mer SQL Server DBA Tips…

Leave a Comment