Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u ad-hocquery's uitschakelt die gebruikmaken van de OPENROWSET functionaliteit OPENDATASOURCE in SQL Server.
Oorspronkelijke productversie: SQL Server
Oorspronkelijk KB-nummer: 327489
Samenvatting
U kunt of OPENDATASOURCE instructies in SQL Server gebruiken OPENROWSET als ad-hocmethode om verbinding te maken met en toegang te krijgen tot gegevens van een externe OLEDB-provider, inclusief een extern SQL Server-exemplaar. Deze instructies kunnen alleen worden gebruikt voor toegang tot externe gegevens uit OLE DB-gegevensbronnen wanneer de registeroptie DisallowAdhocAccess expliciet is ingesteld op 0 voor de opgegeven provider en de geavanceerde configuratieoptie Ad Hoc gedistribueerde query's is ingeschakeld. Wanneer deze opties niet zijn ingesteld, is het standaardgedrag niet toegestaan voor ad-hoctoegang.
Dit artikel bevat aanvullende informatie over het configureren van DisallowAdhocAccess via SQL Server Management Studio en registerinstellingen, evenals het standaardgedrag.
Ad-hoctoegang uitschakelen met SQL Server Management Studio
Geef de DisallowAdHocAccess eigenschap op voor de provider in SQL Server Management Studio (SSMS)
Open SSMS en vouw Providers uit onder Gekoppelde servers.
Klik om de OLE DB-provider te selecteren die u wilt gebruiken en selecteer vervolgens de knop Provideropties .
Schuif omlaag en schakel het selectievakje Adhoc-toegangseigenschap niet toe en selecteer OK.
Ad-hoctoegang uitschakelen met registereditor
Belangrijk
Deze sectie, methode of taak bevat stappen voor het bewerken van het register. Als u het register op onjuiste wijze wijzigt, kunnen er echter grote problemen optreden. Zorg er daarom voor dat u de volgende stappen zorgvuldig volgt. Voor optimale veiligheid maakt u dagelijks een back-up van het register voordat u het wijzigt. Als er een probleem optreedt, kunt u het register altijd nog herstellen. Raadpleeg Een back-up maken van en het herstellen van het register in Windows voor meer informatie over het maken van een back-up en het herstellen van het register.
Nadat een gekoppelde server is opgeslagen, kan de DisallowAdHocAccess eigenschap alleen worden ingesteld via een registerinstelling.
De waarde DisallowAdHocAccess toevoegen
Voer de volgende stappen uit om de DisallowAdHocAccess waarde toe te voegen:
Start de Register-editor.
Zoek en selecteer vervolgens de sleutel in het register: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>
Voorbeeld: Als u dit wilt wijzigen voor Microsoft OLEDB-provider voor ODBC-stuurprogramma's, is de sleutel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQLSelecteer Waarde toevoegen in het menu Bewerken en voeg vervolgens deze registerwaarde toe:
Value name: DisallowAdHocAccess Data type: REG_DWORD Radix: Hex Value data: 1Sluit de Register-editor af.
Ad-hoc externe toegang inschakelen
Nadat u ervoor hebt gezorgd dat de geavanceerde configuratieoptie Ad Hoc gedistribueerde query's is ingeschakeld, moet u de registeroptie DisallowAdhocAccess instellen op 0 voor de opgegeven provider.
Voer de volgende stappen uit om een bestaande DisallowAdHocAccess waarde te wijzigen:
Start de Register-editor.
Zoek en selecteer vervolgens de waarde onder de
DisallowAdHocAccesssleutel in het register: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>Voorbeeld:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0Selecteer in het menu Bewerken DWORD, typ 1 en selecteer VERVOLGENS OK.
Sluit de Register-editor af. Voor een benoemd exemplaar is de registersleutel anders:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<ProviderName>
Vereisten voor opnieuw opstarten
Voor een wijziging van de waarde van 1 naar 0 hoeft de SQL-service niet opnieuw te worden opgestart, terwijl voor een wijziging van DisallowAdHocAccess 0 naar 1 een SQL-service opnieuw moet worden opgestart voor de wijziging die is aangebracht om effectief te worden.
Standaardgedrag
Ad-hoctoegang tot externe OLE BD-gegevensbronnen die worden gebruikt OPENROWSET en OPENDATASOURCE is standaard uitgeschakeld en er is geen aanvullende configuratie nodig. U moet de procedures in het artikel alleen gebruiken als deze externe toegang eerder expliciet is ingeschakeld.
Notitie
Als u met de standaardinstelling deze functies probeert aan te roepen in ad-hocquery's, ontvangt u een foutbericht dat lijkt op het volgende bericht: Server: Msg 7415, Niveau 16, Status 1, Regel 1 Ad-hoctoegang tot OLE DB-provider 'Microsoft.Jet.OLEDB.4.0' is geweigerd. U moet toegang krijgen tot deze provider via een gekoppelde server.
Met andere woorden, als de DisallowAdHocAccess eigenschap is ingesteld op 1 voor een specifieke OLE DB-provider, moet u een vooraf gedefinieerde gekoppelde serverinstallatie gebruiken voor de specifieke OLE DB-provider. U kunt geen ad-hoc verbindingsreeks die verwijst naar de OPENROWSET provider of de OPENDATASOURCE functie, niet meer doorgeven.