Ошибка Timberline ODBC на связанном сервере SQL Server: невозможно инициализировать объект источника данных
Просто чтобы заложить основу работы:
- На 64-битном сервере Windows у нас установлена 64-битная версия SQL Server 2008 R2
- Мы установили 32-разрядную версию SQL Server Express на той же машине
Используя 32-битную версию Express, мы успешно создали связанный сервер с хранилищем данных Timberline следующим образом:
EXEC sp_addlinkedserver @server = 'TimberlineTest', @provider = 'MSDASQL', @srvproduct='Timberline Data', @datasrc = 'TimberlineDSN'
Затем он возвращает все таблицы:
exec sp_tables_ex 'TimberlineTest'
Мы также создали пользователя следующим образом:
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'TimberlineTest',
@useself = 'False',
@rmtuser = 'sa',
@rmtpassword = 'xxxxxx'
GO
Кроме того, в окне запроса SSMS это прекрасно работает при работе с Master db:
select * from timberlinetest.[c:\Training\Extended]..Master_PRM_Employee
Все работает отлично, пока мы выполняем запросы из SSMS. Однако, когда мы запускаем какой-либо сторонний инструмент, который может попытаться получить доступ к этому связанному серверу, у нас возникают проблемы. У нас есть небольшой инструмент тестирования запросов, который позволяет вам вводить строку подключения и выполнять запросы. Мы используем эту строку подключения, чтобы сначала добраться до Master db:
Provider=SQLOLEDB; Data Source=localhost\SQLEXPRESS32BIT; Libraries=Master; User ID=sa; Password=xxxxxx
Это соединение работает, и мы можем пропинговать сервер и запрашивать основную базу данных. Но когда мы пробуем тот же самый запрос Timberline (выберите * из timberlinetest....), мы сталкиваемся с этой ошибкой:
Не удалось инициализировать объект источника данных поставщика OLE DB "MSDASQL" для связанного сервера "timberline test". Поставщик OLE DB "MSDASQL" для связанного сервера "тест на линейную линию" возвратил сообщение "[Sage Timberline Office][Sage Timberline Office ODBCDriver][Библиотека файлов DRM] Неверное имя учетной записи."
Несколько вещей, чтобы отметить... для целей тестирования:
- По каталогу
c:\Training\Extended
мы широко открыли охрану, установивEveryone
для полного разрешения на чтение и запись - В самой Timberline мы отключили защиту (Инструменты> Администратор безопасности> Настройки безопасности> Снимите флажок "Включить защиту приложений")
Я не уверен, что еще здесь делать. Будем признательны любому совету.
1 ответ
(Ответ на вопрос изменен. Преобразован в вики-ответ сообщества. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате))
ОП написал:
Задача решена.
Я изменил строку подключения на:
Provider=SQLOLEDB; Data Source=.\sqlexpress32bit; Libraries=master; Trusted_Connection=Yes
И это сработало!!