Поделиться через


Параметр ad hoc distributed queries

По умолчанию SQL Server не разрешает нерегламентированные распределенные запросы, использующие операторы OPENROWSET и OPENDATASOURCE. Если этот параметр равен 1, SQL Server допускает выполнение нерегламентированных распределенных запросов. Если этот параметр не задан или равен 0, SQL Server не разрешает нерегламентированный доступ.

В нерегламентированных распределенных запросах с помощью функций OPENROWSET и OPENDATASOURCE осуществляется подключение к удаленным источникам данных, использующим OLE DB. Функции OPENROWSET и OPENDATASOURCE должны использоваться с теми источниками данных OLE DB, обращения к которым происходят нечасто. Для источников данных, к которым обращение производится более чем несколько раз, определите связанный сервер.

Примечание по безопасностиПримечание по безопасности

Возможность использования нерегламентированных имен означает, что любое имя входа, прошедшее проверку подлинности SQL Server, имеет доступ к поставщику. Администраторы SQL Server должны включать эту возможность только для тех поставщиков, к которым можно обращаться по любой локальной учетной записи, если это не создает угрозы для безопасности. Дополнительные сведения см. в подразделе о параметре DisallowAdhocAccess, раздел Доступ к внешним данным.

Примеры

Следующий пример включает распределенные нерегламентированные запросы и выполняет запрос к серверу Seattle1 с использованием функции OPENROWSET.

sp_configure 'show advanced options', 1;
RECONFIGURE;
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
     'SELECT GroupName, Name, DepartmentID
      FROM AdventureWorks2008R2.HumanResources.Department
      ORDER BY GroupName, Name') AS a;
GO