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
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 zdroje dat OLE DB) mimo instanci SQL Serveru. Obvykle jsou propojené servery 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 OLE DB lze nakonfigurovat jako propojené servery, včetně poskytovatelů databází třetích stran a Azure Cosmos DB.
Poznámka:
Propojené servery jsou k dispozici v SQL Serveru a ve službě Azure SQL Managed Instance (s určitými omezeními). Propojené servery nejsou ve službě Azure SQL Database dostupné.
Kdy použít propojené servery?
Propojené servery umožňují implementovat distribuované databáze, které můžou načítat a aktualizovat data v jiných databázích. Propojené servery jsou dobrým řešením ve scénářích, kdy potřebujete implementovat horizontální dělení databáze, aniž byste museli vytvářet vlastní kód aplikace nebo přímo načítat ze vzdálených zdrojů dat. Propojené servery nabízejí následující výhody:
Možnost přístupu k datům mimo SQL Server.
Možnost vydávat distribuované dotazy, aktualizace, příkazy a transakce v heterogenních zdrojích dat v rámci podniku
Možnost řešit různé zdroje dat podobně.
Propojený server můžete nakonfigurovat pomocí aplikace SQL Server Management Studio nebo pomocí příkazu sp_addlinkedserver . Zprostředkovatelé OLE DB se výrazně liší v typu a počtu požadovaných parametrů. Někteří poskytovatelé například vyžadují, abyste pro připojení zadali kontext zabezpečení pomocí sp_addlinkedsrvlogin. Někteří zprostředkovatelé OLE DB umožňují SYSTÉMU SQL Server aktualizovat data ve zdroji OLE DB. Ostatní poskytují přístup k datům jen pro čtení. Informace o každém zprostředkovatele OLE DB naleznete v dokumentaci k zprostředkovateli OLE DB.
Součásti propojeného serveru
Definice propojeného serveru určuje následující objekty:
Zprostředkovatel OLE DB
Zdroj dat OLE DB
Zprostředkovatel OLE DB je knihovna DLL, která spravuje a komunikuje s konkrétním zdrojem dat. Zdroj dat OLE DB identifikuje konkrétní databázi, ke které lze přistupovat prostřednictvím OLE DB. I když jsou zdroje dat dotazované prostřednictvím definic propojeného serveru obvykle databáze, zprostředkovatelé OLE DB existují pro různé soubory a formáty souborů. Patří sem textové soubory, data tabulky a výsledky fulltextového vyhledávání obsahu.
Počínaje SQL Serverem 2019 (15.x) je výchozím poskytovatelem OLE DB ovladač Microsoft OLE DB pro SQL Server (PROGID: MSOLEDBSQL). V předchozích verzích byl výchozím poskytovatelem OLE DB nativní klient SQL Serveru (PROGID: SQLNCLI11).
Důležité
Nativní klient SQL Serveru (často zkracovaný jako SNAC) byl odebrán z SQL Serveru 2022 (16.x) a SQL Server Management Studio 19 (SSMS). Pro nový vývoj se nedoporučuje zprostředkovatele SQL Server Native Client OLE DB (SQLNCLI nebo SQLNCLI11) ani starší verze zprostředkovatele Microsoft OLE DB pro SQL Server (SQLOLEDB). Přejděte na nový ovladač Microsoft OLE DB (MSOLEDBSQL) pro SQL Server do budoucna.
Propojené servery s microsoft accessovými a excelovými zdroji jsou podporovány pouze microsoftem při použití 32bitového zprostředkovatele Microsoft.JET.OLEDB.4.0 OLE DB.
Poznámka:
Distribuované dotazy SQL Serveru jsou navržené tak, aby fungovaly s libovolným zprostředkovatelem OLE DB, který implementuje požadovaná rozhraní OLE DB. SQL Server byl však testován proti výchozímu zprostředkovateli OLE DB.
Podrobnosti o propojeném serveru
Následující obrázek ukazuje základy konfigurace propojeného serveru.
Odkazované servery se obvykle používají ke zpracování distribuovaných dotazů. Když klientská aplikace provede distribuovaný dotaz prostřednictvím propojeného serveru, SQL Server analyzuje příkaz a odešle požadavky do OLE DB. Požadavek sady řádků může být ve formě provádění dotazu vůči zprostředkovateli nebo otevření základní tabulky od zprostředkovatele.
Poznámka:
Aby zdroj dat vrátil data prostřednictvím propojeného serveru, musí být zprostředkovatel OLE DB (DLL) pro tento zdroj dat na stejném serveru jako instance SQL Serveru.
Důležité
Při použití zprostředkovatele OLE DB musí mít účet, pod kterým běží služba SQL Server, oprávnění ke čtení a spouštění pro adresář a všechny podadresáře, ve kterých je poskytovatel nainstalován. Patří sem poskytovatelé vydané Microsoftem a všichni poskytovatelé třetích stran.
Poznámka:
Propojené servery podporují předávací ověřování služby Active Directory při použití úplného delegování. Počínaje SQL Serverem 2017 (14.x) CU17 se podporuje i předávací ověřování s omezeným delegováním; omezené delegování založené na prostředcích však není podporováno.
Správa poskytovatelů
Existuje sada možností, které řídí, jak SQL Server načítá a používá zprostředkovatele OLE DB určené v registru.
Správa definic odkazovaného serveru
Při nastavování propojeného serveru zaregistrujte informace o připojení a informace o zdroji dat u SQL Serveru. Po registraci je možné na tento zdroj dat odkazovat jedním logickým názvem.
Pomocí uložených procedur a zobrazení katalogu můžete spravovat definice propojeného serveru:
Vytvořte definici propojeného serveru spuštěním příkazu
sp_addlinkedserver
.Zobrazení informací o propojených serverech definovaných v konkrétní instanci SQL Serveru spuštěním dotazu na
sys.servers
zobrazení katalogu systému.Odstranění definice propojeného serveru spuštěním
sp_dropserver
příkazu . Tuto uloženou proceduru můžete použít také k odebrání vzdáleného serveru.
Propojené servery můžete také definovat pomocí aplikace SQL Server Management Studio. V Průzkumníku objektů klikněte pravým tlačítkem na Objekty serveru, vyberte Nový a vyberte Propojený server. Definici propojeného serveru můžete odstranit tak, že kliknete pravým tlačítkem myši na název propojeného serveru a vyberete Odstranit.
Když spustíte distribuovaný dotaz na odkazovaný server, zahrňte plně kvalifikovaný název čtyřdílné tabulky pro každý zdroj dat, který se má dotazovat. Tento čtyřdílný název by měl být ve formuláři <linked_server_name>.<catalog>.<schema>.<object_name>
.
Odkazy na dočasné objekty se vždy přeloží na místní instanci tempdb
, pokud je to možné, i když je před názvem propojeného serveru předpona.
Propojené servery je možné definovat tak, aby odkazovali zpět (smyčku zpět) na server, na kterém jsou definované. Loopback servery jsou nejužitečnější při testování aplikace, která používá distribuované dotazy na jedné serverové síti. Interní propojené servery jsou určeny pouze pro testování a nejsou podporovány pro mnoho operací, jako jsou distribuované transakce.
Propojené servery se službou Azure SQL Managed Instance
Propojené servery Azure SQL Managed Instance podporují ověřování SQL i ověřování pomocí Microsoft Entra ID (dříve Azure Active Directory).
Pokud chcete použít úlohy agenta SQL ve službě Azure SQL Managed Instance k dotazování vzdáleného serveru prostřednictvím propojeného serveru, použijte sp_addlinkedsrvlogin k vytvoření mapování z přihlášení na místním serveru k přihlášení na vzdáleném serveru. Když se úloha agenta SQL připojí ke vzdálenému serveru prostřednictvím propojeného serveru, spustí dotaz T-SQL v kontextu vzdáleného přihlášení. Další informace najdete v tématu Úlohy agenta SQL se službou Azure SQL Managed Instance.
Ověřovací systém Microsoft Entra
Existují dva podporované režimy ověřování Microsoft Entra: spravovaná identita a průchozí. Ověřování spravované identity se dá použít k povolení místních přihlášení k dotazování vzdálených propojených serverů. Předávací ověřování umožňuje účastníkovi, který se může ověřit v místní instanci, přístup ke vzdálené instanci prostřednictvím propojeného serveru.
Pokud chcete použít předávací ověřování Microsoft Entra pro propojený server ve službě Azure SQL Managed Instance, potřebujete následující požadavky:
- Stejný subjekt se přidá jako přihlašovací identita na vzdáleném serveru.
- Obě instance jsou členy skupiny důvěryhodnosti SQL.
Poznámka:
Existující definice propojených serverů nakonfigurovaných pro předávací režim podporují ověřování Microsoft Entra. Jediným požadavkem pro toto je přidání spravované instance SQL do skupiny důvěryhodnosti serveru.
Následující omezení platí pro ověřování Microsoft Entra pro propojené servery ve službě Azure SQL Managed Instance:
- Ověřování Microsoft Entra není podporováno pro spravované instance SQL v různých tenantech Microsoft Entra.
- Ověřování Microsoft Entra pro propojené servery je podporováno pouze s ovladačem OLE DB verze 18.2.1 a vyšší.
MSOLEDBSQL19 a odkazované servery
V současné době MSOLEDBSQL19 brání vytvoření propojených serverů bez šifrování a důvěryhodného certifikátu (certifikát podepsaný svým držitelem není dostatečný). Pokud se vyžadují propojené servery, použijte stávající podporovanou verzi MSOLEDBSQL.
Počínaje verzí SQL Server 2025 (17.x) Preview můžete použít ovladač Microsoft OLE DB verze 19 s propojenými servery. Tento aktualizovaný ovladač přináší významná vylepšení zabezpečení, včetně podpory TDS 8.0. TDS 8 zavádí zásadní změnu: musíte nastavit parametr Encryption
v řetězci poskytovatele.
Parametr Encryption
nabízí tři různá nastavení:
Yes
/True
/Mandatory
No
/False
/Optional
Strict
Možnost Strict
vyžaduje použití TDS 8.0 a vyžaduje certifikát serveru pro zabezpečená připojení. Je očekáván důvěryhodný certifikát pro Yes
/True
/Mandatory
. Certifikát podepsaný svým držitelem nemůžete použít.
Verze OLE DB | Parametr šifrování | Možné hodnoty | Výchozí hodnota |
---|---|---|---|
OLE DB 18 | Volitelný | Pravda/Povinné, Nepravda/Ne | Nepravda nebo ne |
OLE DB 19 | Povinné | Ne/Nepravda, Ano/Povinné, Striktní (nové) | Ano/povinné |
Parametr TrustServerCertificate
se podporuje, ale nedoporučuje se.
Certifikát důvěryhodného serveru zakáže ověření certifikátu a oslabí zabezpečení šifrovaných připojení.
Nastavení klienta certifikátu důvěryhodného serveru | Připojovací řetězec/atribut připojení Certifikát důvěryhodného serveru | Ověření certifikátu |
---|---|---|
0 | Ne (výchozí) | Ano |
0 | Ano | Ano |
1 | Ne (výchozí) | Ano |
1 | Ano | Ne |
Tato nastavení musí být správně zadána v řetězci zprostředkovatele při konfiguraci připojení k propojenému serveru, aby byla zajištěna kompatibilita a zabezpečení s novým ovladačem.
Další informace o technologii OLE DB 19 a šifrování, chování certifikátu a certifikátu důvěryhodného serveru pro OLE DB 19 naleznete v tématu Šifrování a ověření certifikátu v OLE DB.
Související obsah
- Vytvoření propojených serverů (SQL Server Database Engine)
- sys.servers (Transact-SQL)
- sp_linkedservers (Transact-SQL)
- sp_addlinkedserver (Transact-SQL)
- sp_addlinkedsrvlogin (Transact-SQL)
- sp_dropserver (Transact-SQL)