Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SOS!!! Linked Server Excel  [new]
ElenaLeont
Member

Откуда: Екатеринбург
Сообщений: 305
Добрый день!
Помогите, плз, с проблемой: нужно читать данные из файла EXCEL под обычными пользователями. Реализовала через связанный сервер. Под сисадмином все работает, а вот под обычным пользователем ошибка

Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "PRICE_EXCEL" вернул сообщение "Неопознанная ошибка".
Сообщение 7303, уровень 16, состояние 1, процедура sp_tables_ex, строка 41
Не удалось проинициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "PRICE_EXCEL".


Аутентификация виндовс, доступ к файлу у пользователей есть.
22 окт 13, 09:13    [15012026]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3376
ElenaLeont,

И как настроена секюрити под "обычным пользователем" в свойствах линка?
22 окт 13, 09:40    [15012168]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
ElenaLeont
Member

Откуда: Екатеринбург
Сообщений: 305
в том то и вопрос, как ее настроить? в свойствах линка выбрано Без использования контекста безопасности, но так отображаются св-ва под сисадмином. Если запустить менеджмент студио под обычным пользователем и посмотреть св-ва линка, то отображается Не устанавливать:(
22 окт 13, 09:47    [15012219]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3376
ElenaLeont
в свойствах линка выбрано Без использования контекста безопасности
Зачем? Почему был сделан именно такой выбор - ходить под гостем?

Поставьте, не знаю как это по-русски, "использовать контекст текущего пользователя". И скорее всего, SPN у сервера должен быть зарегистрирован (сообщение об ошибке напомнит, в случае чего).
22 окт 13, 10:26    [15012448]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
ElenaLeont
Member

Откуда: Екатеринбург
Сообщений: 305
я уже пробовала так "использовать контекст текущего пользователя", результат тот -же, но так отображаются св-ва под сисадмином. Если запустить менеджмент студио под обычным пользователем и посмотреть св-ва линка, то отображается Не устанавливать:(
22 окт 13, 10:34    [15012515]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
ElenaLeont
Member

Откуда: Екатеринбург
Сообщений: 305
можно подробнее, что такое SPN у сервера должен быть зарегистрирован
22 окт 13, 10:47    [15012603]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3376
ElenaLeont,

У обычных пользователей может не быть прав на просмотр настроек линка. Поэтому студия может там отображать, в общем случае, что угодно.
Если под сисадмином работает, значит, все драйверы в наличии, т.е. не хватает прав. Ищите, где не хватает. Можно гуглить текст ошибки, можно повесить профайлер на User Error Message...

Подробнее про SPN - конечно, можно.
22 окт 13, 11:11    [15012789]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
bamper78
Member

Откуда:
Сообщений: 120
-- Подключаем EXCEL
----------------------------------------
-- Вариант 1 через Прилинкованный сервер
----------------------------------------
-- 1 проверяем версию
select @@Version

-- 2 Проверяем зарегистированные драйверы, для x64 должен быть "Microsoft.ACE.OLEDB.12.0"
EXEC sp_enum_oledb_providers

-- 3 Разрешаем работу драйвера (если они зарегистированы)
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 0 

-- 4. включаем xp_cmdshell для работы с файлами
begin
EXEC sp_configure 'xp_cmdshell',1
reconfigure with override;
end

-- 4.1 'Ad Hoc Distributed Queries' включаем распределенные нерегламентированные запросы
begin
EXEC sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override;
end

-- 4.2 включаем 'show advanced options'
begin
EXEC sp_configure 'show advanced options',1
reconfigure with override
end

-- 4.3 'sp_addlinkedsrvlogin - FALSE' пароли для подключения к связанному серверу не используются
begin
EXEC
exec sp_addlinkedsrvlogin N'LS_EXCEL', 'False'
end

-- 5. создаём прилинкованный сервер
EXEC master.dbo.sp_addlinkedserver
      @server = N'LS_EXCEL', 
      @srvproduct=N'ms ace 12', 
      @provider=N'Microsoft.ACE.OLEDB.12.0', 
      @datasrc=N'c:\data\MySheet3.xls', 
      @provstr=N'Excel 12.0;'

-- 6. В свойствах Linked Server в графе безопасность ставим "Устанавливать без контекста безопасности"
-- 7. Проверяем через Management Studio->Server Objects->Linked Server->Test Connection есть ли связь с созданным сервером.
-- 8. Проверяем доступность файла
exec master..xp_cmdshell 'dir c:\data\MySheet3.xls'


-- 9. Пробуем считать файлы
SELECT * FROM [LS_EXCEL]...[Range]
или
SELECT * FROM [LS_EXCEL]...[Range$]

----------------------------------------
----------------------------------------
-- Вариант 2 через OPENDATASOURCE
----------------------------------------
select*
 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=c:\data\MySheet3.xls;Extended Properties=EXCEL 12.0')...[Range$];
или
select*
 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=c:\data\MySheet3.xls;Extended Properties=EXCEL 12.0')...[Range] ;

----------------------------------------
-----------------------------------------
-- Вариант 3 через OPENROWSET
--------------------------------------------

SELECT * FROM OPENROWSET
(           
            'Microsoft.ACE.OLEDB.12.0',
            'EXCEL 12.0; database=C:\MVK_Excel\regim.xls',
            'SELECT * FROM [03_2013$]'
)

---------------------
--Импорт Excel в DB SQL
----------------------------------------
SELECT * INTO regim FROM OPENROWSET
(           
            'Microsoft.ACE.OLEDB.12.0',
            'EXCEL 12.0; database=C:\MVK_Excel\regim.xls',
            'SELECT * FROM [03_2013$]'
)

------------------------------------------------
23 окт 13, 11:16    [15019074]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: SOS!!! Linked Server Excel  [new]
avpetrov27
Member

Откуда:
Сообщений: 18
bamper78,

Делаю всё по инструкции.
после запроса на получение данных:

SELECT * FROM SQL2_EXCEL...[St1$]
появляется ошибка.

Сообщение 7399, уровень 16, состояние 1, строка 1
Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "SQL2_EXCEL" сообщил об ошибке. Отказано в доступе.
Сообщение 7301, уровень 16, состояние 2, строка 1
Не удалось получить требуемый интерфейс ("IID_IDBCreateCommand") от поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "SQL2_EXCEL".

подскажите, пожалуйста, с чем может быть связан проблема?

win 8.1 64 разрядная. SQL express 2012.
22 ноя 15, 20:25    [18456676]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
avpetrov27
подскажите, пожалуйста, с чем может быть связан проблема?


avpetrov27
Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "SQL2_EXCEL" сообщил об ошибке. Отказано в доступе.
22 ноя 15, 20:30    [18456711]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
avpetrov27
Member

Откуда:
Сообщений: 18
Glory,

Спасибо.
Но с чем может быть связано отсутствие доступа?
Права администратора вроде есть.
И ещё такой вопрос: почему после выполнения этих инструкций, если попытаться открыть excel-файл, появляется сообщение о том, что редактирование файла запрещено пользователем 'другой пользователь'?
Что это за пользователь, как его отцепить?
24 ноя 15, 14:05    [18464613]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
avpetrov27
Member

Откуда:
Сообщений: 18
Glory,

Шапка таблицы в excel-файле при этом выгружается.
24 ноя 15, 14:08    [18464648]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
avpetrov27
Шапка таблицы в excel-файле при этом выгружается.

Куда выгружается ?

avpetrov27
Но с чем может быть связано отсутствие доступа?

С отсутствием доступа

avpetrov27
Права администратора вроде есть

Понятно, что у кого-то где-то есть какие права админитстратора.
Вопрос в том, если нужные права у нужных учетных записей

avpetrov27
И ещё такой вопрос: почему после выполнения этих инструкций, если попытаться открыть excel-файл, появляется сообщение о том, что редактирование файла запрещено пользователем 'другой пользователь'?

Потому, что когда сервер открывает файл, то он становится пользователем файла

avpetrov27
Что это за пользователь, как его отцепить?

Надо подождать
24 ноя 15, 14:13    [18464691]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
avpetrov27
Member

Откуда:
Сообщений: 18
Glory
avpetrov27
Шапка таблицы в excel-файле при этом выгружается.

Куда выгружается ?

Когда выполняю запрос SELECT * FROM [LS_EXCEL]...[sheet1$]
выгружаются только названия колонок. потом ошибка.

Glory
avpetrov27
Что это за пользователь, как его отцепить?

Надо подождать

А сколько ждать?
24 ноя 15, 14:22    [18464763]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
avpetrov27
Glory
пропущено...

Надо подождать

А сколько ждать?

Некоторое время

avpetrov27
Glory
пропущено...

Куда выгружается ?

Когда выполняю запрос SELECT * FROM [LS_EXCEL]...[sheet1$]
выгружаются только названия колонок. потом ошибка.

Это не шапка. Это метаданные о структуре набора
24 ноя 15, 14:25    [18464791]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
avpetrov27
Member

Откуда:
Сообщений: 18
Glory,

ок.

перезапустил Managment Studio с правами администратора.
Теперь другая ошибка:

Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "LS_EXCEL" вернул сообщение "Ядро СУБД Microsoft Access более не может открыть файл "" или записать в него данные. Файл уже открыт другим пользователем для монопольного доступа, либо требуется разрешение на просмотр и запись данных.".
Сообщение 7303, уровень 16, состояние 1, строка 1
Не удалось проинициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "LS_EXCEL".

т.е. теперь ждать пока "сервер отпустит"?
может как-то принудительно "отобрать" можно?
24 ноя 15, 14:39    [18464887]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
avpetrov27
перезапустил Managment Studio с правами администратора.

А кто тогда был тот, у кого "Права администратора вроде есть." ?

avpetrov27
т.е. теперь ждать пока "сервер отпустит"?

А пустое имя файла в оригинале или вы его убрали ?

avpetrov27
может как-то принудительно "отобрать" можно?

Наверное надо использовать какие то утилиты мониторинга
24 ноя 15, 14:43    [18464908]     Ответить | Цитировать Сообщить модератору
 Re: SOS!!! Linked Server Excel  [new]
MrVoid
Member

Откуда:
Сообщений: 333
avpetrov27,

Поменяйте в свойствах сервиса аккаунт, из-под которого он запускается - поставьте Local Account.
25 ноя 15, 15:08    [18471317]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить