Verwendung die Einstellung DisallowAdhocAccess eingestellt wird zum Steuern des Zugriffs auf Verbindungsservern

Zusammenfassung

Dieser Artikel beschreibt das ad-hoc-Abfragen, die OPENROWSET oder OPENDATASOURCE-Funktion in Microsoft SQL Server verwenden, deaktiviert.

Transact-SQL-Anweisungen deaktivieren

Sie können Transact-SQL-Anweisungen deaktivieren, die Ad-hoc-Verbindungszeichenfolgen mit bestimmten OLE DB-Provider die Funktionen OPENROWSET und OPENDATASOURCE durch eine der folgenden Aktionen verwenden:

  • Erstellung ein Verbindungsservers auf einem Computer, auf dem SQL Server ausgeführt wird, können Sie die Eigenschaft DisallowAdhocAccess eingestellt wird für OLE DB-Provider angeben.
  • Verbindungsserver bereits vorhanden, können Sie die Registrierung manuell ändern, und fügen den Wert DisallowAdhocAccess eingestellt wird .

Geben Sie die Eigenschaft DisallowAdhocAccess eingestellt wird , beim Erstellen eines Verbindungsservers

Erstellung ein Verbindungsservers auf einem Computer, auf dem SQL Server ausgeführt wird, können Sie die Eigenschaft DisallowAdhocAccess eingestellt wird für OLE DB-Provider angeben. Gehen Sie hierzu folgendermaßen vor:
  1. Öffnen Sie SQL Server Enterprise Manager, und klicken Sie dann auf den Ordner Sicherheit des betreffenden Servers.
  2. Maustaste auf Verbindungsserver -Eintrag, und klicken Sie dann auf Neuer Verbindungsserver.
  3. Aktivieren Sie den OLE DB-Provider verwenden möchten und klicken Sie Anbieteroptionen .
  4. Bildlauf, und aktivieren Sie das Kontrollkästchen Eigenschaft Disallow Ad-hoc-Zugriff . Die Erstellung der Verbindungsserver Eintrag Fertig stellen weiter.

Manuelles Bearbeiten der Registrierung und Mehrwert DisallowAdhocAccess eingestellt wird

Nach dem Speichern eines Verbindungsservers kann die Eigenschaft DisallowAdhocAccess eingestellt wird durch eine Einstellung in der Registrierung festgelegt werden.

Hinweis Zwei Illustrationen sind nur Beispiele für OLE DB-Provider für beide ODBC und SQL Server OLE DB-Provider ändern. Wenn Sie einen anderen OLE DB-Anbieter verwenden möchten, müssen Sie diesen Anbieter Eintrag ändern.

Wichtig Dieser Abschnitt bzw. die Methode oder Aufgabe enthält Schritte, die erklären, wie Sie die Registrierung ändern. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie die folgenden Schritte sorgfältig ausführen. Sichern Sie die Registry für zusätzlichen Schutz, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, falls ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756 zum Sichern und Wiederherstellen der Registrierung in Windows

Mehrwert DisallowAdhocAccess eingestellt wird

Schritte zum Hinzufügen des Werts DisallowAdhocAccess eingestellt wird :

  1. Starten Sie den Registrierungs-Editor.
  2. Suchen und klicken Sie dann auf den folgenden Schlüssel in der Registrierung:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\<ProviderName>
    Beispiel

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQL

  3. Klicken Sie im Menü Bearbeiten auf Wert hinzufügenund fügen Sie diesen Registrierungswert:
       Value name: DisallowAdHocAccess
    Data type: REG_DWORD
    Radix: Hex
    Value data: 1
  4. Beenden Sie den Registrierungseditor.

Ändern eines vorhandenen Werts DisallowAdhocAccess eingestellt wird

Ändern einen vorhandenen Wert DisallowAdhocAccess eingestellt wird , gehen Sie folgendermaßen vor:

  1. Starten Sie den Registrierungs-Editor.
  2. Suchen Sie und klicken Sie dann auf die DisallowAdhocAccess eingestellt wird unter dem folgenden Schlüssel in der Registrierung:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\<ProviderName>
    Beispiel

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0
  3. Im Menü Bearbeiten klicken Sie auf DWORD, geben Sie 1ein und klicken Sie auf OK.
  4. Beenden Sie den Registrierungseditor.
Für eine benannte Instanz unterscheidet der Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ < Instanzname > \Providers\ < ProviderName >

Hinweis
  • Eine Änderung des Werts der DisallowAdHocAscess von 1 auf 0 benötigt keinen Neustart des SQL-Dienstes eine Änderung von 0 auf 1 hätte ein SQL-Dienst starten für die Änderung, die vorgenommen wurde, wirksam wird.
  • Mit der DisallowAdhocAccess eingestellt wird -Eigenschaft auf 1 festgelegt lässt SQL Server keine ad-hoc-Zugriff über die OPENROWSET und OPENDATASOURCE Funktionen für den angegebenen OLE DB-Anbieter. Wenn Sie versuchen, diese Funktionen in ad-hoc-Abfragen aufrufen, erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:
    Server: Msg 7415, Ebene 16, Status 1, Zeile 1 Ad-hoc-Zugriff auf OLE DB-Provider 'Microsoft.Jet.OLEDB.4.0' wurde verweigert. Sie müssen diesen Anbieter über einen Verbindungsserver zugreifen.
    Mit der DisallowAdhocAccess eingestellt wird -Eigenschaft für eine OLE DB-Anbieter auf 1 festgelegt, müssen Sie also vordefinierten Verbindungsserver einrichten für bestimmte OLE DB-Provider verwenden. Sie können nicht mehr in einer ad-hoc-Verbindungszeichenfolge übergeben, die diesen Anbieter OPENROWSET oder OPENDATASOURCE -Funktion verweist.


Referenzen

SQL Server-Onlinedokumentation; Themen: "Konfigurieren von OLE DB-Providers für verteilte Abfragen"; "OPENROWSET Transact-SQL-Referenz"; "OPENDATASOURCE Transact-SQL Reference"

Eigenschaften

Artikelnummer: 327489 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback