SQL代理作业 - 可能未正确配置连接,或者您可能没有此连接上的权限?

时间:2009-11-06 11:44:48

标签: sql-server oracle ssis connection sql-server-agent

通过SQL Agent运行SSIS包时出现此错误 无法获得连接“ORACLE ADO.NET”。可能未正确配置连接,或者您可能没有此连接的正确权限。

当我以SQL代理用户身份登录并直接运行ssis包时,这很好。当我然后通过SQL代理程序作业执行它时,它失败了。

我已经在这个主题上广泛阅读了,似乎很多建议都涉及你如何登录,配置代理帐户等等,这些都没有帮助。

我正在使用ADO.NET conncetion登录Oracle数据库。连接字符串如下(数据源,用户ID和密码已更改):

Data Source = DATASOURCE; User ID = userid; Password = password; Persist Security Info = True; Unicode = True;

我正在使用包配置从注册表设置加载它。要检查我是否收到正确的字符串,我将其写入临时日志表。我肯定从正确的注册表设置中获取我需要的字符串。

我已经通过PL / SQL开发人员测试了oracle登录凭据,它让我可以正常登录。

据我所知,由于我正在使用Oracle连接的显式用户名和密码,因此SSIs pacakge的运行方式无关紧要。我能看到的唯一失败点就是从注册表中读取信息,但这似乎很好。

我真的很困惑,我必须承认,并且非常感谢这里一些出色的专家提供的任何帮助。

非常感谢, 詹姆斯

2 个答案:

答案 0 :(得分:1)

我们在客户端遇到问题,在存储在我们的sql server实例上之前运行连接到Oracle的包。我们发现的工作是将包属性,保护级别更改为“不保存敏感数据”,出于安全考虑,我们在包配置中加密了用户名和密码,该配置由sql server中的udf解密。当然,在您尝试整个加密部分之前,我建议您在包配置中输入用户名和密码,而不加密值,以查看更改保护级别设置是否是您特定问题的解决方案。我希望这会有所帮助。

答案 1 :(得分:1)

好的,经过相当多的痛苦后追踪了这个。

它在一个环境中工作正常,但不是另一个环境,所以我启动了Process Monitor(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx)并通过SQL Agent作业运行了一个包,比较了每个环境中的系统实体。

在失败的环境中,在批量传输操作时,程序包尝试获取Oracle 11客户端DLL,然后挂起。

我知道这已安装,而且,无论如何,DLL路径都是系统环境设置。经过进一步调查后发现,自Oracle Client安装以来,服务器没有重新启动,并且SQL Server代理进程没有被回收。

是的,您能相信吗,旧的帮助台修复了“您可以重新启动计算机吗?”工作

感叹!