Я пытаюсь предоставить пользователю доступ к экспорту данных из SQL Server в файл Excel с помощью OPENROWSET.
Пользователь получает следующую ошибку:
Невозможно инициализироватьобъект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)".
Мы можем воспроизвести проблему, выполнив следующий блок кода, который я могу запуститьуспешно, и пользователь не может:
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; HDR=YES;IMEX=0; Database=\\servername\exportdirectory\exportfile.xlsx', 'Select ExcelColumn from [TabName$]')
SELECT TOP 1 SQLColumn FROM SQLTable
Единственное различие, которое я вижу между пользователями, состоит в том, что те, кто может успешно выполнить эту команду и получить данные в Excel, являются администраторами на сервере Windows, на котором размещены оба экземпляра SQL.и целевой каталог.
Пользователь, который не может выполнить код, имеет права полного доступа к целевому файловому каталогу, в котором находится файл excel, и имеет разрешения sysadmin для экземпляра SQL.
Есть ли способ разрешитьэтого пользователя для записи в этот файл без предоставления полных прав администратора сервера на самом сервере Windows?