Anteckning
Å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.
Gäller för:SQL Server
Som standard tillåter INTE SQL Server ad hoc-distribuerade frågor med hjälp av OPENROWSET och OPENDATASOURCE. När det här alternativet är inställt på 1tillåter SQL Server ad hoc-åtkomst. När det här alternativet inte har angetts eller är inställt på 0tillåter INTE SQL Server ad hoc-åtkomst.
Ad hoc-distribuerade frågor använder OPENROWSET funktionerna och OPENDATASOURCE för att ansluta till fjärranslutna datakällor som använder OLE DB.
OPENROWSET och OPENDATASOURCE bör endast användas för att referera till OLE DB-datakällor som används sällan. För alla datakällor som används mer än flera gånger definierar du en länkad server.
Om du aktiverar användning av ad hoc-namn innebär det att alla autentiserade SQL Server-konton kan komma åt providern. SQL Server-administratörer bör aktivera den här funktionen för leverantörer som är säkra för alla lokala konton att komma åt.
Anmärkningar
Om du försöker skapa en ad hoc-anslutning med Ad Hoc Distributed Queries inaktiverad visas följande fel:
Msg 7415, Level 16, State 1, Line 1
Ad hoc access to OLE DB provider 'Microsoft.ACE.OLEDB.12.0' has been denied. You must access this provider through a linked server.
Azure SQL Database och Azure SQL Managed Instance
Se Jämförelse av funktioner: Azure SQL Database och Azure SQL Managed Instance som referens.
Examples
Följande exempel aktiverar Ad Hoc Distributed Queries och frågar sedan en server med namnet Seattle1 med hjälp av OPENROWSET funktionen.
USE master;
GO
EXECUTE sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
SELECT a.*
FROM OPENROWSET ('MSOLEDBSQL', 'Server=Seattle1;Trusted_Connection=yes;', 'SELECT GroupName, Name, DepartmentID
FROM AdventureWorks2022.HumanResources.Department
ORDER BY GroupName, Name') AS a;
GO
EXECUTE sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO