【发布时间】:2023-03-09 22:32:01
【问题描述】:
我的几个同事在使用 SSIS 连接到受密码保护的 MS Access 2010 数据库时遇到问题。我决定尝试解决此问题。
为了简化这种情况,我创建了一个新的 MS Access 2010 数据库,其中包含一个表和一行,没有密码保护。我复制了该数据库,更新了一行中的数据,以便我可以区分来源,然后应用密码。这两个数据库位于我使用完整 UNC 路径的同一网络路径上。
我创建了两个 SSIS 包,每个数据库一个。所有包所做的都是从一个表中读取数据并将数据写入 CSV。对于与 Access 数据库的连接,我使用 Microsoft Office 12.0 Access Database Engine OLE DB Provider。对于受密码保护的数据库连接,我将密码放在 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.
有什么建议吗?
【问题讨论】:
-
我们认为问题在于服务器的驱动程序过时。如果这是问题所在,我会发表评论。
标签: ssis ms-access-2010 ssis-2008