使用Oracle Provider for OLE DB在SSIS中出现密码问题

时间:2016-10-28 18:49:34

标签: sql-server oracle visual-studio-2010 ssis etl

这是我第一次尝试从Oracle数据库中提取数据并将其推送到Microsoft SQL数据库,而我遇到了一个无法找到解决方法的问题。我已经在SSIS机器上安装了ODAC,Oracle Client,并且能够很好地查看和使用Oracle Provider for OLE DB Connection Manager。我把Oracle服务器名称,登录,PW,测试连接,工作正常。我甚至可以运行SOURCE查询并将其加载到我们的SQL数据库中。但是,如果我尝试部署软件包,或者再次打开连接管理器,一切都会因为密码未被保存而失败,尽管显而易见的是保存密码"正在检查复选框。

经过一些搜索后,似乎复选框没有做任何事情,我尝试了以下变通办法,但没有成功:

  • 配置文件。设置程序包以使用配置文件,尝试将密码硬编码到其中,包括它自己和/或包含在连接字符串行中。在任何一种情况下,包都会忽略密码。
  • 表达式。我尝试过使用以下格式的表达式:"数据源= SERVER;" +"用户ID = USERID; " +"密码=密码; " +" Provider = OraOLEDBOracle.1; " +" persisit security info = true;",失败(连接管理器总是切换到"离线"模式并且似乎没有处理表达式),并且还试图只需使用表达式"密码"在SSIS内部运行一次......它似乎在数据流中运行并且看起来很好,但在控制流上,Connection Manager再次显示为脱机状态)但在部署时失败。
  • 在所有情况下,我都尝试使用各种ProtectionLevel设置:DontSaveSensitive,EncryptSensitiveWithUserKey,EncryptSensitiveWithPassword(然后在SSMS作业管理器中添加密码以执行包)。没有人与其他人有任何不同。

我已经在我们的SQL DB和SSIS服务器所在的实际服务器上尝试了这一点,并且在我的本地计算机上测试了相同的设置,以确保它不是特定于机器的。我现在已经卸载并重新安装了Oracle和ODAC至少一次。

此时我无法找到任何其他建议,似乎其中一个设置最终在安装完所有内容后适用于所有人。再次,只要我在连接管理器中设置密码并在SSIS内手动运行包,就可以使用WORKS包,但在SSIS之外的任何情况下都不能。

我花了超过两天的时间试图解决这个问题并开始失去理智。除了显而易见的抱怨"什么是保存密码复选框,即使当时"我不知道在这一点上要尝试什么。我真的很想使用Oracle提供程序,因为其中一些数据使用了复杂的查询,即使最小的数据也是200K +行,并且打到了公司"仓库"因此,尽可能提高效率至关重要。如果没有其他选择,我可以尝试旧的OLE DB连接,但这是目前绝对的最后手段。

我能想到的其他信息:使用Visual Studio 2010(尝试过免费版和专业版),尝试在软件包上运行32位和64位运行时(在SSIS中运行正常但在SSMS中都没有运行,因为......没有密码),我无法控制Oracle服务器/数据库,并且有机会获得无密码帐户(我也不需要坦率地说)

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

0 个答案:

没有答案