Sdílet prostřednictvím


Konfigurace serveru: Ad Hoc distribuované dotazy

platí pro:SQL Server

SQL Server ve výchozím nastavení neumožňuje ad hoc distribuované dotazy používající OPENROWSET a OPENDATASOURCE. Pokud je tato možnost nastavená na 1, SQL Server povolí ad hoc přístup. Pokud tato možnost není nastavená nebo je nastavená 0, SQL Server nepovolí ad hoc přístup.

Ad hoc distribuované dotazy používají OPENROWSET a OPENDATASOURCE funkce pro připojení ke vzdáleným zdrojům dat, které používají OLE DB. OPENROWSET a OPENDATASOURCE měla by být použita pouze pro odkazování na zdroje dat OLE DB, ke kterým se přistupuje zřídka. Pro všechny zdroje dat, ke kterým se přistupuje více než několikrát, definujte propojený server.

Povolení použití ad hoc názvů znamená, že k poskytovateli má přístup jakýkoli ověřený účet SQL Serveru. Správci SQL Serveru by měli tuto funkci povolit pro poskytovatele, kteří jsou v bezpečí pro přístup k jakémukoli místnímu účtu.

Poznámky

Pokud se pokusíte provést ad hoc připojení se zakázaným Ad Hoc Distributed Queries připojením, zobrazí se následující chyba:

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 a Spravovaná instance Azure SQL

Referenční informace najdete v porovnání funkcí: Azure SQL Database a Azure SQL Managed Instance .

Examples

Následující příklad povolí a potom dotazuje Ad Hoc Distributed Queries server pojmenovaný Seattle1 pomocí OPENROWSET funkce.

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