【问题标题】:SQL Agent Job - Connection may not be configured correctly or you may not have the right permissions on this connection?SQL 代理作业 - 连接可能未正确配置,或者您可能对此连接没有正确的权限?
【发布时间】:2009-11-06 11:44:48
【问题描述】:

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

当我以 SQL 代理用户身份登录并直接运行 ssis 包时,一切正常。然后当我通过 SQL 代理作业执行它时,它失败了。

我已经广泛阅读了有关此主题的信息,似乎很多建议都与您如何登录、代理帐户的配置等有关,但这些都没有帮助。

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

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

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

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

据我所知,由于我使用明确的用户名和密码进行 Oracle 连接,因此 SSI pacakge 以谁的身份运行并不重要。我能看到的唯一失败点是从注册表中读取信息,但这似乎很好。

我真的很困惑,我必须承认,如果这里的一些出色的专家可以提供任何帮助,我将不胜感激。

非常感谢, 詹姆斯

【问题讨论】:

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


    【解决方案1】:

    好的,经过相当多的痛苦后找到了这个。

    它在一个环境中运行良好,但在另一个环境中运行良好,因此我启动了 Process Monitor (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) 并通过 SQL 代理作业运行一个包,比较在每个环境中命中了哪些系统实体。

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

    我知道这是安装的,而且 DLL 路径是系统环境设置。经过进一步调查,发现安装Oracle客户端后服务器没有重启过,SQL Server代理进程也没有被回收。

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

    叹息!

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的建议,瑞恩。无论如何,我所有的包都是默认的。
      猜你喜欢
      • 2017-12-11
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 2018-04-07
      • 2011-03-08
      • 1970-01-01
      • 2021-08-23
      • 2013-06-12
      相关资源
      最近更新 更多