Konfigurieren von Berechtigungen für den Zugriff auf Remotedaten aus einer OLEDB-Datenquelle in SQL Server

In diesem Artikel wird beschrieben, wie Ad-hoc-Abfragen deaktiviert werden, die OPENDATASOURCE die OPENROWSET Funktionalität in SQL Server verwenden.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 327489

Zusammenfassung

Sie können sql Server als Ad-hoc-Methode verwenden oder OPENDATASOURCE Anweisungen verwendenOPENROWSET, um Daten von einem Remote-OLEDB-Anbieter einschließlich einer REMOTE-SQL Server-Instanz zu verbinden und darauf zuzugreifen. Diese Anweisungen können nur verwendet werden, um auf Remotedaten aus OLE DB-Datenquellen zuzugreifen, wenn die Registrierungsoption DisallowAdhocAccess für den angegebenen Anbieter explizit auf 0 festgelegt ist, und die erweiterte Ad-Hoc-Konfigurationsoption für verteilte Abfragen aktiviert ist. Wenn diese Optionen nicht festgelegt sind, lässt das Standardverhalten keinen Ad-hoc-Zugriff zu.

Dieser Artikel enthält zusätzliche Details zum Konfigurieren von DisallowAdhocAccess über SQL Server Management Studio und Registrierungseinstellungen sowie das Standardverhalten.

Deaktivieren des Ad-hoc-Zugriffs mithilfe von SQL Server Management Studio

Angeben der DisallowAdHocAccess Eigenschaft für den Anbieter in SQL Server Management Studio (SSMS)

  1. Öffnen Sie SSMS, und erweitern Sie Anbieter unter verknüpften Servern.

  2. Klicken Sie, um den OLE DB-Anbieter auszuwählen, den Sie verwenden möchten, und wählen Sie dann die Schaltfläche "Anbieteroptionen " aus.

  3. Scrollen Sie nach unten, und aktivieren Sie das Kontrollkästchen "Adhaloc-Zugriffseigenschaft nicht zulassen", und wählen Sie "OK" aus.

Deaktivieren des Ad-hoc-Zugriffs mithilfe des Registrierungs-Editors

Wichtig

Dieser Abschnitt, diese Methode bzw. diese Aufgabe enthält eine Beschreibung der Schritte zum Bearbeiten der Registrierung. Durch die falsche Bearbeitung der Registrierung können schwerwiegende Probleme verursacht werden. Daher müssen Sie sicherstellen, dass Sie diese Schritte sorgfältig ausführen. Für weiteren Schutz sichern Sie die Registrierung, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie unter: Sichern und Wiederherstellen der Registrierung Windows.

Nachdem ein verknüpfter Server gespeichert wurde, kann die DisallowAdHocAccess Eigenschaft nur über eine Registrierungseinstellung festgelegt werden.

Hinzufügen des Werts "DisallowAdHocAccess"

Führen Sie die folgenden Schritte aus, um den DisallowAdHocAccess Wert hinzuzufügen:

  1. Starten Sie den Registrierungs-Editor.

  2. Suchen Und wählen Sie dann den Schlüssel in der Registrierung aus: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers ProviderName<>

    Beispiel: Wenn Sie versuchen, dies für microsoft OLEDB-Anbieter für ODBC-Treiber zu ändern, lautet der Schlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQL

  3. Wählen Sie im Menü "Bearbeiten " die Option "Wert hinzufügen" aus, und fügen Sie dann diesen Registrierungswert hinzu:

    Value name: DisallowAdHocAccess
    Data type: REG_DWORD
    Radix: Hex
    Value data: 1
    
  4. Beenden Sie den Registrierungs-Editor.

Aktivieren des Ad-hoc-Remotezugriffs

Nachdem Sie sichergestellt haben, dass die erweiterte Ad Hoc-Konfigurationsoption für verteilte Abfragen aktiviert ist, müssen Sie die Registrierungsoption "DisallowAdhocAccess " für den angegebenen Anbieter auf 0 festlegen.

Führen Sie die folgenden Schritte aus, um einen vorhandenen DisallowAdHocAccess Wert zu ändern:

  1. Starten Sie den Registrierungs-Editor.

  2. Suchen Und wählen Sie dann den DisallowAdHocAccess Wert unter dem Schlüssel in der Registrierung aus: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers ProviderName<>

    Beispiel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0

  3. Wählen Sie im Menü "Bearbeiten" DWORD aus, geben Sie "1" ein, und wählen Sie dann "OK" aus.

  4. Beenden Sie den Registrierungs-Editor. Bei einer benannten Instanz unterscheidet sich der Registrierungsschlüssel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<ProviderName>

Erforderlicher Neustart

Eine Änderung des Werts von DisallowAdHocAccess 1 auf 0 erfordert keinen Neustart des SQL-Diensts, während eine Änderung von 0 zu 1 einen SQL-Dienstneustart für die vorgenommene Änderung erfordern müsste.

Standardverhalten

Ad-hoc-Zugriff auf Remote-OLE BD-Datenquellen, OPENROWSET die standardmäßig verwendet und OPENDATASOURCE deaktiviert werden, und es ist keine zusätzliche Konfiguration erforderlich. Sie müssen die im Artikel beschriebenen Verfahren nur verwenden, wenn dieser Remotezugriff zuvor explizit aktiviert wurde.

Notiz

Wenn Sie versuchen, diese Funktionen in Ad-hoc-Abfragen aufzurufen, erhalten Sie eine Fehlermeldung, die der folgenden Meldung ähnelt: Server: Msg 7415, Level 16, State 1, Line 1 Ad-hoc-Zugriff auf OLE DB-Anbieter "Microsoft.Jet.OLEDB.4.0" wurde verweigert. Sie müssen auf diesen Anbieter über einen Verbindungsserver zugreifen.

Anders ausgedrückt: Wenn die DisallowAdHocAccess Eigenschaft für einen bestimmten OLE DB-Anbieter auf 1 festgelegt ist, müssen Sie ein vordefiniertes verknüpftes Serversetup für den jeweiligen OLE DB-Anbieter verwenden. Sie können keine Ad-hoc-Verbindungszeichenfolge mehr übergeben, die auf diesen Anbieter oder OPENROWSET die OPENDATASOURCE Funktion verweist.

Siehe auch