Конфигурация сервера: нерегламентированные распределенные запросы
Область применения: SQL Server
По умолчанию SQL Server не разрешает использование и нерегламентированные OPENROWSET
OPENDATASOURCE
распределенные запросы. Если этот параметр задан 1
, SQL Server разрешает специальный доступ. Если этот параметр не задан или задан в значение 0
, SQL Server не разрешает нерегламентированный доступ.
Нерегламентированные распределенные запросы подключаются к удаленным источникам данных, использующим OLE DB, с помощью функций OPENROWSET
и OPENDATASOURCE
. OPENROWSET
и OPENDATASOURCE
следует использовать только для ссылки на источники данных OLE DB, к которым часто обращаются. Для всех источников данных, к которым обращается более нескольких раз, определите связанный сервер.
Включение использования нерегламентированных имен означает, что любая учетная запись SQL Server с проверкой подлинности может получить доступ к поставщику. Администраторы SQL Server должны включить эту функцию для поставщиков, безопасных для доступа к любой локальной учетной записи.
Замечания
Если вы пытаетесь сделать нерегламентированное подключение с Ad Hoc Distributed Queries
отключенным, вы увидите следующую ошибку:
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.
База данных SQL Azure и Управляемый экземпляр SQL Azure
Подробнее см. статью Сравнение функций: База данных SQL Azure и Управляемый экземпляр SQL Azure.
Примеры
Следующий пример включает и запрашивает Ad Hoc Distributed Queries
сервер с именем Seattle1
с помощью OPENROWSET
функции.
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