Erstellen von Verbindungsservern (SQL Server-Datenbankmodul)

Durch Erstellen eines Verbindungsservers können Sie mit Daten aus mehreren Quellen arbeiten. Der Verbindungsserver muss keine weitere Instanz von SQL Server sein, allerdings ist dies ein gängiges Szenario. In diesem Thema wird die Erstellung eines Verbindungsservers und das Zugreifen auf Daten von einem anderen SQL Server erläutert.

In diesem Thema

  • Vorbereitungen:

    Hintergrund

    Sicherheit

  • Beispiele:

    SQL Server Management Studio

    Transact-SQL

  • Nachverfolgung: Nach der Erstellung eines Verbindungsservers zu unternehmende Schritte

Hintergrund

Ein Verbindungsserver ermöglicht den Zugriff auf verteilte, heterogene Abfragen für OLE DB-Datenquellen. 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 Instanz von SQL Server definiert wird, können remote gespeicherte Prozeduren ausgeführt werden.

Die Funktionen und erforderlichen Argumente des Verbindungsservers können erheblich abweichen. In diesem Thema werden typische Beispiele aufgeführt, allerdings werden nicht alle Optionen beschrieben. Weitere Informationen finden Sie unter sp_addlinkedserver (Transact-SQL).

Sicherheit

Berechtigungen

Erfordert ALTER ANY LINKED SERVER-Berechtigung auf dem Server.

[Nach oben]

So erstellen Sie einen Verbindungsserver

Sie können eine der folgenden Anwendungen verwenden:

  • SQL Server Management Studio

  • Transact-SQL

Verwenden von SQL Server Management Studio

So erstellen Sie einen Verbindungsserver für eine andere Instanz von SQL Server anhand von SQL Server Management Studio

  1. Öffnen Sie in SQL Server Management Studio den Objekt-Explorer, erweitern Sie Serverobjekte, klicken Sie mit der rechten Maustaste auf Verbindungsserver, und klicken Sie auf Neuer Verbindungsserver.

  2. Geben Sie auf der Seite Allgemein im Feld Verbindungsserver den Namen der Instanz von SQL Server ein, mit der Sie eine Verknüpfung herstellen möchten.

    HinweisHinweis

    Wenn die Instanz von SQL Server die Standardinstanz ist, geben Sie den Namen des Computers ein, auf dem die Instanz von SQL Server gehostet wird. Wenn der SQL Server eine benannte Instanz ist, geben Sie den Namen des Computers und den Namen der Instanz ein, z. B. Accounting\SQLExpress.

  3. Wählen Sie im Bereich Servertyp die Option SQL Server aus, um anzugeben, dass der Verbindungsserver eine weitere Instanz von SQL Server ist.

  4. Geben Sie auf der Seite Sicherheit den Sicherheitskontext an, der beim Herstellen einer Verbindung mit dem Verbindungsserver durch den originalen SQL Server verwendet wird. 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. Stellen die Benutzer die Verbindung mit dem originalen SQL Server anhand eines SQL Server-Anmeldenamens her, empfiehlt sich häufig die Auswahl von In folgendem Sicherheitskontext verwendet, um anschließend die nötigen Anmeldeinformationen zur Authentifizierung am Verbindungsserver bereitzustellen.

  5. Klicken Sie auf OK.

[Nach oben]

Verwenden von Transact-SQL

Um einen Verbindungsserver mit Transact-SQL zu erstellen, verwenden Sie die sp_addlinkedserver (Transact-SQL)CREATE LOGIN (Transact-SQL)- und sp_addlinkedsrvlogin (Transact-SQL)-Anweisungen.

So erstellen Sie einen Verbindungsserver für eine andere Instanz von SQL Server anhand von Transact-SQL

  1. Geben Sie im Abfrage-Editor folgenden Transact-SQL-Befehl ein, um eine Instanz von SQL Server mit dem Namen SRVR002\ACCTG zu verknüpfen:

    USE [master]
    GO
    EXEC master.dbo.sp_addlinkedserver 
        @server = N'SRVR002\ACCTG', 
        @srvproduct=N'SQL Server' ;
    GO
    
  2. Führen Sie folgenden Code aus, um den Verbindungsserver zur Verwendung der Domänenanmeldeinformationen des Anmeldenamens zu konfigurieren, der den Verbindungsserver verwendet.

    EXEC master.dbo.sp_addlinkedsrvlogin 
        @rmtsrvname = N'SRVR002\ACCTG', 
        @locallogin = NULL , 
        @useself = N'True' ;
    GO
    

[Nach oben]

Nachverfolgung: Nach der Erstellung eines Verbindungsservers zu unternehmende Schritte

So testen Sie den Verbindungsserver

  • Führen Sie folgenden Code aus, um die Verbindung mit dem Verbindungsserver zu testen. Das Beispiel gibt die Namen der Datenbanken auf dem Verbindungsserver zurück.

    SELECT name FROM [SRVR002\ACCTG].master.sys.sysdatabases ;
    GO
    

Schreiben einer Abfrage, von der Tabellen von einem Verbindungsserver verknüpft werden

  • 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 JOIN [SRVR002\ACCTG].master.sys.server_principals AS linked
        ON local.name = linked.name ;
    GO
    

    Wenn für den Anmeldenamen vom Verbindungsserver 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.

[Nach oben]