Я работаю над приложением C #, которое запрашивает экземпляр SQL Server 2008 Express на удаленном сервере (LAN).
Когда я нахожусь на своей рабочей станции / dev-машине, я могу открыть SQL Server Management Studio и подключиться к экземпляру SQL через проверку подлинности Windows, и для всех целей и задач опыт идентичен работе в SSMS «на» сервере. Насколько я могу судить, со своей рабочей станции я могу делать все, что смогу делать на сервере.
На этом же сервере находится файл Access 2003 .mdb, который в экземпляре SQL настроен как связанный сервер.
Указанные запросы возвращают наборы результатов, скомпилированные путем объединения таблиц из базы данных SQL и базы данных Access.
Когда я выполняю запрос «на» сервере, то есть я запускаю SQL Server Management Studio на сервере, все работает как положено. Однако когда я пытаюсь выполнить те же запросы с моего компьютера разработчика, будь то в SSMS или при попытке запустить интеграционные тесты или отладку приложения, я ничего не могу сделать со связанным сервером. Я вижу это в SSMS, но любая попытка выполнить что-либо приводит к:
Не удалось инициализировать объект источника данных поставщика OLE DB 'Microsoft.Jet.OLEDB.4.0' для связанного сервера '<DatabaseName
>'.
Я просмотрел множество тем, связанных с этой ошибкой, и перепробовал множество изменений настроек провайдера, но все безрезультатно.
- БД доступа не имеет пароля (я пытался настроить безопасность на использование имени «Администратор» без пароля)
- У учетной записи пользователя рабочей станции есть полные права на каталог сервера, где расположена БД Access
- такое же поведение было на сервере, как в Win XP Pro SP3, а теперь и в Win Server 2003
- такое же поведение было с клиентом, как с Win XP Pro SP3, а теперь с Win 7 Pro x32
Отлично работает на сервере, никогда удаленно.
Помощь очень ценится.