länkade servrar tillåter att skicka in en T-SQL-sats på en SQL Server-instans, som returnerar data från andra SQL Server-instanser. En länkad server kan ansluta data från flera SQL Server-instanser med hjälp av en enda T-SQL-sats när data finns på flera databaser på olika SQL-instanser. Genom att använda en länkad server för att hämta data från flera SQL-instanser är det enda som bör göras att ansluta till en SQL-instans.,
det finns två sätt att konfigurera länkad server i SSMS. Ett sätt är genom att använda sp_addlinkedserver system lagrad procedur och en annan är med hjälp av SQL Server Management Studio (SSMS) GRAFISKT gränssnitt.
i den här artikeln förklaras hur du konfigurerar en länkad server med en SQL Server-datakälla. Mer information om andra datakällor finns på den här länken.,
för att se alla skapade länkade servrar i SSMS, under Object Explorer, valde mappen Serverobjekt och expandera mappen länkade servrar:
för att skapa en länkad server i SSMS, högerklicka på mappen länkade servrar och från snabbmenyn välj alternativet Ny länkad Server:
den nya länkade servern dialogrutan server visas:
i den här dialogrutan måste namnet på en länkad server och servertyp identifieras., De länkade servrarna kan definieras för olika typer av datakälla om den andra datakällans radioknapp är vald. I den här artikeln kommer SQL Server – radioknappen under avsnittet servertyp att väljas och i textrutan länkad server kommer ett namn på servern att anges:
om SQL Server-typen är vald för att konfigurera en SQL Server-länkad server måste namnet som anges i textrutan länkad server vara namnet på den fjärranslutna SQL Server.,
om en SQL Server-instans är standardinstans skriver du namnet på den dator som är värd för instansen av SQL Server (t.ex. WSERVER2012). Om SQL Server är en namngiven instans skriver du namnet på datorn och namnet på instansen åtskilda av snedstreck (t.ex. WSERVER2012\SQLEXPRESS).,
annars kan följande fel inträffa när OK-knappen trycks in:
för att ställa in hur en användare ska autentisera till wserver2012\SQLEXPRESS-instansen, under Välj en sida i det övre vänstra hörnet av den nya länkade Serverdialogrutan, välj säkerhetsobjektet:
Här kan du välja en, olika sätt att autentisera den länkade servern kan ställas in.
under den lokala serverns inloggning till fjärrserverns inloggningsmappningar kan två sätt att lokal loggning till en fjärrinloggning ställas in., Ett sätt är att associera en lokal inloggning med en fjärrinloggning och annat sätt är att imitera.
lokal inloggning
i det lokala inloggningsfältet visas alla lokala inloggningar. Den lokala inloggningen kan vara en SQL Server-autentisering lokal inloggning:
eller en Windows-Autentiseringsinloggning:
När du klickar på OK-knappen i den nya länkade Serverdialogrutan visas följande felmeddelande:
inloggningen kan vara en SQL Server-autentisering lokal inloggning:
mappningar ska antingen vara imiterade eller ha ett fjärrinloggningsnamn.,
se bilden nedan:
detta händer eftersom kryssrutan Impersonate inte är markerad.
personifiera
kryssrutan personifiera när det är markerat skickar de lokala inloggningsuppgifterna till den länkade servern., För SQL Server-autentisering måste samma inloggning med exakta autentiseringsuppgifter finnas på den länkade servern, annars när den är ansluten till servern med SQL Server-autentisering kan listan över databaser under Katalogmappen se ut så här:
för Windows-inloggningar måste inloggningen vara en giltig inloggning på den länkade servern. För att kunna använda personifiering måste delegeringen mellan den lokala servern och den länkade servern ställas in.
låt oss skapa en länkad server med hjälp av den lokala Windows-inloggningen., Från kombinationsrutan lokal inloggning väljer du den lokala Windows-inloggningen och markerar kryssrutan personifiera och trycker på OK-knappen:
under Katalogmappen visas alla databaser som finns på den länkade servern:
fjärranvändare
alternativet fjärranvändare tillåter användare från den lokala Inloggningsmenyn.lokal SQL Server för att ansluta till den länkade SQL Server även om deras referenser inte finns på fjärrservern med hjälp av autentiseringsuppgifter från användaren som finns på fjärrservern., I grund och botten tillåter det lokala inloggningar att ansluta till en fjärrserver som en annan inloggning som måste finnas på en fjärrserver.
Fjärrlösenord
Ange fjärranvändarens lösenord.
välj en lokal inloggning som ska mappas till en fjärrinloggning från listrutan lokal inloggning. I fältet fjärranvändare anger du namnet på den fjärranvändare som finns på fjärrservern och i det fjärrlösenord som arkiveras anger du ett lösenord för den fjärranvändaren.,e7″>
dessutom, i den länkade serverdialogrutan, det kan identifieras hur inloggningar som inte är inställda i den lokala serverinloggningen till fjärrserverinloggningsmappningar listan kommer att ansluta till den länkade servern, för att det finns fyra alternativ som kan användas och de finns under för en inloggning som inte definieras i listan ovan, anslutningar kommer avsnitt:
inte göras
om den här radioknappen är vald kan inte alla användare som inte identifieras i den lokala serverns inloggning till fjärrserverns inloggningsmappningslista upprätta anslutning till den länkade servern.,
om du till exempel loggar in med ett annat konto (t .ex. Ben) som inte anges i listan över inloggningsmappar ser listan över databaser under Katalogmappen ut så här:
om du försöker köra en länkad serverfråga:
1
2
3
|
välj * från.AdventureWorks2014.Mänskliga resurser.,Employee e
|
följande resultat kommer att visas:
Msg 7416, Level 16, State 1, Line 1
åtkomst till fjärrservern nekas eftersom det inte finns någon inloggningsmappning.
göras utan att använda en säkerhet kontext
alternativet göras utan att använda en säkerhet kontext används för att ansluta till datakällor som inte kräver någon autentisering, till exempel som en textfil., När det här alternativet är valt för Anslut till en länkad server, kommer att ha samma effekt som att välja alternativet” inte göras”.
om du försöker köra en länkad serverfråga:
2
3
|
välj * från .AdventureWorks2014.Mänskliga resurser.,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, Nivå 16, Tillstånd 1, Rad 1
kan Inte initiera datakälla objekt av OLE DB-provider ”SQLNCLI11” för en länkad server ”WSERVER2012\SQLEXPRESS”.
göras med hjälp av inloggningens aktuella säkerhet kontext
om det här alternativet är valt, kommer det att passera den aktuella säkerhet kontexten för den lokala inloggningen till fjärrinloggningen. Om Windows-autentisering används, Windows-autentiseringsuppgifter kommer att användas för att ansluta till en fjärr SQL server. Om SQL Server-autentisering används, skickas de lokala inloggningsuppgifterna till remote SQL Server., OBS, För att upprätta anslutning till fjärrservern framgångsrikt, måste användaren med exakt samma autentiseringsuppgifter finnas på fjärrservern annars när exekvera en länkad serverfråga:
1
2
3
|
välj * från .AdventureWorks2014.Mänskliga resurser.,Employee e
|
följande meddelande visas:
Msg 18456, Level 14, State 1, Line 1
Inloggningen misslyckades för användaren ’Ben’.
göras med hjälp av denna säkerhet sammanhang
det fjärde alternativet under för en inloggning som inte definieras i listan ovan, anslutningar kommer att göras med hjälp av denna säkerhet sammanhang., I fälten fjärrinloggning och lösenord anger du autentiseringsuppgifterna för inloggningen för SQL Server-autentisering som finns på en fjärrserver, annars kan följande fel inträffa:
det sista objektet under menyn välj en sida är alternativet serveralternativ. När du väljer det här alternativet visas följande fönster:
Här kan ytterligare alternativ för länkad server ses eller ställas in.
sortering kompatibel
det första alternativet är sortering kompatibel alternativet., Det här alternativet används för att identifiera om den länkade servern har samma sortering som den lokala servern. Det här alternativet bör endast vara sant om det är känt att den länkade servern har samma sortering som den lokala, annars ska den vara inställd på False (standard).
dataåtkomst
det här alternativet används för att tillåta / neka åtkomst till den länkade serverdata. Om det här alternativet är inställt på falskt kommer åtkomst till fjärrkontrollen att nekas. Det här alternativet är användbart för att inaktivera åtkomst till en fjärrserver temporalt., Följande meddelande kommer att visas när utföra en länkad server frågan och detta alternativ är satt till False:
Msg 7411, Nivå 16, Tillstånd 1, Rad 1
– Server ’WSERVER2012\SQLEXPRESS” är inte konfigurerad för TILLGÅNG till DATA.
som standard är alternativet inställt på True
RPC och RCP Out
detta RCP (Remote Procedure Call) används för att aktivera åtkomst till fjärrprocedurer som ska anropas från den länkade servern eller anropas till den länkade servern.,
Om detta alternativ är satt till False, och följande felmeddelande visas när vissa förfaranden från en länkad server kallas:
Msg 7411, Nivå 16, där 1, Rad 4
– Server ’WSERVER2012\SQLEXPRESS” är inte konfigurerad för RPC.,
som standard är det falska värdet inställt för alternativen RPC och RCP Out
använd Fjärrkollering
När det här alternativet är inställt på True, kommer samlingen av fjärrkolumner att användas och insamling som anges i Sorteringsnamnet som arkiveras kommer att användas för datakälla som inte är SQL Server-datakälla, men om alternativet är inställt på False kommer sorteringen för den lokala servern att användas. Som standard är inställd på False.,
Sorteringsnamn
om använd fjärr sortering in till Sant, används det här alternativet för att ange sorteringsnamnet för den länkade servern för datakällan som inte är SQL Server-datakälla. När du väljer ett sorteringsnamn måste det vara en sortering som SQL Server stöder.
tidsgräns för anslutning
det här alternativet används för att ställa in den maximala tid som den lokala servern ska vänta på för att få en anslutning till den länkade server SQL Server-instansen. Om 0 (noll) är inställd, används alternativet server remote login timeout. Som standard är 10 sekund inställd för det här alternativet., Obs! standardvärdet för SQL Server 2008 är 20 sekunder.
Query Timeout
det här alternativet används för att ställa in hur länge, på några sekunder, en fjärrprocess kan ta innan tiden är ute. Standardvärdet är 600 sekund (10 minuter). För att inaktivera query timeout sätta 0 (noll) i detta fält och frågan kommer att vänta tills den är klar.
distributör
i det här alternativet kan det anges om den länkade servern deltar i replikering som distributionsutgivare.,
distributören är en databasinstans, som fungerar som en butik för replikeringsspecifika data som är associerade med en eller flera utgivare
Utgivare
i det här alternativet kan den ställas in om den länkade servern ska vara en replikeringsutgivare eller inte. Om det är sant är den länkade servern en utgivare. Annars är det inte.
utgivaren är en databasinstans som gör data tillgängliga för andra platser genom replikering.
abonnent
i det här alternativet kan det anges om den länkade servern är en replikeringsabonnent eller inte.,
en abonnent är en databasinstans som tar emot replikerade data.
Mer information om distributör, Utgivare, abonnent finns på översiktssidan för Replikeringspubliceringsmodell.
Lazy schemavalidering
det här alternativet kontrollerar schemaändringar som har inträffat sedan sammanställningen i fjärrtabellerna. Om det här alternativet är inställt på falskt (standardläge) kontrollerar SQL Server ändringar innan en fråga körs och om det finns några ändringar, kompilerar den frågan igen., Om Lazy schema validering är inställd på Sant, kontrollerar en SQL Server delay schema fjärrtabeller tills query execution.
aktivera marknadsföring av distribuerade transaktioner
det här alternativet används för att skydda åtgärderna för en server-till-server-procedur genom en Microsoft Distributed Transaction Coordinator (MS DTC) – transaktion. Om det här alternativet är inställt på True calling startar en fjärr lagrad procedur en distribuerad transaktion och anlitar transaktionen med MS DTC.
När allt är inställt klickar du på OK-knappen i dialogrutan Ny länkad Server., En nyskapad länkad server visas under den länkade Servermappen.,rks ordentligt, gå högerklicka på den länkade servern och välj Testanslutning:
om en anslutning med länkad server har etablerats kommer följande informationsmeddelande att visas:
annars visas ett felmeddelande som visar ett problem som förhindrar att anslutningen kan upprättas:
annars visas ett felmeddelande som visar ett problem som förhindrar att anslutningen ID = ”11cf9a61e7” >
att fråga data med en länkad server
att fråga data med den länkade servern är lite annorlunda än att fråga data från den lokala SQL-servern., I de normala frågorna används vanligtvis två delar notation ., till exempel mänskliga resurser.Anställd:
1
2
3
|
välj * från humanresources.Employee e
|
När du frågar en tabell från en länkad server används den fjärde delen notation LinkedServer.Databastabell.Schema.Objektnamn., För att få data från Personaltabellen som finns i en databas på den länkade servern, kommer frågande kod att se ut så här:
1
2
ta bort en länkad serverför att ta bort en länkad server, under mappen länkade servrar, högerklicka på den länkade servern och från snabbmenyn välj kommandot Ta Bort: det här öppnar dialogrutan Ta bort objekt: klicka på OK-knappen och välj Ja-knappen från meddelanderutan: om allt går bra kommer den länkade servern att tas bort från mappen länkade servrar., Server länkad server med Transact-SQL
Marko aka ”zivko” är en senior mjukvaruanalytiker från Nis, Serbien med fokus på SQL Server och MySQL samt klientteknik som SSMS, Visual Studio och vscode., Han har lång erfarenhet av kvalitetssäkring, upptrappning / upplösning och produkt evangelism.
han är en produktiv författare till auktoritativt innehåll relaterat till SQL Server inklusive ett antal ”platina” artiklar (Topp 1% när det gäller popularitet och engagemang). Hans författarskap omfattar ett spektrum av ämnen på MySQL och SQL Server, inklusive fjärrkontroll/länkade servrar, import/export, LocalDB SSMS och mycket mer. på sin deltid gillar Zivko basket, fotboll (bordsfotboll) och rockmusik., se mer om Marko på LinkedIn Visa alla inlägg av Marko Zivkovic Senaste inlägg av Marko Zivkovic (se alla)
|