无法从SQL Server上的SSIS包连接到受密码保护的MS Access 2010数据库

无法从SQL Server上的SSIS包连接到受密码保护的MS Access 2010数据库,ssis,ms-access-2010,ssis-2008,Ssis,Ms Access 2010,Ssis 2008,我的几个同事在使用SSIS连接到受密码保护的MS Access 2010数据库时遇到问题。我决定尝试解决这个问题 为了简化这种情况,我创建了一个新的MS Access 2010数据库,其中有一个表和一行,没有密码保护。我复制了那个数据库,更新了一行中的数据,这样我就可以区分源,然后应用了密码。两个数据库位于同一网络路径上,我正在使用完整的UNC路径 我创建了两个SSIS包,每个数据库一个。所有包都从一个表中读取,并将数据写入CSV。对于与Access数据库的连接,我使用的是Microsoft O

我的几个同事在使用SSIS连接到受密码保护的MS Access 2010数据库时遇到问题。我决定尝试解决这个问题

为了简化这种情况,我创建了一个新的MS Access 2010数据库,其中有一个表和一行,没有密码保护。我复制了那个数据库,更新了一行中的数据,这样我就可以区分源,然后应用了密码。两个数据库位于同一网络路径上,我正在使用完整的UNC路径

我创建了两个SSIS包,每个数据库一个。所有包都从一个表中读取,并将数据写入CSV。对于与Access数据库的连接,我使用的是Microsoft Office 12.0 Access数据库引擎OLE DB提供程序。对于受密码保护的数据库连接,我将密码放入Jet OLEDB:database password字段中

当通过Visual Studio在我的计算机上运行时,两个SSI包都按预期工作,并将Access数据库表中的数据写入与数据库位于同一位置的CSV文件中。但是,当我上传包并为每个包创建SQL作业时,没有密码的包可以工作,但是有密码的包不能工作

这是我得到的错误(用户被排除在外)


有什么建议吗?

我遇到了一个非常类似的问题,ADO Net连接管理器试图连接到远程Azure DB

您可以尝试通过表达式和变量将包含凭据的完整连接字符串分配给连接管理器。有更安全的方法可以在运行时分配此信息,但这是一种快速的测试方法

这种部署失败的主要原因之一是,在设置连接管理器时,密码是针对您的计算机进行加密的。一旦将包移动到生产机器上,它就无法解密保存在连接管理器中的密码。因此,包将永远无法访问受保护的数据库

  • 将包安全设置为EncryptSensitiveWithPassword
  • 部署包时,请确保已重新输入连接的用户名和密码(或完整连接字符串)

  • 我们的问题已通过运行此安装来更新驱动程序得到修复


    我应该在哪里输入密码来加密软件包?每当我在PackagePassword package属性中放入某些内容时,它似乎会消失。在属性页PackagePassword中,单击右侧的“…”按钮。然后,您将获得一个要输入的对话框,然后重新输入您的密码。不过你是对的——这不是很直观!当我这样做时,我仍然会得到一个空白的属性值。看起来应该是“*********”之类的。如果我真的让它坚持在我的SQL Server上如何以及在哪里指定密码值?我想我知道了如何在SQL Server上指定密码。这是不能接受的。如果您对答案感到满意,您可以将其标记为“是”-谢谢。我们认为问题在于服务器有一个过时的驱动程序。如果这是问题所在,我会发表评论。
    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.