Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Länkade servrar gör det möjligt för SQL Server Database Engine och Azure SQL Managed Instance att läsa data från fjärrdatakällorna och köra kommandon mot fjärrdatabasservrarna (till exempel OLE DB-datakällor) utanför SQL Server-instansen. Vanligtvis är länkade servrar konfigurerade för att göra det möjligt för databasmotorn att köra en Transact-SQL-instruktion som innehåller tabeller i en annan instans av SQL Server eller någon annan databasprodukt som Oracle. Många typer av OLE DB-datakällor kan konfigureras som länkade servrar, inklusive databasprovidrar från tredje part och Azure Cosmos DB.
Anmärkning
Länkade servrar är tillgängliga i SQL Server och Azure SQL Managed Instance (med vissa begränsningar). Länkade servrar är inte tillgängliga i Azure SQL Database.
När ska jag använda länkade servrar?
Med länkade servrar kan du implementera distribuerade databaser som kan hämta och uppdatera data i andra databaser. Länkade servrar är en bra lösning i scenarier där du behöver implementera databassharding utan att behöva skapa en anpassad programkod eller läsa in direkt från fjärranslutna datakällor. Länkade servrar har följande fördelar:
Möjligheten att komma åt data utanför SQL Server.
Möjligheten att utfärda distribuerade frågor, uppdateringar, kommandon och transaktioner på heterogena datakällor i företaget.
Möjligheten att hantera olika datakällor på samma sätt.
Du kan konfigurera en länkad server med hjälp av SQL Server Management Studio eller med hjälp av instruktionen sp_addlinkedserver . OLE DB-providrar varierar kraftigt i vilken typ och antal parametrar som krävs. Vissa leverantörer kräver till exempel att du anger en säkerhetskontext för anslutningen med hjälp av sp_addlinkedsrvlogin. Vissa OLE DB-leverantörer tillåter att SQL Server uppdaterar data på OLE DB-källan. Andra tillhandahåller endast skrivskyddad dataåtkomst. Information om varje OLE DB-provider finns i dokumentationen för den OLE DB-providern.
Länkade serverkomponenter
En länkad serverdefinition anger följande objekt:
En OLE DB-leverantör
En OLE DB-datakälla
En OLE DB-provider är en DLL som hanterar och interagerar med en specifik datakälla. En OLE DB-datakälla identifierar den specifika databas som kan nås via OLE DB. Även om datakällor som efterfrågas via länkade serverdefinitioner vanligtvis är databaser, finns OLE DB-leverantörer för olika filer och filformat. Dessa inkluderar textfiler, kalkylbladsdata och resultatet av innehållssökningar i fulltext.
Från och med SQL Server 2019 (15.x) är Microsoft OLE DB-drivrutinen för SQL Server (PROGID: MSOLEDBSQL) standardprovidern för OLE DB. I tidigare versioner var DEN interna SQL Server-klienten (PROGID: SQLNCLI11) standardprovidern för OLE DB.
Viktigt!
Den interna SQL Server-klienten (ofta förkortad SNAC) har tagits bort från SQL Server 2022 (16.x) och SQL Server Management Studio 19 (SSMS). Både SQL Server Native Client OLE DB-providern (SQLNCLI eller SQLNCLI11) och den äldre Microsoft OLE DB-providern för SQL Server (SQLOLEDB) rekommenderas inte för ny utveckling. Växla till den nya Microsoft OLE DB Driver (MSOLEDBSQL) för SQL Server framöver.
Länkade servrar till Microsoft Access- och Excel-källor stöds endast av Microsoft när du använder 32-bitars Microsoft.JET.OLEDB.4.0 OLE DB-providern.
Anmärkning
DISTRIBUERAde SQL Server-frågor är utformade för att fungera med alla OLE DB-leverantörer som implementerar de nödvändiga OLE DB-gränssnitten. SQL Server har dock testats mot STANDARD-OLE DB-providern.
Information om länkad server
Följande bild visar grunderna i en länkad serverkonfiguration.
Vanligtvis används länkade servrar för att hantera distribuerade frågor. När ett klientprogram kör en distribuerad fråga via en länkad server parsar SQL Server kommandot och skickar begäranden till OLE DB. Radsuppsättningsförfrågan kan utföras genom att köra en fråga mot providern eller öppna en bastabell från providern.
Anmärkning
För att en datakälla ska kunna returnera data via en länkad server måste OLE DB-providern (DLL) för den datakällan finnas på samma server som SQL Server-instansen.
Viktigt!
När en OLE DB-provider används måste kontot som SQL Server-tjänsten körs under ha läs- och körningsbehörigheter för katalogen och alla underkataloger där providern är installerad. Detta inkluderar Microsoft-utgivna leverantörer och alla tredjepartsleverantörer.
Anmärkning
Länkade servrar stöder Direktautentisering i Active Directory när du använder fullständig delegering. Från och med SQL Server 2017 (14.x) CU17 stöds även direktautentisering med begränsad delegering. Men resursbaserad begränsad delegering stöds inte.
Hantera leverantörer
Det finns en uppsättning alternativ som styr hur SQL Server läser in och använder OLE DB-providers som anges i registret.
Hantera länkade serverdefinitioner
När du konfigurerar en länkad server registrerar du anslutningsinformationen och datakällsinformationen med SQL Server. När datakällan har registrerats kan den refereras till med ett enda logiskt namn.
Du kan använda lagrade procedurer och katalogvyer för att hantera länkade serverdefinitioner:
Skapa en länkad serverdefinition genom att köra
sp_addlinkedserver
.Visa information om de länkade servrar som definierats i en specifik instans av SQL Server genom att köra en fråga mot
sys.servers
systemkatalogvyn.Ta bort en länkad serverdefinition genom att köra
sp_dropserver
. Du kan också använda den här lagrade proceduren för att ta bort en fjärrserver.
Du kan också definiera länkade servrar med hjälp av SQL Server Management Studio. Högerklicka på Serverobjekt i Objektutforskaren, välj Nytt och välj Länkad server. Du kan ta bort en länkad serverdefinition genom att högerklicka på det länkade servernamnet och välja Ta bort.
När du kör en distribuerad fråga mot en länkad server ska du inkludera ett fullständigt kvalificerat tabellnamn i fyra delar som varje datakälla ska köra frågor mot. Det här fyradelade namnet ska vara i formuläret <linked_server_name>.<catalog>.<schema>.<object_name>
.
Referenser till tillfälliga objekt kommer alltid att lösas till den lokala instansens tempdb
där det är tillämpligt, även när det länkade servernamnet används som prefix.
Länkade servrar kan definieras för att peka tillbaka (loopa tillbaka) till den server där de definieras. Loopback-servrar är mest användbara när du testar ett program som använder distribuerade frågor i ett enda servernätverk. Loopback-länkade servrar är avsedda för testning och stöds inte för många åtgärder, till exempel distribuerade transaktioner.
Länkade servrar med Azure SQL Managed Instance
Länkade Azure SQL Managed Instance-servrar stöder både SQL-autentisering och autentisering med Microsoft Entra-ID (tidigare Azure Active Directory).
Om du vill använda SQL Agent-jobb på Azure SQL Managed Instance för att utföra en fråga mot en fjärrserver via en länkad server, använder du sp_addlinkedsrvlogin för att skapa en mappning från en inloggning på den lokala servern till en inloggning på fjärrservern. När SQL Agent-jobbet ansluter till fjärrservern via den länkade servern körs T-SQL-frågan i kontexten för fjärrinloggningen. Mer information finns i SQL Agent-jobb med Azure SQL Managed Instance.
Microsoft Entra-autentisering
Två stödda Microsoft Entra-autentiseringslägen är: hanterad identitet och vidarebefordran. Hanterad identitetsautentisering kan användas för att tillåta lokala inloggningar att fråga fjärrlänkade servrar. Med pass-through-autentisering kan en användare som har autentiserats mot en lokal instans få åtkomst till en fjärrinstans via en länkad server.
Om du vill använda Microsoft Entra-direktautentisering för en länkad server i Azure SQL Managed Instance behöver du följande krav:
- Samma huvudnamn läggs till som en inloggning på fjärrservern.
- Båda instanserna är medlemmar i SQL-förtroendegruppen.
Anmärkning
Befintliga definitioner av länkade servrar som har konfigurerats för direktströmningsläge stöder Microsoft Entra-autentisering. Det enda kravet för detta är att lägga till SQL Managed Instance i serverförtroendegruppen.
Följande begränsningar gäller för Microsoft Entra-autentisering för länkade servrar i Azure SQL Managed Instance:
- Microsoft Entra-autentisering stöds inte för SQL-hanterade instanser i olika Microsoft Entra-klienter.
- Microsoft Entra-autentisering för länkade servrar stöds endast med OLE DB-drivrutinsversion 18.2.1 och senare.
MSOLEDBSQL19 och länkade servrar
För närvarande förhindrar MSOLEDBSQL19 att länkade servrar skapas utan kryptering och ett betrott certifikat (ett självsignerat certifikat är otillräckligt). Om länkade servrar krävs använder du den befintliga versionen av MSOLEDBSQL som stöds.
Från och med förhandsversionen av SQL Server 2025 (17.x) kan du använda Microsoft OLE DB Driver version 19 med länkade servrar. Den här uppdaterade drivrutinen introducerar betydande säkerhetsförbättringar, inklusive stöd för TDS 8.0. TDS 8 inför en förändring som inte är bakåtkompatibel: du måste ange Encryption
-parametern i providersträngen.
Parametern Encryption
erbjuder tre distinkta inställningar:
Yes
/True
/Mandatory
No
/False
/Optional
Strict
Alternativet Strict
kräver användning av TDS 8.0 och kräver ett servercertifikat för säkra anslutningar. För Yes
/True
/Mandatory
förväntas ett betrott certifikat. Du kan inte använda ett självsignerat certifikat.
OLE DB-version | Krypteringsparameter | Möjliga värden | Standardvärde |
---|---|---|---|
OLE DB 18 | Valfritt | Sant/Obligatoriskt, Falskt/Nej | Falskt/nej |
OLE DB 19 | Krävs | Nej/Falskt, Ja/Obligatoriskt, Strikt (ny) | Ja/obligatoriskt |
Parametern TrustServerCertificate
stöds, men rekommenderas inte.
Förtroendeservercertifikat inaktiverar certifikatverifiering, vilket försvagar säkerheten för krypterade anslutningar.
Klientinställning för betrodd servercertifikat | Anslutningssträng/anslutningsattribut Certifikat för förtroendeserver | Certifikatverifiering |
---|---|---|
0 | Nej (standard) | Ja |
0 | Ja | Ja |
1 | Nej (standard) | Ja |
1 | Ja | Nej |
De här inställningarna måste anges korrekt i providersträngen när du konfigurerar länkade serveranslutningar för att säkerställa kompatibilitet och säkerhet med den nya drivrutinen.
Mer information om OLE DB 19 och kryptering, certifikat och förtroendeservercertifikat för OLE DB 19 finns i Kryptering och certifikatverifiering i OLE DB.