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 AdventureWorks-Datenbank auf dem Verbindungsserver SEATTLESales.
SELECT p.Name, sod.SalesOrderID
FROM SEATTLESales.AdventureWorks.Production.Product p
INNER JOIN SEATTLESales.AdventureWorks.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.
Sicherheitshinweis |
---|
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 Sicherheitskontextes 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. |
Siehe auch