У пары моих сотрудников возникли проблемы с подключением к базе данных MS Access 2010, защищенной паролем, из SSIS. Я решил попытаться устранить эту проблему.Не удается подключиться к базе данных MS Access 2010 из пакета SSIS на SQL Server
Чтобы упростить ситуацию, я создал новую базу данных MS Access 2010 с одной таблицей и одной строкой без защиты паролем. Я скопировал эту базу данных, обновил данные в одной строке, чтобы я мог различать исходный код и затем применял пароль. Обе базы данных на одном сетевом пути, для которых я использую полный путь UNC.
Я создал два пакета SSIS, по одному для каждой базы данных. Все пакеты делают, считываются из одной таблицы и записывают данные в CSV. Для моего подключения к базе данных Access я использую поставщик OLE DB для Microsoft Office 12.0 Access Database. Для подключения базы данных, защищенного паролем, я помещаю пароль в поле Jet OLEDB: Database Password.
При работе на моей машине через Visual Studio оба пакета SSIS работают как ожидалось и записывают данные из таблицы базы данных Access в файл CSV в том же месте, что и база данных. Однако, когда я загружаю пакеты и создаю SQL-задание для каждого из них, то один без пароля работает, но тот, у которого есть пароль, нет.
Здесь ошибка я получаю (когда пользователь неподвижную вне) ...
Executed as user: XXXXXX\XXXXXXXX. Microsoft (R) SQL Server Execute Package Utility Version 10.50.4000.0 for 32-bit Copyright (C) Microsoft Corporation 2010. All rights reserved.
Started: 1:42:02 PM
Error: 2016-07-11 13:42:03.94
Code: 0xC0202009
Source: Package1 Connection manager "TestPassword"
Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred.
Error code: 0x80004005. An OLE DB record is available.
Source: "Microsoft Office Access Database Engine"
Hresult: 0x80004005
Description: "Cannot open database ''. It may not be a database that your application recognizes, or the file may be corrupt.". End Error
Error: 2016-07-11 13:42:03.94
Code: 0xC020801C
Source: Data Flow Task OLE DB Source [1]
Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager "TestPassword" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed. End Error
Error: 2016-07-11 13:42:03.95
Code: 0xC0047017
Source: Data Flow Task SSIS.Pipeline
Description: component "OLE DB Source" (1) failed validation and returned error code 0xC020801C. End Error
Error: 2016-07-11 13:42:03.95
Code: 0xC004700C
Source: Data Flow Task SSIS.Pipeline
Description: One or more component failed validation. End Error
Error: 2016-07-11 13:42:03.95
Code: 0xC0024107
Source: Data Flow Task
Description: There were errors during task validation. End Error
DTExec: The package execution returned DTSER_FAILURE (1).
Started: 1:42:02 PM Finished: 1:42:03 PM Elapsed: 1.903 seconds. The package execution failed. The step failed.
Любые предложения?
Мы считаем, что проблема в том, что сервер имеет устаревший драйвер. Я отправлю комментарий, если это окажется проблемой. – nscheaffer