Специальный доступ к провайдеру ole db «microsoft.ace.oledb.12.0» запрещен. вы должны получить доступ к этому провайдеру через связанный сервер

При попытке импортировать файл excel на сервер sql. произошла вышеуказанная ошибка.


person Faisal Mahmood    schedule 12.04.2019    source источник


Ответы (1)


Перейдите в раздел «Связанный сервер» > «Провайдеры» и дважды щелкните поставщика, который вы используете в запросе OPENROWSET, и проверьте, включен ли "Запретить специальный доступ", как показано ниже.

введите здесь описание изображения

Вы также можете найти значение этого параметра в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ИМЯ ЭКЗЕМПЛЯРА \PROVIDERS\SQLNCLI10. Запустите regedit, перейдите по указанному выше пути и найдите «DisallowAdHocAccess», как показано ниже.

введите здесь описание изображения

Мы можем отключить «Запретить нерегламентированный доступ» в свойствах поставщика SSMS, но он удаляет запись в реестре вместо изменения значения на ноль, и мы по-прежнему получаем ошибку нерегламентированного доступа к поставщику OLE DB.

Что нужно сделать, так это изменить эту запись реестра на ноль с единицы, чтобы это работало для входа в систему, не являющегося системным администратором. Итак, дважды щелкните запись и измените значение на ноль, а затем сохраните запись.

Несмотря на то, что «Запретить специальный доступ» отключен, нам нужно проверить запись реестра на «DisallowAdHocAccess». Если запись отсутствует, включите параметр в свойствах поставщика в SSMS, а затем отключите его, изменив значение в реестре на ноль.

person Gary Mendonca    schedule 12.04.2019
comment
когда я использую пользователя sa, ошибка не появляется, но другой пользователь sql выдает ошибку - person Faisal Mahmood; 12.04.2019