MyTetra Share
Делитесь знаниями!
Подключение к базе Access через связанный сервер
Время создания: 26.12.2018 18:50
Раздел: Разные закладки - Microsoft SQL Server
Запись: xintrea/mytetra_db_adgaver_new/master/base/1545839425o1zp1rvzph/text.html на raw.githubusercontent.com

Вопрос:


Есть база C:\Users\vma\Documents\Db\Main.mdb


Создаю связанный сервер (Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr 2 2010 15:53:02 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 <X86> (Build 7600: ) )


Скрипт создания сервера


EXEC sp_addlinkedserver 'Main', 'Access','Microsoft.Jet.OLEDB.4.0', 'C:\Users\vma\Documents\Db\Main.mdb'\


База данных Main.mdb обычная, никакой защиты нет


В окне запросов Management Studio с авторизацией Windows запрос


SELECT OnlyDate FROM Main...Izmer group by OnlyDate order by OnlyDate


- выполняется нормально.


В окне запросов Management Studio с SQL Server авторизацией выдает сообщение


OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "Main" returned message "Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.".
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "Main" reported an error. Authentication failed.
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "Main".



Ответ:


Ну нема у "SQL Server аккаунта" доступа в папку с файлом.

Дело то житейское.



Вопрос: А как аккаунту SQL server дать доступ к файлу? Требование авторизации средствами SQL server обязательное.


Ответ:


Курить Credentials, если версия скуля выше 2005.
Курить запуск службы MS SQL под КОНКРЕТНЫМ аккаунтом.
На крайняк - дать анонимный доступ к файлу.



Вопрос: Создал Credentials для авторизации Wibdows, связал с логином SQL авторизации, все равно, появляется такое же сообщение об ошибке. Служба SQL Server запущена под тем же аккаунтом, что и Credentials. Куда еще можно копать?



Ответ: http://technet.microsoft.com/en-us/library/ms175866(v=sql.105).aspx



Спасибо, помогло, этот скрипт дал доступ для всех имен авторизации SQL server:


exec sp_addlinkedsrvlogin 'Main', false, Null, 'Admin', NULL



Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования