Pochopení SQL Server Propojené servery

by: Eric Blinn / Aktualizováno: 2019-06-28 / Komentáře (4)/související: více > Propojené servery

problém

vidím, že existuje možnost v SQL Server Management Studio (SSMS) pro Propojené servery a chci se dozvědět více o tom, co dělají a jak fungují.

řešení

Propojené servery jsou metodou, pomocí které může SQL Server mluvit s jiným ODBC compliantdatabase, jako je jiná instance serveru SQL nebo databáze Oracle, s dotazem directT-SQL.,

při nastavování Propojeného serveru je třeba znát několik důležitých nastavení.Tento tip se bude týkat vytvoření Propojeného serveru s jinou instancí serveru SQL pomocí GUI SSMS spolu s vhodnými možnostmi zabezpečení. Ukáže také, jak používatspojený Server v příkazu T-SQL. K dispozici je knihovna agreat pokročilejších témat, jakmile budou základy zvládnuty.,

Vytváření SQL Server Propojený Server

V SQL Server Management Studio, v Průzkumník Objektů podokně rozbalte „ServerObjects“ oddíl, klepněte pravým tlačítkem myši na „Propojené Servery“ a vyberte „NewLinked Server…“ z menu.

nový propojený server – Obecná stránka

, která vyvolá obrazovku, která vypadá jako obrazovka níže. Vyberte servertype jako SQL Server a zadejte název druhé instance SQL Serveru. V tomto příkladu bude spojení provedeno s pojmenovanou instancí serveru SQL na stroji thesame., To je jistě povoleno, ale běžněji je spojení vytvořenona jiný stroj úplně. Název Propojeného serveru je zadán jako název serveru\InstanceName. V níže uvedeném příkladu se připojuji k localserveru a název instance je „SECURITY_TEST“.

nový propojený Server – Stránka zabezpečení

dále přesuňte z obecné stránky na stránku zabezpečení pomocí nabídky vlevo.Tato stránka umožňuje administrátorovi sdělit tomuto serveru SQL, jak se ověřitdalší instanci., Horní polovina obrazovky umožňuje jednotlivým přihlašovacím údajům získat přístup k používání Propojeného serveru.

existují 2 metody ověřování uživatelů. Prvním z nich je výběr přihlašováníje třeba použít při použití Propojeného serveru. Na snímku pod uživatelem Eric se automaticky přihlásí na sekundární server jako přihlašovací LinkedServerTeston druhou instanci. Toto pověření je uloženo v nástroji SQL Server aje šifrováno. Jeden druhý řádek, LinkedServerTest login (SQL Login) je kontrolován Impersonatebox., To se pokusí použít stejné uživatelské jméno a heslo na serveru LinkedServer jako na původním serveru. Zosobnění přihlášení systému Windows může takébýt proveden,ale vyžaduje správné delegování.

nyní se zaměřte na spodní polovinu obrazovky. K dispozici jsou 4 možnosti. Whicheveroption je zde vybrána, bude se vztahovat na každého uživatele, který není uveden v horní části.,

možnost Popis
to způsobí chybu každému uživateli, který se pokusí použít propojený Serverto není v seznamu výše. Chcete-li vybrat tuto možnost, existujemusí být alespoň 1 přihlášení v horní polovině obrazovky.
Toto je chyba, kterou dostanou všichni ostatní uživatelé.
Msg 7416, Level 16, State 1, Line 1
přístup ke vzdálenému serveru je odepřen, protože žádné přihlášení-mappingexists.,
Být vyrobeny bez použití kontextu zabezpečení Tohle bude posílat anonymní připojení k Propojené Serveru a likelywon poskytnout přístup k sekundární server.
se provádí pomocí aktuálního bezpečnostního kontextu přihlášení to je stejné jako umístění každého uživatele v horní části s zaškrtnutým políčkem zosobnění.,
Být provedeny pomocí tohoto kontextu zabezpečení: Tato možnost bude požadovat přihlašovací jméno a heslo zadat a bude functionthe stejné, jako kdyby každý uživatel byl přidán do horní části a vzhledem stejné uživatelské jméno a heslo. Je to nejméně bezpečná metoda pro nastavení Propojeného serveru, protože každý, kdo má přístup k prvnímu serveru SQL, bude moci používat propojený Server s využitím uložených pověření.,

nový propojený server – server options Page

na stránce možnosti jsou také nastavení, ale pro jednoduché dotazy tato nastavenímohou být ponechány jako výchozí hodnoty, jak je uvedeno níže.

nastavení není třeba měnit ve většině případů použití a tato tabulka willexplain co Nastavení dělat.

Option Description
Collation Compatible Default is false., To lze nastavit na hodnotu true, pokud cílový serverpoužívá přesně stejné řazení jako hlavní server. Changecan může zlepšit výkon některých dotazů tím, že umožňuje vzdálené sloupce komparisonsons typu textu sloupce.
přístup k datům výchozí je pravda. Při false všechny jednotlivé vzdálené provádění dotazůbude selhat. Toto nastavení je nezávislé na RPC Out. Ve scénářiowhere je třeba provést pouze vzdálené volání procedur toto nastavení může být změněno na false, zatímco RPC Out zůstává pravdivý.,
RPC / RPC Out to znamená Vzdálené volání procedury a umožňuje spouštět storedprocedures na propojeném serveru. RPC umožňuje vzdálené ProcedureCalls ze zadaného serveru a RPC OUT umožňuje vzdálené ProcedureCalls na zadaný server.
použijte vzdálený Název koláže/koláže Výchozí hodnota je falešná. Při false bude místní server collationpoužívá se na všech vzdálených dotazů. Pokud je to pravda, bude na dotazy použito řazení remoteserveru., Pokud true a vzdálený server není SQLServer, pak místní server nemůže automaticky vyhledat správnou collationvalue. V tomto případě použijte nastavení názvu koláže pro zadání koláže serveru theremote.
časový limit připojení Výchozí hodnota je 0. Když je nenulová, je to Počet sekundpočkat před časováním při připojení k propojenému serveru. Když 0 pak thevalue je skutečně číst z výchozího serveru, který lze nalézt runningthis příkaz.

exec sp_configure 'remote login timeout (s)'
časový limit dotazu Výchozí hodnota je 0., Když je nenulová, je to Počet sekundpočkat před načasováním dotazu běžícího proti propojenému serveru. Když 0 pakhodnota je skutečně přečtena z výchozího serveru, který lze nalézt spuštěním tohoto příkazu.

exec sp_configure 'remote query timeout (s)'
Distributor / Vydavatel / Uživatel Toto nastavení se používá pouze tehdy, když na Propojený Server používá podporu replikace.
Lazy Schema Validation Default is False. Při false je zkontrolováno schéma vzdáleného dotazupřed každým provedením dotazu., Jakékoli změny ve vzdáleném schématu jsoudetekce předem a správný plán dotazu lze znovu vytvořit pro účetpro změnu. Pokud je to pravda, schéma není ověřeno až do okamžikuprovádění. Pokud změna ve vzdáleném schématu způsobí neplatnost plánu dotazu, což způsobí chybu runtime.
povolit propagaci distribuovaných transakcí výchozí je pravda. Pokud je povolen jakýkoli vzdálený dotaz, který změní datavolá DTC (Distributed Transaction Coordinator)., Tento proces chrání tyto dotazy tím, že umožňuje oběma serverům mít sdílenou transakci, která buď dokončí 100% nebo 0% – stejně jako běžná transakce s lokálním dotazem. Při deaktivaci DTC není vyvolána a neúspěšná remotequery může selhat a nesmí být zcela vrácena zpět.

Dotazování Dat Přes SQL Server Propojený Server

číst data z Propojeného Serveru, žádné tabulky nebo zobrazení, musí být odkazované pomocí 4-část identifikátor skládající se z Propojené název Serveru, název databáze, schematický název, a název objektu – v tomto pořadí.,

například:

SELECT * FROM .master.sys.databasesSELECT * FROM .WideWorldImporters.Sales.Orders
  • nejprve je uveden název Propojeného serveru, který je například. V tomto příkladu musí být v závorkách kvůli jeho formátu. Ne všechny názvy LinkedServer musí být v závorkách.
  • další je název databáze, master a WideWorldImporters.
  • třetí je název schématu, sys a prodej.
  • konečně je uveden název objektu. V těchto příkladech jsou objekty databázea objednávky.

tento příklad je docela ošklivý kvůli povaze názvu Propojeného serveru., Naštěstí tento skvělý tip ukazuje, jak usnadnit čtení jmen ve scénářích, jako jeto.

jakmile jsou uvedeny v klauzuli A Z, tyto tabulky a pohledy mohou být ošetřeny přesnějako každá jiná místní tabulka. Mohou být dotazovány, aliasy, připojil, jestli příslušná oprávnění jsou nastavit, mohou být upraveny pomocí insert, update, a deletestatements.

volání uložených procedur přes propojený Server

pro účely tohoto dema byl tento malý postup vytvořen v masterdatabase na cílovém propojeném serveru.,

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

postup se pak provádí na primární instanci pomocí tohoto příkazu, kterýnásleduje stejné schéma identifikátoru 4 dílů jako příkazy v předchozí části.

EXEC .master.dbo.SQLTips1

namísto očekávaného výsledku se však objeví chyba.

RPC znamená Volání vzdáleného postupu. Ve výchozím nastavení jsou propojené servery pozoruhodné pro volání uložených procedur. To lze snadno napravit povolením nastavení asingle na propojeném serveru., Přejděte na Vlastnosti Propojeného serveru, vyberte Možnosti serveru a 4thoption v seznamu bude RPC Out. Jednoduše změňte tuto hodnotu na True a clickOK.

nastavení označené RPC není hodnota, kterou je třeba změnit. To se může zdát matoucí, protože se zdá, že chybová zpráva ji konkrétně pojmenuje, ale toje to vlastně starší nastavení, které neumožňuje volání RPC.

opakování postupu nyní přináší mnohem lepší výsledek.,

SQL Server Linked Server omezení

Propojené servery mohou být velmi užitečné, ale existuje několik omezení, které tobe vědomi před jejich implementací. Propojené servery nelze použít k volání funkcí tablevalued nebo scalar. Příkaz zkrácený také nesmí býtnazvaný pomocí propojeného serveru.

SQL Server Propojený Server Případy Použití

výkon Propojené Servery není vždy skvěle, a to zejména s largedata sady a spoustu spojení mezi místní a propojených tabulek. Mohou však být velmi užitečné pro dotazování na menší datové sady.,

někdy může být požadavek ETL pro menší datový soubor splněn spíše pomocí Linkedserveru než nástroje ETL, jako je SSIS. Když řádky zapojené číslo v tisících nižší 10s tisíců propojený server založený ETL by mohl být schopen dokončit bezčasí, než je zapotřebí ke spuštění motoru SSIS.

další kroky
  • na mssqltips je celá řada pokročilých propojených serverových tipů.,com
  • Vytvoření Propojeného Serveru názvů čitelnější

Poslední aktualizace: 2019-06-28

O autorovi
Eric Blinn je Staršího Data Architect pro Squire Patton Boggs. Je také autorem SQL a předává vůdce místní skupiny.
Zobrazit všechny moje tipy
související zdroje

  • více tipů DBA serveru SQL Server…

Leave a Comment