(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

OPENDATASOURCE (Transact-SQL)

Stellt Ad-hoc-Verbindungsinformationen als Teil eines vierteiligen Objektnamens ohne Verwendung eines Verbindungsservernamens bereit.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version).

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

OPENDATASOURCE ( provider_name, init_string )

provider_name

Der Namen, der als PROGID des OLE DB-Anbieters für den Zugriff auf die Datenquelle registriert ist. provider_name ist vom Datentyp char und hat keinen Standardwert.

init_string

Die Verbindungszeichenfolge, die an die IDataInitialize-Schnittstelle des Zielanbieters übergeben wird. Die Syntax der Anbieterzeichenfolge basiert auf durch Semikolons getrennten Paaren aus Schlüsselwort und Wert in der Form: 'keyword1=value;keyword2=value'.

Informationen zu bestimmten, vom Anbieter unterstützten Paaren aus Schlüsselwort und Wert finden Sie im MDAC SDK (Microsoft Data Access Components Software Development Kit). In dieser Dokumentation wird die grundlegende Syntax definiert. In der folgenden Tabelle werden die am häufigsten im init_string-Argument verwendeten Schlüsselwörter aufgelistet.

Schlüsselwort

OLE DB-Eigenschaft

Gültige Werte und Beschreibung

Datenquelle

DBPROP_INIT_DATASOURCE

Name der Datenquelle, mit der eine Verbindung hergestellt werden soll. Unterschiedliche Anbieter interpretieren diesen Namen auf unterschiedliche Arten. Für den OLE DB-Anbieter von SQL Server Native Client gibt er den Servernamen an. Für den OLE DB-Anbieter von Jet gibt er den vollständigen Pfad der MDB- oder XLS-Datei an.

Speicherort

DBPROP_INIT_LOCATION

Speicherort der Datenbank, mit der eine Verbindung hergestellt werden soll.

Extended Properties

DBPROP_INIT_PROVIDERSTRING

Anbieterspezifische Verbindungszeichenfolge.

Connect timeout

DBPROP_INIT_TIMEOUT

Timeoutwert, bei dessen Erreichen der Verbindungsversuch einen Fehler erzeugt.

User ID

DBPROP_AUTH_USERID

Für die Verbindung zu verwendende Benutzer-ID.

Kennwort

DBPROP_AUTH_PASSWORD

Für die Verbindung zu verwendendes Kennwort.

Catalog

DBPROP_INIT_CATALOG

Name des Anfangs- oder Standardkatalogs beim Herstellen einer Verbindung mit der Datenquelle.

Integrierte Sicherheit

DBPROP_AUTH_INTEGRATED

SSPI, zur Angabe der Windows-Authentifizierung

OPENDATASOURCE kann nur dann für den Zugriff auf Remotedaten aus OLE DB-Datenquellen verwendet werden, wenn die DisallowAdhocAccess-Registrierungsoption explizit für den angegebenen Anbieter auf 0 festgelegt und die erweiterte Konfigurationsoption Ad Hoc Distributed Queries aktiviert wird. Wenn diese Optionen nicht festgelegt sind, ermöglicht das Standardverhalten keinen Ad-hoc-Zugriff.

Die OPENDATASOURCE-Funktion kann an denselben Stellen in der Transact-SQL-Syntax verwendet werden wie ein Verbindungsservername. Deshalb kann OPENDATASOURCE als erster Teil eines vierteiligen Namens verwendet werden, der in einer SELECT-, INSERT-, UPDATE-, oder DELETE-Anweisung auf einen Tabellen- oder Sichtnamen bzw. in einer EXECUTE-Anweisung auf eine remote gespeicherte Prozedur verweist. Beim Ausführen von remote gespeicherten Prozeduren muss OPENDATASOURCE auf eine andere SQL Server-Instanz verweisen. Für die Argumente von OPENDATASOURCE können keine Variablen verwendet werden.

Wie die OPENROWSET-Funktion sollte OPENDATASOURCE nur auf OLE DB-Datenquellen verweisen, auf die selten zugegriffen wird. Definieren Sie Verbindungsserver für Datenquellen, auf die nicht nur ein paar Mal zugegriffen wird. Weder OPENDATASOURCE noch OPENROWSET stellen die gesamte Funktionalität einer Verbindungsserverdefinition bereit, wie die Sicherheitsverwaltung und die Möglichkeit, Kataloginformationen abzufragen. Alle Verbindungsinformationen, einschließlich Kennwörtern, müssen bei jedem Aufruf von OPENDATASOURCE bereitgestellt werden.

Wichtiger Hinweis Wichtig

Die Windows-Authentifizierung bietet deutlich mehr Sicherheit als die SQL Server-Authentifizierung. Sie sollten nach Möglichkeit immer die Windows-Authentifizierung verwenden. OPENDATASOURCE sollte nicht mit expliziten Kennwörtern in der Verbindungszeichenfolge verwendet werden.

Die Verbindungsanforderungen für jeden Anbieter sind vergleichbar mit den Anforderungen an die Parameter, die zum Erstellen von Verbindungsservern verwendet werden. Details für viele allgemeine Anbieter sind im Thema sp_addlinkedserver (Transact-SQL) aufgeführt.

Jeder Aufruf von OPENDATASOURCE, OPENQUERY oder OPENROWSET in der FROM-Klausel wird einzeln und unabhängig von anderen Aufrufen dieser Funktionen ausgewertet, die als Ziel des Updates verwendet werden, auch wenn für die beiden Aufrufe identische Argumente angegeben werden. Insbesondere haben Filter- oder Joinbedingungen, die auf das Ergebnis eines dieser Aufrufe angewendet werden, keine Auswirkungen auf die Ergebnisse des jeweils anderen.

Jeder Benutzer kann OPENDATASOURCE ausführen. Die Berechtigungen, die zum Herstellen einer Verbindung mit dem Remoteserver verwendet werden, werden anhand der Verbindungszeichenfolge bestimmt.

Im folgenden Beispiel wird eine Ad-hoc-Verbindung mit der Payroll-Instanz von SQL Server auf dem Server London erstellt, und die AdventureWorks2012.HumanResources.Employee-Tabelle wird abgefragt. (Wenn Sie SQLNCLI verwenden, leitet SQL Server zur neuesten Version des OLE DB-Anbieters von SQL Server Native Client um.)

SELECT *
FROM OPENDATASOURCE('SQLNCLI',
    'Data Source=London\Payroll;Integrated Security=SSPI')
    .AdventureWorks2012.HumanResources.Employee

Im folgenden Beispiel wird eine Ad-hoc-Verbindung zu einem Excel-Arbeitsblatt im Format 1997 – 2003 hergestellt.

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft