Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Tento článek ukazuje, jak vytvořit propojený server a přistupovat k datům z jiného SQL Serveru, azure SQL Managed Instance nebo jiného zdroje dat pomocí aplikace SQL Server Management Studio (SSMS) nebo Transact-SQL. Propojené servery umožňují databázovému stroji SQL Serveru a službě Azure SQL Managed Instance číst data ze vzdálených zdrojů dat a spouštět příkazy na vzdálených databázových serverech (například zdrojů dat OLE DB) mimo instanci SQL Serveru.
Pozadí
Propojené servery jsou obvykle nakonfigurované tak, aby databázový stroj mohl spouštět příkaz Transact-SQL, který obsahuje tabulky v jiné instanci SQL Serveru nebo jiný databázový produkt, jako je Oracle. Mnoho typů zdrojů dat je možné nakonfigurovat jako propojené servery, včetně poskytovatelů databází třetích stran a Azure Cosmos DB.
Po vytvoření propojeného serveru je možné na tomto serveru spustit distribuované dotazy a dotazy mohou spojit tabulky z více než jednoho zdroje dat. Pokud je propojený server definovaný jako instance SQL Serveru nebo spravované instance Azure SQL, je možné spustit vzdálené uložené procedury.
Možnosti a požadované argumenty propojeného serveru se můžou výrazně lišit. Příklady v tomto článku představují typický příklad, ale všechny možnosti nejsou popsány. Další informace naleznete v tématu sp_addlinkedserver (Transact-SQL).
Dovolení
Pokud používáte příkazy Transact-SQL, je vyžadováno oprávnění ALTER ANY LINKED SERVER na serveru nebo členství v pevné roli serveru setupadmin. Při použití aplikace Management Studio je vyžadováno oprávnění CONTROL SERVER nebo členství v pevné serverové roli sysadmin.
Vytvoření propojeného serveru pomocí SSMS
Pomocí následujícího postupu vytvořte propojený server se službou SSMS:
Otevření dialogového okna Nový propojený server
V aplikaci SQL Server Management Studio (SSMS):
- Otevřete Průzkumníka objektů.
- Rozbalte serverové objekty.
- Klikněte pravým tlačítkem na propojené servery.
- Vyberte nový propojený server.
Upravte stránku Obecné pro vlastnosti propojeného serveru
Na stránce Obecné zadejte do pole Propojeného serveru název instance SQL Serveru, se kterou se propojujete.
Poznámka
Pokud je instance SQL Server výchozí instancí, zadejte název počítače, který je hostitelem instance SQL Server. Pokud je SQL Server pojmenovanou instancí, zadejte název počítače a název instance, například Accounting\SQLExpress.
V případě potřeby zadejte typ Serveru a související informace:
SQL Serveru
Identifikujte propojený server jako instanci Microsoft SQL Serveru nebo spravované instance Azure SQL. Pokud použijete tuto metodu definování propojeného serveru, název zadaný v Odkazovaný server musí být síťovým názvem serveru. Všechny tabulky načtené ze serveru jsou také z výchozí databáze definované pro přihlášení na propojeném serveru.jiný zdroj dat
Zadejte jiný typ serveru OLE DB než SQL Server. Kliknutím na tuto možnost aktivujete možnosti pod ní.poskytovatel
Ze seznamu vyberte zdroj dat OLE DB. Zprostředkovatel OLE DB je zaregistrovaný s daným PROGID v registru.Název produktu
Zadejte název produktu zdroje dat OLE DB, který chcete přidat jako propojený server.zdroj dat
Zadejte název zdroje dat, který interpretuje zprostředkovatel OLE DB. Pokud se připojujete k instanci SQL Serveru, zadejte název instance.řetězce zprostředkovatele
Zadejte jedinečný programový identifikátor (PROGID) zprostředkovatele OLE DB, který odpovídá zdroji dat. Příklady platných řetězců zprostředkovatele najdete v tématu sp_addlinkedserver (Transact-SQL).umístění
Zadejte umístění databáze, jak je interpretováno poskytovatelem OLE DB.Katalog
Zadejte název katalogu, který se má použít při připojování k zprostředkovateli OLE DB.
Upravit stránku zabezpečení vlastností propojeného serveru
Na stránce Zabezpečení zadejte kontext zabezpečení, který se použije při připojení původní instance k propojenému serveru. Existují dvě strategie konfigurace, které lze použít samostatně nebo zkombinovat. Prvním je namapovat přihlášení z místního serveru na vzdálený server a druhý je způsob, jakým má propojený server zacházet s přihlášeními, která nejsou namapovaná.
Přidejte mapování přihlášení
Volitelně můžete určit, jak se přihlašovací údaje místního serveru ověřují pomocí propojeného serveru.
V části Mapování přihlášení k místnímu serveru na přihlášení k vzdálenému serveruopakujte následující postup pro každé přihlášení, které chcete mapovat:
Vyberte Přidat.
Zadejte místní přihlašovací údaje.
Zadejte místní přihlášení, které se může připojit k propojenému serveru. Místní přihlášení může být přihlášení pomocí ověřování SQL Serveru nebo přihlášení k ověřování systému Windows. Použití skupiny Systému Windows nebo uživatele databáze s omezením se nepodporuje. Pomocí tohoto seznamu můžete omezit připojení k určitým přihlášením nebo povolit, aby se některá přihlášení připojila jako jiné přihlášení.
Poznámka
Běžné problémy s propojenými servery používajícími ověřování systému Windows ke vzdálené instanci SQL Serveru vznikají z problémů s hlavními názvy služeb (SPN). Další informace naleznete v tématu Podpora hlavního názvu služby (SPN) v klientských připojeních. Microsoft Kerberos Configuration Manager pro SQL Server je diagnostický nástroj, který pomáhá řešit problémy s připojením k protokolu Kerberos s SQL Serverem. Další informace naleznete v tématu Microsoft Kerberos Configuration Manager pro SQL Server.
Vyberte zosobnění (volitelné).
Předejte uživatelské jméno a heslo z místního přihlášení k propojenému serveru. Pro ověřování SQL Serveru musí na vzdáleném serveru existovat přihlášení se stejným názvem a heslem. Pro přihlášení k Windows musí být přihlášení platným přihlášením na propojeném serveru.
Aby bylo možné používat zosobnění, musí konfigurace splňovat požadavek na delegování.
Pokud nepoužíváte zosobnění, zadejte vzdálený uživatel.
Použijte vzdáleného uživatele k namapování uživatele definovaného v místní přihlášení. Vzdálený uživatel musí mít přihlašovací jméno pro ověřování SQL Serveru na vzdáleném serveru.
Pokud nepoužíváte předstírání identity, zadejte vzdálené heslo.
- Zadejte heslo vzdáleného uživatele.
Chcete-li odebrat existující místní přihlášení, vyberte Odebrat.
Zadejte výchozí kontext zabezpečení pro přihlášení, která nejsou v seznamu mapování.
V doménovém prostředí, kde se uživatelé připojují pomocí přihlašovacích údajů k doméně, je často nejlepší volbou vybrat Be made pomocí aktuálního kontextu zabezpečení přihlášení. Když se uživatelé připojují k původnímu SQL Serveru přihlášením přes SQL Server, často je nejlepší volbou zvolit Pomocí tohoto kontextu zabezpečenía poté zadat potřebné přihlašovací údaje pro ověření na propojeném serveru.
Vyberte jednu z následujících možností:
nemá být vyroben
Připojení nebude provedeno pro přihlášení, která nejsou definována v seznamu.Realizovat bez použití bezpečnostního kontextu
Připojení se vytvoří bez použití kontextu zabezpečení pro přihlášení, která nejsou v seznamu definována.Být proveden pomocí aktuálního bezpečnostního kontextu přihlášení
Připojení bude provedeno pomocí aktuálního kontextu zabezpečení přihlášení pro přihlášení, která nejsou definována v seznamu. Pokud jste připojení k místnímu serveru pomocí ověřování systému Windows, použijí se vaše přihlašovací údaje systému Windows pro připojení ke vzdálenému serveru. Pokud jste připojení k místnímu serveru pomocí ověřování SQL Serveru, použije se pro připojení ke vzdálenému serveru přihlašovací jméno a heslo. V takovém případě musí na vzdáleném serveru existovat přihlášení se stejným názvem a heslem.Být vytvořen s použitím tohoto bezpečnostního kontextu
Připojení bude provedeno pomocí přihlašovacího jména a hesla uvedeného v políčkách Vzdálené přihlášení a Heslo pro přihlášení, která nejsou v seznamu definována. Vzdálené přihlášení musí být přihlášení k ověřování SQL Serveru na vzdáleném serveru.Opatrnost
Pokud je propojený server nakonfigurovaný s možností Be made using this security context, jakýkoli uživatel v instanci může přistupovat ke vzdálenému propojenému serveru pomocí tohoto kontextu. To může mít nezamýšlený potenciál zneužití nebo škodlivého interního přístupu. Ověření SQL vzdáleného přihlášení poskytnuté odkazovanému serveru by mělo mít na vzdáleném serveru udělená minimální potřebná oprávnění, aby se zajistila zásada nejnižšího oprávnění a snížila prostor pro útoky.
Úprava stránky Možnosti serveru ve vlastnostech propojeného serveru (volitelné)
Pokud chcete zobrazit nebo zadat možnosti serveru, vyberte stránku Možnosti serveru. Můžete upravit některou z následujících možností:
Kompatibilní kolace
Ovlivňuje spouštění distribuovaných dotazů na odkazované servery. Pokud je tato možnost nastavená na hodnotu true, SQL Server předpokládá, že všechny znaky na propojeném serveru jsou kompatibilní s místním serverem, pokud jde o posloupnost znakové sady a kolace (nebo pořadí řazení). Sql Server tak může zprostředkovateli odesílat porovnání sloupců znaků. Pokud tato možnost není nastavená, SQL Server vždy vyhodnotí porovnání u sloupců znaků místně.Tato možnost by měla být nastavena pouze v případě, že je jisté, že zdroj dat odpovídající propojenému serveru má stejnou znakovou sadu a pořadí řazení jako místní server.
Přístup k datům
Povolí a zakáže propojený server pro distribuovaný přístup k dotazům.RPC
Povolí vzdálená volání procedur (RPC) ze zadaného serveru.vzdáleného volání procedur (RPC Out)
Povolí RPC na zadaný server.používat vzdálené porovnávání
Určuje, zda bude použita kolace vzdáleného sloupce nebo místního serveru.Pokud je pravda, kolace vzdálených sloupců se používá pro zdroje dat SQL Serveru a kolace zadaná v názvu kolace se používá pro zdroje dat mimo SQL Server.
Pokud je hodnota false, distribuované dotazy budou vždy používat výchozí kolaci místního serveru, zatímco název kolace a kolace vzdálených sloupců budou ignorovány. Výchozí hodnota je false.
název řazení
Určuje název kolace používané vzdáleným zdrojem dat, pokud je použití vzdálené kolace pravdivé a zdroj dat není zdrojem dat SQL Serveru. Název musí být jedním z kolací podporovaných SQL Serverem.Tuto možnost použijte při přístupu k jinému zdroji dat OLE DB než SQL Serveru, ale jejichž kolace odpovídá jedné z kolací SQL Serveru.
Propojený server musí podporovat jednu kolaci, která se má použít pro všechny sloupce na daném serveru. Tuto možnost nenastavujte, pokud propojený server podporuje více kolací v rámci jednoho zdroje dat nebo pokud kolace propojeného serveru není možné určit tak, aby odpovídala jedné z kolací SQL Serveru.
vypršení časového limitu připojení
Hodnota časového limitu v sekundách pro připojení k propojenému serveruPokud je 0, použijte výchozí hodnotu možnosti
sp_configure
timeoutu vzdáleného přihlášení .vypršení časového limitu dotazu
Hodnota časového limitu v sekundách pro dotazy na odkazovaný serverPokud je 0, použijte výchozí hodnotu možnosti vypršení časového limitu vzdáleného dotazu
sp_configure
.Povolit podporu distribuovaných transakcí
Tato možnost slouží k ochraně akcí procedur mezi servery prostřednictvím transakce MS DTC (Distributed Transaction Coordinator). Pokud je tato možnost TRUE, volání vzdálené uložené procedury spustí distribuovanou transakci a připojí transakci k MS DTC. Další informace naleznete v sp_serveroption (Transact-SQL).
Uložení propojeného serveru
Vyberte OK.
Zobrazení nebo úprava možností zprostředkovatele propojeného serveru v SSMS
Všichni poskytovatelé nemají k dispozici stejné možnosti. Například některé typy dat mají k dispozici indexy a některé nemusí. Toto dialogové okno slouží k tomu, abyste SQL Serveru pomohli porozumět možnostem poskytovatele. SQL Server nainstaluje některé běžné zprostředkovatele dat, ale když produkt poskytuje změny dat, poskytovatel nainstalovaný SQL Server nemusí podporovat všechny nejnovější funkce. Nejlepším zdrojem informací o možnostech produktu, který poskytuje data, je dokumentace k danému produktu.
Chcete-li otevřít stránku Propojený server Možnosti zprostředkovatelů v nástroji SSMS:
- Otevřete Průzkumníka objektů.
- Rozšiřte serverové objekty.
- Rozbalte propojené servery.
- Rozbalte poskytovatele.
- Klikněte pravým tlačítkem na poskytovatele a vyberte Vlastnosti.
Možnosti zprostředkovatele jsou definovány takto:
dynamického parametru
Označuje, že zprostředkovatel povoluje syntaxi značek parametrů "?" pro parametrizované dotazy. Tuto možnost nastavte pouze v případě, že poskytovatel podporuje ICommandWithParameters rozhraní a jako značku parametru podporuje "?". Nastavení této možnosti umožňuje SQL Serveru spouštět parametrizované dotazy vůči zprostředkovateli. Možnost spouštět parametrizované dotazy vůči poskytovateli může vést k lepšímu výkonu určitých dotazů.Vnořené dotazy
Označuje, že poskytovatel umožňuje v klauzuli FROM používat vnořené příkazySELECT
. Nastavení této možnosti umožňuje SQL Serveru delegovat určité dotazy na zprostředkovatele, který vyžaduje vnoření příkazů SELECT v klauzuli FROM.Pouze úroveň nula
U zprostředkovatele se vyvolá pouze rozhraní OLE DB úrovně 0.Povolit v procesoru
SQL Server umožňuje vytvoření instance poskytovatele jako procesového serveru. Pokud tato možnost není nastavená, výchozím chováním je vytvoření instance poskytovatele mimo proces SQL Serveru. Vytvoření instance zprostředkovatele mimo proces SQL Serveru chrání proces SQL Serveru před chybami poskytovatele. Když je zprostředkovatel vytvořen mimo proces SQL Serveru, nejsou povoleny aktualizace nebo vložení odkazující na dlouhé sloupce (text, ntextnebo image).
neprovedené aktualizace
SQL Server umožňuje aktualizace, i když ITransactionLocal není k dispozici. Pokud je tato možnost povolena, nelze obnovit aktualizace provedené proti poskytovateli, protože poskytovatel nepodporuje transakce.Index jako přístupová cesta
SQL Server se pokusí použít indexy zprostředkovatele k načtení dat. Ve výchozím nastavení se indexy používají jenom pro metadata a nikdy se neotevřejí.zakázat ad hoc přístup
SQL Server neumožňuje ad hoc přístup prostřednictvím funkcí OPENROWSET a OPENDATASOURCE u zprostředkovatele OLE DB. Pokud tato možnost není nastavená, SQL Server také nepovoluje ad hoc přístup.podporuje operátor 'Like'
Označuje, že poskytovatel podporuje dotazy pomocí klíčového slova LIKE.
Vytvoření propojeného serveru pomocí Transact-SQL
Pokud chcete vytvořit propojený server pomocí jazyka Transact-SQL, použijte sp_addlinkedserver (Transact-SQL), CREATE LOGIN (Transact-SQL)a sp_addlinkedsrvlogin (Transact-SQL) příkazy.
Tento příklad vytvoří propojený server s jinou instancí SQL Serveru pomocí jazyka Transact-SQL:
V Editoru dotazů zadejte následující příkaz Transact-SQL pro propojení s instancí SQL Serveru s názvem
SRVR002\ACCTG
:USE [master] GO EXEC master.dbo.sp_addlinkedserver @server = N'SRVR002\ACCTG', @srvproduct=N'SQL Server'; GO
Spuštěním následujícího kódu nakonfigurujte odkazovaný server tak, aby používal přihlašovací údaje domény pro přihlášení, které používá propojený server.
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL , @useself = N'True'; GO
cs-CZ: Sledovat navazující kroky: Kroky, které je potřeba provést po vytvoření propojeného serveru
Následující kroky vám pomůžou ověřit propojený server.
Otestování propojeného serveru
Zvažte některý z následujících dvou přístupů k otestování ověřování propojeného serveru v aktuálním kontextu zabezpečení.
Pokud chcete otestovat možnost připojení k propojenému serveru v aplikaci SSMS, přejděte na odkazovaný server v Průzkumník objektů, klikněte pravým tlačítkem myši na odkazovaný server a vyberte Test připojení.
Pokud chcete otestovat možnost připojení k propojenému serveru v T-SQL, spusťte jednoduchý příkaz
SELECT
, například načtení základních informací o katalogu databází. Tento příklad vrátí názvy databází na propojeném serveru.SELECT name FROM [SRVR002\ACCTG].master.sys.databases; GO
Spojení tabulek z propojeného serveru
Pomocí čtyřdílných názvů můžete odkazovat na objekt na propojeném serveru. Spuštěním následujícího kódu vrátíte seznam všech přihlášení na místním serveru a odpovídající přihlášení na propojeném serveru.
SELECT local.name AS LocalLogins, linked.name AS LinkedLogins
FROM master.sys.server_principals AS local
LEFT JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked
ON local.name = linked.name;
GO
Když se NULL
vrátí pro přihlášení k propojenému serveru, znamená to, že na propojeném serveru neexistuje přihlášení. Tato přihlášení nebudou moct používat odkazovaný server, pokud není propojený server nakonfigurovaný tak, aby předal jiný kontext zabezpečení nebo propojený server přijímá anonymní připojení.
Propojené servery se službou Azure SQL Managed Instance
Pokud používáte službu Azure SQL Managed Instance, projděte si následující příklady z sp_addlinkedserver (Transact-SQL):
Další kroky
Další informace o správě propojených serverů najdete v těchto článcích: