SQL Server2000
От: __Evgeniy_  
Дата: 25.04.03 03:14
Оценка:
Почему не выполняется следующий запрос:
select *
from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="\\comp1\share\base.mdb";User ID=admin;Password=;')...qwe

Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.  
[OLE/DB provider returned message: The Microsoft Jet database engine cannot open the file '\\comp1\share\base.mdb'.  It is already opened exclusively by another user, or you need permission to view its data.]
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005:   ].

Хотя файл ни кем не открыт и к папке все имеют полный доступ
На сервер захожу под Windows NT Authentication
Re: SQL Server2000
От: KGP http://kornilow.newmail.ru
Дата: 25.04.03 06:09
Оценка:
Здравствуйте, __Evgeniy_, Вы писали:

__E>Почему не выполняется следующий запрос:

__E>select *
__E>from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="\\comp1\share\base.mdb";User ID=admin;Password=;')...qwe

__E>Server: Msg 7399, Level 16, State 1, Line 1

__E>OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.
__E>[OLE/DB provider returned message: The Microsoft Jet database engine cannot open the file '\\comp1\share\base.mdb'. It is already opened exclusively by another user, or you need permission to view its data.]
__E>OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: ].

__E>Хотя файл ни кем не открыт и к папке все имеют полный доступ

__E>На сервер захожу под Windows NT Authentication

1)
Запуская следующее с Q.A. MS SQL Server 2000 сервера (комп Server)

USE pubs
GO

SELECT a.* FROM OPENROWSET
('Microsoft.Jet.OLEDB.4.0','\\kgp\c\ddx.mdb';'Admin';'',ddx_data) as a
получил ругательство с

OLE DB provider 'Microsoft.Jet.OLEDB.4.0' reported an error.
[OLE/DB provider returned message: Файл '\\kgp\ito\ddx.mdb' не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.]
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: ].

2)
Запуская следующее с Q.A. MS SQL Server 2000 сервера (мой комп)

USE pubs
GO

SELECT a.* FROM OPENROWSET
('Microsoft.Jet.OLEDB.4.0','\\kgp\c\ddx.mdb';'Admin';'',ddx_data) as a
получил результат

Предполагаю, что запрос работает от имени SQL Servera — он под системным логином запускается, а на него нет доступа
к шаре ... ?
Re[2]: SQL Server2000
От: _MarlboroMan_ Россия  
Дата: 25.04.03 06:35
Оценка:
Здравствуйте, KGP, Вы писали:

KGP>Предполагаю, что запрос работает от имени SQL Servera — он под системным логином запускается, а на него нет доступа

KGP>к шаре ... ?

именно так и проистекает.

щаз вот примерно такая-же трабла в соседнем подразделении возникла.
копаем.

расшариванье с FullControl для Everyone не помогает.

админ прийдет — пусть думает как права доступа открыть :))
... << RSDN@Home 1.0 beta 6a >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[3]: SQL Server2000
От: _MarlboroMan_ Россия  
Дата: 25.04.03 07:57
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:

MM>админ прийдет — пусть думает как права доступа открыть :))


думали мы думали...

получается, что единственный вариант это запуск сервака не под системным аккаунтом, а под юзеровским. но тут минус в том, что пароли иногда менять надо.
... << RSDN@Home 1.0 beta 6a >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[4]: SQL Server2000
От: Admiral Украина  
Дата: 25.04.03 08:54
Оценка:
> думали мы думали...
> получается, что единственный вариант это запуск сервака не под системным аккаунтом, а под юзеровским. но тут минус в том, что пароли иногда менять надо.

У LocalSystem тоже есть логин. Грубо говоря, у него вид такой: domain_name\computer_name$. Можно попробовать дать права этой учетной записи, возможно, получится.

Я испытывал немного другой сценарий: есть Windows-сервис, работающий под LocalSystem и обращающийся к удаленному SQL Server'у. В этом случае после заведения вышеописанного логина все прошло на ура.
Posted via RSDN NNTP Server 1.5 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.