При попытке импортировать файл excel на сервер sql. произошла вышеуказанная ошибка.
Специальный доступ к провайдеру ole db «microsoft.ace.oledb.12.0» запрещен. вы должны получить доступ к этому провайдеру через связанный сервер
Ответы (1)
Перейдите в раздел «Связанный сервер» > «Провайдеры» и дважды щелкните поставщика, который вы используете в запросе OPENROWSET, и проверьте, включен ли "Запретить специальный доступ", как показано ниже.
Вы также можете найти значение этого параметра в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ИМЯ ЭКЗЕМПЛЯРА \PROVIDERS\SQLNCLI10. Запустите regedit, перейдите по указанному выше пути и найдите «DisallowAdHocAccess», как показано ниже.
Мы можем отключить «Запретить нерегламентированный доступ» в свойствах поставщика SSMS, но он удаляет запись в реестре вместо изменения значения на ноль, и мы по-прежнему получаем ошибку нерегламентированного доступа к поставщику OLE DB.
Что нужно сделать, так это изменить эту запись реестра на ноль с единицы, чтобы это работало для входа в систему, не являющегося системным администратором. Итак, дважды щелкните запись и измените значение на ноль, а затем сохраните запись.
Несмотря на то, что «Запретить специальный доступ» отключен, нам нужно проверить запись реестра на «DisallowAdHocAccess». Если запись отсутствует, включите параметр в свойствах поставщика в SSMS, а затем отключите его, изменив значение в реестре на ноль.