Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den OPENROWSET OPENDATASOURCE här artikeln beskrivs hur du inaktiverar ad hoc-frågor som använder funktionerna eller i SQL Server.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 327489
Sammanfattning
Du kan använda OPENROWSET eller OPENDATASOURCE -instruktioner i SQL Server som en ad hoc-metod för att ansluta och komma åt data från en oledb-fjärrprovider, inklusive en SQL Server-fjärrinstans. Dessa instruktioner kan endast användas för att komma åt fjärrdata från OLE DB-datakällor när registeralternativet DisallowAdhocAccess uttryckligen är inställt på 0 för den angivna providern, och det avancerade konfigurationsalternativet Ad Hoc Distributed Queries är aktiverat. När dessa alternativ inte har angetts tillåter standardbeteendet inte ad hoc-åtkomst.
Den här artikeln innehåller ytterligare information om hur du konfigurerar DisallowAdhocAccess via SQL Server Management Studio och registerinställningar samt standardbeteendet.
Inaktivera ad hoc-åtkomst med SQL Server Management Studio
DisallowAdHocAccess Ange egenskapen för providern i SQL Server Management Studio (SSMS)
Öppna SSMS och expandera Providers under Länkade servrar.
Klicka för att välja den OLE DB-provider som du vill använda och välj sedan knappen Provideralternativ .
Rulla nedåt och markera kryssrutan Tillåt inte åtkomst till adhoc och välj OK.
Inaktivera ad hoc-åtkomst med hjälp av registereditorn
Viktigt!
Det här avsnittet, metoden eller uppgiften innehåller steg som beskriver hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför noggrant dessa steg. För extra skydd, säkerhetskopiera registret innan du ändrar det. Då kan du återställa registret om det uppstår problem. Mer information om hur du säkerhetskopierar och återställer registret finns i Hur du säkerhetskopierar och återställer registret i Windows.
När en länkad server har sparats kan egenskapen DisallowAdHocAccess endast anges via en registerinställning.
Lägg till värdet DisallowAdHocAccess
Följ dessa DisallowAdHocAccess steg för att lägga till värdet:
Öppna Registereditorn.
Leta upp och välj sedan nyckeln i registret: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>
Exempel: Om du försöker ändra detta för Microsoft OLEDB-providern för ODBC-drivrutiner är nyckeln:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQLPå menyn Redigera väljer du Lägg till värde och lägger sedan till det här registervärdet:
Value name: DisallowAdHocAccess Data type: REG_DWORD Radix: Hex Value data: 1Avsluta Registereditorn.
Aktivera ad hoc-fjärråtkomst
När du har säkerställt att det avancerade konfigurationsalternativet Ad Hoc Distributed Queries är aktiverat måste du ange registeralternativet DisallowAdhocAccess till 0 för den angivna providern.
Följ dessa steg om du vill ändra ett befintligt DisallowAdHocAccess värde:
Öppna Registereditorn.
Leta upp och välj
DisallowAdHocAccesssedan värdet under nyckeln i registret: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>Exempel:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0På menyn Redigera väljer du DWORD, skriver 1 och väljer sedan OK.
Avsluta Registereditorn. För en namngiven instans är registernyckeln annorlunda:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<ProviderName>
Krav på omstart
En ändring av DisallowAdHocAccess värdet från 1 till 0 skulle inte kräva en omstart av SQL-tjänsten, medan en ändring från 0 till 1 måste ha en OMSTART av SQL-tjänsten för att ändringen ska börja gälla.
Standardbeteende
Ad hoc-åtkomst för fjärranslutna OLE BD-datakällor med och OPENROWSET OPENDATASOURCE är inaktiverad som standard och ingen ytterligare konfiguration krävs. Du behöver bara använda de procedurer som beskrivs i artikeln om den här fjärråtkomsten tidigare uttryckligen har aktiverats.
Kommentar
Om du försöker anropa dessa funktioner i ad hoc-frågor med standardinställningen får du ett felmeddelande som liknar följande meddelande: Server: Msg 7415, Level 16, State 1, Line 1 Ad hoc access to OLE DB provider 'Microsoft.Jet.OLEDB.4.0' har nekats. Du måste komma åt den här providern via en länkad server.
Med DisallowAdHocAccess egenskapen 1 för en specifik OLE DB-provider måste du med andra ord använda en fördefinierad konfiguration av länkad server för den specifika OLE DB-providern. Du kan inte längre skicka in en ad hoc-anslutningssträng som refererar till providern OPENROWSET till funktionen eller OPENDATASOURCE .