Sql server 使用Oracle Provider for OLE DB的SSIS中的密码问题

Sql server 使用Oracle Provider for OLE DB的SSIS中的密码问题,sql-server,oracle,visual-studio-2010,ssis,etl,Sql Server,Oracle,Visual Studio 2010,Ssis,Etl,这是我第一次尝试从Oracle数据库提取数据并将其推送到Microsoft SQL数据库,但我遇到了一个无法解决的问题。我已经在SSIS机器上安装了ODAC(Oracle客户端),并且能够很好地查看和使用Oracle Provider for OLE DB Connection manager。我输入了Oracle服务器名,登录,PW,测试连接,工作正常。我甚至可以运行源查询并将其加载到我们的SQL数据库中。但是,如果我尝试部署包,或者再次打开连接管理器,所有操作都会失败,因为密码没有保存,尽管

这是我第一次尝试从Oracle数据库提取数据并将其推送到Microsoft SQL数据库,但我遇到了一个无法解决的问题。我已经在SSIS机器上安装了ODAC(Oracle客户端),并且能够很好地查看和使用Oracle Provider for OLE DB Connection manager。我输入了Oracle服务器名,登录,PW,测试连接,工作正常。我甚至可以运行源查询并将其加载到我们的SQL数据库中。但是,如果我尝试部署包,或者再次打开连接管理器,所有操作都会失败,因为密码没有保存,尽管选中了明显的“保存密码”复选框

经过一些搜索后,复选框似乎什么也不做,我尝试了以下解决方法,但没有成功:

  • 配置文件。将软件包设置为使用配置文件,尝试将密码硬编码到该文件中,包括在其自身和/或连接字符串行中。无论哪种情况,软件包都会忽略密码
  • 表情。我尝试过使用这种格式的表达式:“数据源=服务器;“+”用户id=用户id;“+”密码=密码;“+”提供者=OraledBoracle.1;“+”波斯安全信息=true;”,但失败了(连接管理器总是切换到“脱机”模式,并且似乎不处理表达式),并且还尝试将表达式用于“密码”在SSI内部工作过一次(在数据流中似乎运行正常,但在控制流中连接管理器再次显示为脱机),但在部署时失败
  • 在所有情况下,我都尝试过使用各种保护级别设置:DontSaveSensitive、EncryptSensitiveWithUserKey、EncryptSensitiveWithPassword(然后将密码添加到SSMS作业管理器中的包执行中)。没有一种设置的工作方式与其他设置有任何不同
我在SQL DBs和SSIS服务器所在的实际服务器上以及在我的本地计算机上都尝试过这种方法,以测试相同的设置,以确保它不是特定于计算机的。我已经在这两个服务器上卸载并重新安装了Oracle和ODAC至少一次

目前,我找不到任何其他建议,似乎其中一种设置在正确安装所有内容后最终对所有人都有效。同样,只要我在连接管理器中设置密码并在SSIS内手动运行该包,该包就可以工作,但在SSIS外的任何情况下都不行

我已经连续两天试图解决这个问题,我开始发疯了。除了明显的抱怨“那个保存密码的复选框到底是什么?”“我不知道在这一点上应该尝试什么。我真的很想使用Oracle Provider,因为其中一些数据使用复杂的查询,甚至最小的查询也有200000多行,并且会影响公司的“仓库”,因此必须尽可能提高效率。如果没有其他选择,我可以尝试使用旧的OLEDB连接,但这绝对是最后的选择

我能想到的其他信息:使用Visual Studio 2010(试用了免费版和专业版),尝试在软件包上同时运行32位和64位运行时(在SSIS中运行都很好,但在SSMS中都不行,因为……没有密码),我无法控制Oracle server/DBs,并且没有机会获得无密码的访问帐户(我也不需要坦率地说)


感谢您提供的任何帮助或提示!

对此进行了微小的更新,截至今天,填写的密码的表达式字段在SSIS中似乎工作正常,正如我所期望的,但在SSMS中部署和运行时,会出现一个新错误:“ORA-12154:TNS:无法解析指定的连接标识符”这显然令人困惑,因为如果我手动执行它,它使用TNS运行良好。我怀疑这仍然是一个身份验证问题,Oracle错误只是像正常情况一样迟钝。我不确定这是否符合回答条件……我最终使用了Oracle的Attunity驱动程序(尽管2.0没有说它们可以与Windows Server 2012配合使用,但它们似乎工作得很好)。在此过程中,我卸载并重新安装了Oracle Administrator 64位和32位客户端。我认为这是允许密码表达式保持不变的原因。此外,如果打开连接管理器,即使设置了密码表达式,也必须在连接管理器中输入PW,否则它将再次中断。Attunity drIver更好(假设你有SQL Enterprise)。我总是通过项目参数设置密码来解析-这样他们可以在生产环境中很容易地控制-哦,我总是“不保存敏感”否则,您将遇到其他开发人员在处理packagesMinor更新时遇到的问题,到今天为止,填写的密码的表达式字段在SSIS中似乎可以正常工作,正如我所期望的,但在SSMS中部署和运行时,会出现新的错误:“ORA-12154:TNS:无法解析指定的连接标识符”这显然令人困惑,因为如果我手动执行它,它使用TNS运行良好。我怀疑这仍然是一个身份验证问题,Oracle错误只是像正常情况一样迟钝。我不确定这是否符合回答条件……我最终使用了Oracle的Attunity驱动程序(尽管2.0没有说它们可以与Windows Server 2012配合使用,但它们似乎工作得很好)。在此过程中,我卸载并重新安装了Oracle Administrator 64位和32位客户端。我认为这是允许密码表达式保持不变的原因。此外,如果打开连接管理器,即使设置了密码表达式,也必须在连接管理器中输入PW,否则它将再次中断。Attunity drIver要好得多(假设您有SQL Enterprise)。我总是通过项目参数设置密码来解析-这样就可以了