Настройка разрешений на доступ к удаленным данным из источника данных OLEDB в SQL Server
В этой статье описывается отключение нерегламентированных запросов, использующих функцию OPENROWSET
OPENDATASOURCE
или в SQL Server.
Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 327489
Сводка
Операторы или OPENDATASOURCE
в SQL Server можно использовать OPENROWSET
в качестве нерегламентированного метода для подключения к данным удаленного поставщика OLEDB и доступа к ним, включая удаленный экземпляр SQL Server. Эти инструкции можно использовать для доступа к удаленным данным из источников данных OLE DB только в том случае, если для параметра реестра DisallowAdhocAccess явно задано значение 0 для указанного поставщика, а параметр расширенной конфигурации Ad Hoc Distributed Queries включен. Если эти параметры не заданы, поведение по умолчанию не разрешает нерегламентированный доступ.
В этой статье содержатся дополнительные сведения о настройке DisallowAdhocAccess с помощью SQL Server Management Studio и параметров реестра, а также о поведении по умолчанию.
Отключение нерегламентированного доступа с помощью SQL Server Management Studio
DisallowAdHocAccess
Укажите свойство поставщика в SQL Server Management Studio (SSMS)
Откройте SSMS и разверните узел Поставщики в разделе Связанные серверы.
Щелкните, чтобы выбрать поставщика OLE DB, который вы хотите использовать, а затем нажмите кнопку Параметры поставщика .
Прокрутите вниз, установите флажок Запретить доступ к свойству adhoc и нажмите кнопку ОК.
Отключение нерегламентированного доступа с помощью редактора реестра
Важно!
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.
После сохранения DisallowAdHocAccess
связанного сервера свойство можно задать только с помощью параметра реестра.
Добавьте значение DisallowAdHocAccess.
Чтобы добавить DisallowAdHocAccess
значение, выполните следующие действия.
Откройте редактор реестра.
Найдите и выберите раздел в реестре :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>
Пример. Если вы пытаетесь изменить это значение для поставщика Microsoft OLEDB для драйверов ODBC, ключ будет следующим:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQL
В меню Правка выберите Добавить значение, а затем добавьте следующее значение реестра:
Value name: DisallowAdHocAccess Data type: REG_DWORD Radix: Hex Value data: 1
Закройте редактор реестра.
Включение нерегламентированного удаленного доступа
Убедившись, что параметр расширенной конфигурации Ad Hoc Distributed Queries включен, необходимо задать для параметра реестра DisallowAdhocAccessзначение 0 для указанного поставщика.
Чтобы изменить существующее DisallowAdHocAccess
значение, выполните следующие действия.
Откройте редактор реестра.
Найдите и выберите
DisallowAdHocAccess
значение в разделе реестра :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>.Пример:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0
В меню Правка выберите DWORD, введите 1 и нажмите кнопку ОК.
Закройте редактор реестра. Для именованного экземпляра раздел реестра отличается:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<ProviderName>
Требование перезапуска
Изменение значения DisallowAdHocAccess
с 1 на 0 не потребует перезапуска службы SQL, в то время как для изменения с 0 на 1 потребуется перезапуск службы SQL, чтобы изменения вступили в силу.
Заданное по умолчанию поведение
Нерегламентированный доступ к удаленным источникам данных OLE BD с использованием OPENROWSET
и OPENDATASOURCE
отключен по умолчанию, и дополнительная настройка не требуется. Процедуры, описанные в этой статье, необходимо использовать только в том случае, если удаленный доступ ранее был явно включен.
Примечание.
Если задано значение по умолчанию, при попытке вызвать эти функции в нерегламентированных запросах появляется сообщение об ошибке, похожее на следующее сообщение: Сервер: Msg 7415, Level 16, State 1, Line 1 Ad hoc access to OLE DB provider 'Microsoft.Jet.OLEDB.4.0' отклонен. Доступ к этому поставщику необходимо получить через связанный сервер.
Другими словами, если свойству DisallowAdHocAccess
присвоено значение 1 для конкретного поставщика OLE DB, необходимо использовать предопределенную настройку связанного сервера для конкретного поставщика OLE DB. Вы больше не можете передавать нерегламентированный строка подключения, который ссылается на этот поставщик на OPENROWSET
функцию OPENDATASOURCE
или .
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по