Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
Андрей Усачёв
Member

Откуда: Рига, Латвия
Сообщений: 128
SQL Server 2008 (10.60.2772)

select * from openrowset('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=\\SERVER2\path\file.xls', 'SELECT * FROM [Sheet1$]') as D

Когда файл находится локально на самом сервере -- всё работает.
Когда подключаюсь с аутентификацией SQL-сервера -- работает.
Когда через Remote Desktop захожу на SQL-сервер и запускаю оттуда -- работает.
Но когда я подключаюсь со своего компьютера с доменной аутентификацией, а файл находится не на SQL-сервере, я получаю ошибку:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".

На временный каталог пользователя, из-под кототорого запущен SQL-сервер, все права у Everyone. У этого пользователя, а также у меня есть все права на открываемый XLS-файл и все каталоги по пути к нему. В той комбинации, где запрос возвращает ошибку, нормально выполняется следующий запрос:

exec master..xp_cmdshell 'dir "\\SERVER2\path\file.xls"'


Мистика!
7 сен 12, 18:07    [13132026]     Ответить | Цитировать Сообщить модератору
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
##?
Guest
тут нет ни слова про права. ошибка не в этом.
например, такое же можно получить, если обратиться к существующему файлу Аксесс,
но указать неправильное имя таблицы.
7 сен 12, 18:21    [13132090]     Ответить | Цитировать Сообщить модератору
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
nezhadnye_my
Guest
если читаемый через openrowset файл Экселя кто-то перед этим открыл, то именно эта ошибка вываливается.
закрываем файл, ошибка исчезает
7 сен 12, 23:55    [13133140]     Ответить | Цитировать Сообщить модератору
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
Андрей Усачёв
Member

Откуда: Рига, Латвия
Сообщений: 128
Файл никто не держит открытым: я один и тот же файл копирую на разные компьютеры и обращаюсь к нему SQL-сервером, а другие пользователи об этом файле не знают. По этой же причине не может быть указано неправильние название таблицы (рабочего листа Excel): на локальном компьютере в этом же файле этот же самый лист под этим же названием нормально находится.

:(
10 сен 12, 11:03    [13138669]     Ответить | Цитировать Сообщить модератору
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
имя сервера
Guest
Андрей Усачёв,

А если положить файл на тот же сервер, где лежит MS SQL и путь указать как C:\\..., ошибка возникнет?
10 сен 12, 11:09    [13138740]     Ответить | Цитировать Сообщить модератору
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
Андрей Усачёв
Member

Откуда: Рига, Латвия
Сообщений: 128
Нет, не возникнет. Я об этом написал в 3-й строке 1-го сообщения этой темы.
10 сен 12, 17:05    [13141613]     Ответить | Цитировать Сообщить модератору
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
Евгений Валентинович
Guest
как решили проблему?
3 апр 13, 14:21    [14131241]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Не хватает прав на openrowset('Microsoft.ACE.OLEDB.12.0  [new]
Андрей Усачёв
Member

Откуда: Рига, Латвия
Сообщений: 128
Никак не решил. Сейчас создам новую тему, гдн опишу проблему более точно.
2 мар 15, 14:29    [17331752]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить