Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Использование OPENROWSET для получения данных из расшаренной папки  [new]
DJ hippo
Member

Откуда:
Сообщений: 51
Добрый день!

Помогите, пожалуйста, решить следующую задачку:
В корпоративной сети
1. Есть сервер MS-SQL (назовем SRVMSSQL) на этом сервере у меня есть полномочия sa
2. Есть сервер с расшаренными на нем папками, из одной из которых мне нужно при помощи OPENROWSET подтягивать данные в БД на первом сервере (путь к папкам \\SRVSHARED\Folder\ ). К этой папке у моего сетевого логина есть полномочия редактора.
3. Есть моя рабочая машина MYCOMP, с которой я подключаюсь к серверу SRVMSSQL в SQL Server Management, логируюсь под своим сетевым логином, используя Windows Authentification

При попытке выполнить запрос (см ниже) на SRVMSSQL отрабатывает успешно
При попытке выполнить запрос на MYCOMP
SELECT *
FROM OPENROWSET
(
	'Microsoft.ACE.OLEDB.12.0'
,	'Excel 12.0;Database=\\SRVSHARED\Folder\TEST.xls;'
,	'SELECT * FROM [SHEET1$]'
)
выдается ошибка:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The Microsoft Access database engine cannot open or write to the file '\\SRVSHARED\Folder\TEST.xls'. It is already opened exclusively by another user, or you need permission to view and write its data.".
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 Server под своим сетевым логином - не помогло, ошибка та же
Пробовал линковать сервер, запускать с него, ошибка по сути та же, немного отличается текст
Пробовал сменить провайдера на MSDASQL, не помогает

Команда
exec master..xp_cmdshell 'dir \\SRVSHARED\Folder\'
выполняется успешно, отображается список файлов

Файл \\SRVSHARED\Folder\TEST.xls в проводнике также открывается успешно, с возможностью редактирования

При этом если скопировать файл в папку, расшаренную на \\SRVMSSQL, то OPENROWSET работает успешно, например такой скрипт:

SELECT *
FROM OPENROWSET
(
	'Microsoft.ACE.OLEDB.12.0'
,	'Excel 12.0;Database=\\SRVMSSQL\Folder\TEST.xls;'
,	'SELECT * FROM [SHEET1$]'
)

Есть идеи, в чем может быть проблема??
10 ноя 11, 15:15    [11575698]     Ответить | Цитировать Сообщить модератору
 Re: Использование OPENROWSET для получения данных из расшаренной папки  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Если Вы хотите, чтобы доступ к сетевой шаре проходил с привилегиями доменной учетки, "под которой" к серверу подключаются по виндовой авторизации, то Вам следует настроить Security Account Delegation.
10 ноя 11, 22:32    [11578377]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить