Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL Managed Instance
In diesem Artikel wird gezeigt, wie Sie einen verknüpften Server erstellen und auf Daten aus einem anderen SQL Server, einer von Azure SQL verwalteten Instanz oder einer anderen Datenquelle mithilfe von SQL Server Management Studio (SSMS) oder Transact-SQL zugreifen. Verbindungsserver ermöglichen der SQL Server-Datenbank-Engine und Azure SQL Managed Instance, Daten aus den Remotedatenquellen zu lesen und Befehle für die Remotedatenbankserver (z. B. OLE DB-Datenquellen) außerhalb der SQL Server-Instanz auszuführen.
Hintergrund
Verbindungsserver werden in der Regel so konfiguriert, dass die Datenbank-Engine eine Transact-SQL-Anweisung ausführen kann, die Tabellen in einer anderen SQL Server-Instanz oder einem anderen Datenbankprodukt wie Oracle enthält. Viele Arten von Datenquellen können als Verbindungsserver konfiguriert werden, darunter Datenbank-Drittanbieter und Azure Cosmos DB.
Nach der Erstellung eines Verbindungsservers können für den Server verteilte Abfragen ausgeführt werden, und Abfragen können Tabellen von mehreren Datenquellen verknüpfen. Wenn der Verbindungsserver als SQL Server-Instanz oder Azure SQL Managed Instance-Instanz definiert ist, können remote gespeicherte Prozeduren ausgeführt werden.
Die Funktionen und erforderlichen Argumente des Verbindungsservers können erheblich abweichen. In diesem Artikel werden typische Beispiele aufgeführt, allerdings werden nicht alle Optionen beschrieben. Weitere Informationen finden Sie unter sp_addlinkedserver.
Berechtigungen
Wenn Sie Transact-SQL-Anweisungen verwenden, ist die Berechtigung ALTER ANY LINKED SERVER auf dem Server oder die Mitgliedschaft in der festen Serverrolle setupadmin erforderlich. Wenn Sie Management Studio verwenden, erfordert dies die CONTROL SERVER-Berechtigung oder die Mitgliedschaft in der festen Serverrolle sysadmin.
Erstellen eines Verbindungsservers mit SSMS
Erstellen Sie mithilfe des folgenden Verfahrens einen Verbindungsserver mit SSMS:
Öffnen des Dialogfelds „Neuer Verbindungsserver“
In SQL Server Management Studio (SSMS):
- Öffnen Sie den Objekt-Explorer.
- Erweitern Sie Serverobjekte.
- Klicken Sie mit der rechten Maustaste auf Verbindungsserver.
- Wählen Sie Neuer Verbindungsserver aus.
Bearbeiten Sie auf der Seite „Allgemein“ die Eigenschaften des Verbindungsservers.
Geben Sie auf der Seite Allgemein im Feld Verbindungsserver den Namen der Instanz von SQL Server ein, mit der Sie einen Link herstellen möchten.
Hinweis
Wenn die Instanz von SQL Server die Standardinstanz ist, geben Sie den Namen des Computers ein, auf dem die Instanz von SQL Servergehostet wird. Wenn der SQL Server eine benannte Instanz ist, geben Sie den Namen des Computers und den der Instanz ein, z.B. Accounting\SQLExpress.
Geben Sie bei Bedarf den Servertyp und die zugehörigen Informationen an:
SQL Server
Identifizieren Sie den Verbindungsserver als Instanz von Microsoft SQL Server oder eine Azure SQL Managed Instance-Instanz. Wenn Sie einen Verbindungsserver nach dieser Methode definieren, muss der im Feld Verbindungsserver angegebene Name der Netzwerkname des Servers sein. Außerdem stammen alle vom Server abgerufenen Tabellen aus der Standarddatenbank, die für die Anmeldung auf dem Server mit Verknüpfung festgelegt ist.
Andere Datenquelle
Geben Sie einen anderen OLE DB-Servertyp als SQL Server an. Aktivieren Sie diese Option, um Optionen zu aktivieren.
Anbieter
Wählen Sie eine OLE DB-Datenquelle aus dem Listenfeld aus. Der OLE DB-Anbieter ist mit der angegebenen PROGID in der Registrierung registriert.
Produktname
Geben Sie den Produktnamen der OLE DB-Datenquelle ein, die als Verbindungsserver hinzugefügt werden soll.
Datenquelle
Geben Sie den Namen der Datenquelle ein, wie er durch den OLE DB-Anbieter interpretiert wird. Wenn Sie eine Verbindung mit einer Instanz von SQL Server herstellen, geben Sie den Instanznamen an.
Anbieter-Zeichenfolge
Geben Sie die ProgID des OLE DB-Anbieters ein, die der Datenquelle entspricht. Beispiele für gültige Anbieterzeichenfolgen finden Sie unter sp_addlinkedserver.
Location
Geben Sie den Speicherort der Datenbank ein, wie er durch den OLE DB-Anbieter interpretiert wird.
Katalog
Geben Sie den Namen des Katalogs ein, der beim Herstellen einer Verbindung mit dem OLE DB-Anbieter verwendet werden soll.
Bearbeiten Sie die Seite „Sicherheit“ der Eigenschaften des verknüpften Servers
Geben Sie auf der Seite Sicherheit den Sicherheitskontext an, der verwendet wird, wenn die ursprüngliche Instanz eine Verbindung mit dem Verbindungsserver herstellt. Es müssen zwei Strategien konfiguriert werden, die allein oder kombiniert verwendet werden können. Die erste besteht darin, Anmeldungen vom lokalen Server dem Remoteserver zuzuordnen, und die zweite beinhaltet, wie der Verbindungsserver Anmeldungen behandeln soll, die nicht zugeordnet sind.
Anmeldezuordnungen hinzufügen
Sie können optional angeben, wie bestimmte lokale Serveranmeldungen über den verknüpften Server authentifiziert werden.
Wiederholen Sie unter Local server login to remote server login mappings (Zuordnungen von lokalen Serveranmeldungen zu Remote-Serveranmeldungen) den folgenden Vorgang für jede Anmeldung, die Sie zuordnen möchten:
Wählen Sie Hinzufügen.
Geben Sie einen lokalen Anmeldenamen ein.
Gibt die lokale Anmeldung an, mit der eine Verbindung zum Verbindungsserver hergestellt werden kann. Die lokale Anmeldung kann entweder eine Anmeldung mit SQL Server-Authentifizierung oder eine Anmeldung mit Windows-Authentifizierung sein. Die Verwendung einer Windows-Gruppe oder eines eigenständigen Datenbankbenutzers wird nicht unterstützt. Verwenden Sie diese Liste, um die Verbindung mit spezifischen Anmeldungen zu beschränken oder einigen Anmeldungen das Herstellen einer Verbindung unter einer anderen Anmeldung zu ermöglichen.
Hinweis
Häufig auftretende Probleme mit Verbindungsservern, die die Windows-Authentifizierung für eine Remote-SQL Server-Instanz verwenden, ergeben sich aus Schwierigkeiten mit Dienstprinzipalnamen (SPNs). Weitere Informationen finden Sie unter Unterstützung von Dienstprinzipalnamen (SPN) in Clientverbindungen. Microsoft Kerberos Konfigurations-Manager for SQL Server ist ein Diagnosetool zur Behebung Kerberos-bezogener Probleme mit der Verbindung mit SQL Server. Weitere Informationen finden Sie unter Microsoft Kerberos-Konfigurations-Manager für SQL Server.
Wählen Sie Identität wechseln aus (optional).
Übergibt den Benutzernamen und das Kennwort von der lokalen Anmeldung an den Verbindungsserver. Bei SQL Server-Authentifizierung muss eine Anmeldung mit dem genau gleichen Namen und Kennwort auf dem Remoteserver vorhanden sein. Bei Windows-Anmeldungen muss die Anmeldung eine gültige Anmeldung auf dem Verbindungsserver sein.
Um Identitätswechsel verwenden zu können, muss die Konfiguration die Anforderungen für die Delegierung erfüllen.
Geben Sie einen Remotebenutzer an, wenn Sie keinen Identitätswechsel durchführen.
Verwenden Sie den Remotebenutzer für die Zuordnung von Benutzern, die in Lokale Anmeldung definiert sind. Der Remotebenutzer muss ein Anmeldename mit SQL Server-Authentifizierung auf dem Remoteserver sein.
Geben Sie ein Remote-Kennwort an, wenn Sie keinen Identitätswechsel verwenden.
Gibt das Kennwort des Remotebenutzers an.
Wählen Sie Entfernen aus, um bei Bedarf eine vorhandene lokale Anmeldung zu entfernen.
Angeben des Standardsicherheitskontexts für Anmeldungen, die nicht in der Zuordnungsliste vorhanden sind
In einer Domänenumgebung, in der Benutzer Verbindungen anhand ihrer Domänenanmeldenamen herstellen, ist die Auswahl der Option Im aktuellen Sicherheitskontext der Anmeldung verwendet oft die beste Wahl. Wenn Benutzer mit einer SQL Server-Anmeldung eine Verbindung mit dem ursprünglichen SQL Server herstellen, empfiehlt es sich häufig, Unter Verwendung dieses Sicherheitskontexts auszuwählen und dann die erforderlichen Anmeldeinformationen für die Authentifizierung beim verknüpften Server anzugeben.
Wählen Sie eine der folgenden Optionen aus:
Nicht erstellt
Für die in der Liste nicht definierten Anmeldungen wird keine Verbindung hergestellt.
Erstellt werden, ohne einen Sicherheitskontext zu verwenden
Eine Verbindung wird hergestellt, ohne einen Sicherheitskontext für Anmeldungen zu verwenden, die nicht in der Liste definiert sind.
Mit dem aktuellen Sicherheitskontext der Anmeldung durchgeführt werden
Eine Verbindung wird mithilfe des aktuellen Sicherheitskontexts der Anmeldung für Anmeldungen hergestellt, die in der Liste nicht definiert sind. Wenn eine Verbindung mit dem lokalen Server mithilfe der Windows-Authentifizierung hergestellt wird, werden Ihre Windows-Anmeldeinformationen verwendet, um eine Verbindung mit dem Remoteserver herzustellen. Wenn eine Verbindung mit dem lokalen Server mithilfe der SQL Server-Authentifizierung hergestellt wird, werden Der Anmeldename und das Kennwort verwendet, um eine Verbindung mit dem Remoteserver herzustellen. In diesem Fall muss eine Anmeldung mit dem genau gleichen Namen und Kennwort auf dem Remoteserver vorhanden sein.
Unter Verwendung dieses Sicherheitskontexts erstellt werden
Für die nicht in dieser Liste definierten Anmeldungen wird eine Verbindung mithilfe der Anmeldung und des Kennworts hergestellt, die in den Feldern Remoteanmeldung und Mit Kennwort angegeben sind. Die Remoteanmeldung muss eine Anmeldung mit SQL Server-Authentifizierung auf dem Remoteserver sein.
Achtung
Wenn ein Verbindungsserver mit der Option In folgendem Sicherheitskontext verwendet konfiguriert ist, kann jeder Benutzer in der Instanz mithilfe dieses Kontexts auf den Remote-Verbindungsserver zugreifen. Dies kann das unbeabsichtigte Potenzial für Missbrauch oder böswilligen internen Zugriff haben. Der SQL-authentifizierten Entfernten Anmeldung für den Verbindungsserver sollten nur die erforderlichen Mindestberechtigungen für den Remoteserver erteilt werden, um das Prinzip der geringstmöglichen Berechtigungen zu gewährleisten und die Angriffsfläche zu verringern.
Bearbeiten der Eigenschaften des Verbindungsservers auf der Seite „Serveroptionen“ (Optional)
Wählen Sie Serveroptionen aus, um die Serveroptionen anzuzeigen oder anzugeben. Sie können die folgenden Optionen bearbeiten:
Kompatibel mit Sortierung
Betrifft die Ausführung verteilter Abfragen für verknüpfte Server. Wenn diese Option auf „true“ festgelegt ist, geht SQL Server davon aus, dass alle Zeichen im verknüpften Server hinsichtlich Zeichensatz und Sortierfolge (oder Sortierreihenfolge) mit dem lokalen Server kompatibel sind. Dies ermöglicht SQL Server, Vergleiche für Zeichenspalten an den Provider zu senden. Wird diese Option nicht festgelegt, werden vom SQL Server Vergleiche für Zeichenspalten immer lokal ausgewertet.
Diese Option sollte nur festgelegt werden, wenn sicher ist, dass die Datenquelle, die dem Verbindungsserver entspricht, den gleichen Zeichensatz und die gleiche Sortierreihenfolge wie der lokale Server verwendet.
Datenzugriff
Aktiviert bzw. deaktiviert einen Verbindungsserver für den Zugriff auf verteilte Abfragen.
RPC
Aktiviert Remoteprozeduraufruf (RPC) vom angegeben Server
RPC ausgehend
Aktiviert RPC zu dem angegebenen Server.
Entfernte Sortierung verwenden
Bestimmt, ob die Sortierung einer Remotespalte oder eines lokalen Servers verwendet wird.
Wenn True angegeben ist, wird für SQL Server-Datenquellen die Sortierung der Remotespalten und für Datenquellen, die keine SQL Server-Datenquellen sind, die im Sortierungsnamen angegebene Sortierung verwendet.
Bei False verwenden verteilte Abfragen immer die Standardsortierung des lokalen Servers, während der Sortierungsname und die Sortierung von Remotespalten ignoriert werden. Die Standardeinstellung ist „false“.
Sortierungsname
Gibt den Namen der von der Remotedatenquelle verwendeten Sortierung an, wenn für die Option zum Verwenden der Remotesortierung der Wert True festgelegt ist und es sich bei der Datenquelle nicht um eine SQL Server-Datenquelle handelt. Der Name muss einer der von SQL Server unterstützten Sortierungen entsprechen.
Verwenden Sie diese Option, wenn Sie auf eine OLE DB-Datenquelle zugreifen, die keine SQL Server-Datenquelle ist, deren Sortierreihenfolge jedoch mit einer der SQL Server-Sortierreihenfolgen übereinstimmt.
Der Verbindungsserver muss eine einzige Sortierung unterstützen, die für alle Spalten in diesem Server verwendet wird. Legen Sie diese Option nicht fest, wenn der Verbindungsserver mehrere Sortierungen in einer einzelnen Datenquelle unterstützt oder wenn festgestellt wird, dass die Sortierung des Verbindungsservers nicht mit einer der SQL Server-Sortierungen übereinstimmt.
Verbindungstimeout
Timeoutwert in Sekunden beim Herstellen einer Verbindung mit einem verknüpften Server.
Wenn
0, verwenden Sie densp_configureStandardwert der Option Timeout für Remoteanmeldung.Zeitüberschreitung bei der Abfrage
Timeoutwert in Sekunden für Abfragen an einen verknüpften Server.
Wenn
0, verwenden Sie densp_configureStandardwert der Option Remoteabfrage-Timeout.Höherstufung von verteilten Transaktionen aktivieren
Verwenden Sie diese Option, um die Aktionen einer Server-zu-Server-Prozedur durch eine Distributed Transaction Coordinator-Transaktion (MS DTC) zu schützen. Wenn diese Option den Wert TRUE hat, startet der Aufruf einer gespeicherten Remoteprozedur eine verteilte Transaktion und registriert die Transaktion bei MS DTC. Weitere Informationen finden Sie unter sp_serveroption.
Speichern des Verbindungsservers
Wählen Sie OK aus.
Anzeigen oder Bearbeiten von Anbieteroptionen für Verbindungsserver in SSMS
Nicht alle Anbieter verfügen über die gleichen Optionen. Bei einigen Typen von Daten sind z. B. Indizes verfügbar, für einige nicht. Mittels dieses Dialogfelds kann der SQL Server die Funktionen des Anbieters verstehen. SQL Server installiert einige allgemeine Datenanbieter; wenn das Produkt, das die Daten bereitstellt, jedoch geändert wird, unterstützt der von SQL Server installierte Anbieter möglicherweise nicht alle neuesten Funktionen. Die beste Informationsquelle zu den Funktionen des Produkts, das die Daten bereitstellt, ist die Dokumentation für dieses Produkt.
So öffnen Sie die Seite Anbieteroptionen des Verbindungsservers in SSMS:
- Öffnen Sie den Objekt-Explorer.
- Erweitern Sie Serverobjekte.
- Erweitern Sie Verknüpfte Server.
- Erweitern Sie Anbieter.
- Klicken Sie mit der rechten Maustaste auf einen Anbieter, und wählen Sie Eigenschaften aus.
Die Anbieteroptionen sind wie folgt definiert:
Dynamischer Parameter
Gibt an, dass der Anbieter die Parameter-Markierungssyntax für parametrisierte Abfragen zulässt
?. Legen Sie diese Option nur fest, wenn der Anbieter die ICommandWithParameters-Schnittstelle unterstützt und eine?als Parametermarkierung unterstützt. Durch diese Option kann SQL Server parametrisierte Abfragen für den Anbieter ausführen. Die Fähigkeit zur Ausführung parametrisierter Abfragen für den Anbieter kann bei bestimmten Abfragen zu einer verbesserten Leistung führen.Geschachtelte Abfragen
Gibt an, dass der Provider geschachtelte
SELECT-Anweisungen in derFROM-Klausel zulässt. Wenn Sie diese Option festlegen, kann SQL Server bestimmte Abfragen an den Anbieter delegieren, bei denen geschachtelteSELECT-Anweisungen in derFROM-Klausel erforderlich sind.Nur Ebene Null
Es werden nur OLE DB-Schnittstellen der Ebene 0 mit diesem Anbieter aufgerufen.
inprocess zulassen
SQL Server ermöglicht, dass der Anbieter als In-Process-Server instanziiert wird. Wenn diese Option nicht festgelegt ist, wird der Anbieter standardmäßig außerhalb des SQL Server-Prozesses instanziiert. Durch Instanziieren des Anbieters außerhalb des SQL Server-Prozesses wird der SQL Server-Prozess vor Fehlern beim Anbieter geschützt. Wenn der Anbieter außerhalb des SQL Server-Prozesses instanziiert wird, sind Updates oder Einfügungen nicht zulässig, die auf lange Spalten verweisen (text, ntext, or image).
Nicht durchgeführte Updates
SQL Server lässt Updates zu, selbst wenn ITransactionLocal nicht zur Verfügung steht. Wenn diese Option aktiviert ist, sind Updates für den Anbieter nicht wiederherstellbar, da der Anbieter keine Transaktionen unterstützt.
Index als Zugriffsmethode
SQL Server versucht, Indizes des Anbieters zum Abrufen von Daten zu verwenden. Standardmäßig werden Indizes nur für Metadaten verwendet und nicht geöffnet.
Ad-hoc-Zugriffe nicht zulassen
SQL Server erlaubt keinen Ad-hoc-Zugriff über die Funktionen OPENROWSET und OPENDATASOURCE auf den OLE DB-Anbieter. Wenn diese Option nicht festgelegt ist, ist in SQL Server kein Ad-hoc-Zugriff zulässig.
Unterstützt 'Like'-Operator
Gibt an, dass der Anbieter Abfragen mithilfe des
LIKESchlüsselworts unterstützt.
Erstellen eines Verbindungsservers mit Transact-SQL
Verwenden Sie zum Erstellen eines verknüpften Servers mithilfe von Transact-SQL die Anweisungen sp_addlinkedserver und CREATE LOGINsp_addlinkedsrvlogin.
In diesem Beispiel wird mithilfe von Transact-SQL ein Verbindungsserver in einer anderen SQL Server-Instanz erstellt:
Geben Sie im Abfrage-Editor den folgenden Transact-SQL-Befehl ein, um eine Verbindung mit einer SQL Server-Instanz namens
SRVR002\ACCTGherzustellen:USE [master]; GO EXECUTE master.dbo.sp_addlinkedserver @server = N'SRVR002\ACCTG', @srvproduct = N'SQL Server'; GOFühren Sie den folgenden Code aus, um den Verbindungsserver so zu konfigurieren, dass die Domänenanmeldeinformationen des Logins verwendet werden, das den Verbindungsserver verwendet.
EXECUTE master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'SRVR002\ACCTG', @locallogin = NULL, @useself = N'True'; GO
Follow up: Schritte, die ausgeführt werden müssen, nachdem Sie einen verknüpften Server erstellt haben
Mit den folgenden Schritten können Sie einen Verbindungsserver überprüfen.
Testen des verknüpften Servers
Ziehen Sie einen der beiden folgenden Ansätze in Betracht, um die Authentifizierung eines Verbindungsservers in Ihrem aktuellen Sicherheitskontext zu testen.
Um die Möglichkeit zu testen, eine Verbindung mit einem verknüpften Server in SSMS herzustellen, navigieren Sie zum verknüpften Server im Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den verknüpften Server, und wählen Sie dann " Verbindung testen" aus.
Um die Möglichkeit zu testen, eine Verbindung mit einem verknüpften Server in T-SQL herzustellen, führen Sie eine grundlegende
SELECTAnweisung aus, z. B. zum Abrufen grundlegender Datenbankkataloginformationen. Dieses Beispiel gibt die Namen der Datenbanken auf dem Verbindungsserver zurück.SELECT name FROM [SRVR002\ACCTG].master.sys.databases; GO
Tabellen aus einem Verbindungsserver verknüpfen
Verwenden Sie vierteilige Namen, um auf ein Objekt auf einem Verbindungsserver zu verweisen. Führen Sie folgenden Code aus, um eine Liste aller Anmeldenamen auf dem lokalen Server und die entsprechenden Anmeldenamen auf dem Verbindungsserver zurückzugeben.
SELECT local.name AS LocalLogins,
linked.name AS LinkedLogins
FROM master.sys.server_principals AS local
LEFT OUTER JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked
ON local.name = linked.name;
GO
Wenn für den Anmeldenamen des Verbindungsservers NULL zurückgegeben wird, zeigt dies an, dass der Anmeldename auf dem Verbindungsserver nicht vorhanden ist. Von diesen Anmeldenamen kann der Verbindungsserver erst verwendet werden, wenn der Verbindungsserver so konfiguriert wird, dass ein anderer Sicherheitskontext weitergegeben wird oder der Verbindungsserver anonyme Verbindungen akzeptiert.
Verknüpfte Server mit Azure SQL Managed Instance
Wenn Sie azure SQL Managed Instance verwenden, lesen Sie die folgenden Beispiele aus sp_addlinkedserver: