Identifizieren einer Datenquelle mithilfe eines Verbindungsservernamens

Wenn Sie einen Verbindungsserver definiert haben, können Sie auf diesem auf Datenobjekte verweisen, indem Sie Transact-SQL-Anweisungen mit vierteiligen Namen verwenden: linked_server_name**.catalog.**schema.object_name . Die Teile sind wie folgt definiert:

  • linked_server_name
    Der Verbindungsserver, der auf die OLE DB-Datenquelle verweist.

  • catalog
    Der Katalog in der OLE DB-Datenquelle, der das Objekt enthält.

  • schema
    Das Schema im Katalog, das das Objekt enthält.

  • object_name
    Das Datenobjekt in dem Schema.

So verweist beispielsweise die folgende Abfrage auf die Tabellen Production.Product und Sales.SalesOrderDetails in der AdventureWorks2008R2-Datenbank auf dem Verbindungsserver SEATTLESales.

SELECT p.Name, sod.SalesOrderID

FROM SEATTLESales.AdventureWorks2008R2.Production.Product p

INNER JOIN SEATTLESales.AdventureWorks2008R2.Sales.SalesOrderDetail sod

ON p.ProductID = sod.ProductID

ORDER BY p.Name ;

SQL Server verwendet linked_server_name, um den OLE DB-Anbieter und die Datenquelle zu identifizieren. Die Parameter catalog, schema und object_name werden an den OLE DB-Anbieter übergeben, um ein bestimmtes Datenobjekt zu identifizieren. Wenn der Verbindungsserver auf eine Instanz von SQL Server verweist, verweist catalog auf eine Datenbank und schema auf ein Schema.

In früheren Versionen von SQL Server entspricht das Schema dem Besitzer eines Objekts. In SQL Server sind Schemas von dem Datenbankbenutzer, der sie erstellt hat, unabhängig. Weitere Informationen zu Schemas in SQL Server finden Sie unter Trennung von Benutzer und Schema.

Wenn Sie mit Objekten auf Verbindungsservern arbeiten, sollten Sie immer vollqualifizierte Namen verwenden. Die implizite Auflösung für den Namen des dbo-Besitzers wird für Tabellen in Verbindungsservern nicht unterstützt. Deshalb generiert eine Abfrage, die keinen Schemanamen angibt, den Fehler 7313, selbst wenn es sich beim Verbindungsserver um eine weitere Instanz von SQL Server handelt.

Der Systemadministrator kann den Zugriff von Benutzern auf einen bestimmten Verbindungsserver steuern, indem er mithilfe der gespeicherten Systemprozedur sp_addlinkedsrvlogin Anmeldungszuordnungen einrichtet. Diese gespeicherte Prozedur ermöglicht, Remoteanmeldungen und -kennwörter für lokale Anmeldungen einzurichten. Sie ermöglicht außerdem, für Windows-authentifizierte Anmeldungen Selbstzuordnungen einzurichten.

SicherheitshinweisSicherheitshinweis

Wenn eine Verbindung mit einer anderen Datenquelle hergestellt wird, nimmt SQL Server die Identität bei Windows-authentifizierten Anmeldungen entsprechend an; SQL Server kann jedoch nicht die Identität von SQL Server-authentifizierten Anmeldungen annehmen. Bei SQL Server-authentifizierten Anmeldungen greift SQL Server daher auf andere Datenquellen wie z. B. auf Dateien oder nicht relationale Datenquellen wie Active Directory mithilfe des Sicherheitskontexts des Windows-Kontos zu, unter dem der SQL Server-Dienst ausgeführt wird. Auf diese Weise ist es potenziell möglich, dass Anmeldungen auf Datenquellen zugreifen, für die sie keine Berechtigungen besitzen, da das Konto, unter dem der SQL Server-Dienst ausgeführt wird, über die Berechtigungen verfügt. Diese Möglichkeit sollte berücksichtigt werden, wenn der Zugriff auf einen Verbindungsserver mithilfe von sp_addlinkedsrvlogin über eine SQL Server-authentifizierte Anmeldung erteilt wird.