【问题标题】:SSIS Failed to acquire connection. Connection may not be configured correctly or you may not have the right permissions on this connectionSSIS 无法获取连接。连接可能未正确配置,或者您可能对此连接没有正确的权限
【发布时间】:2019-05-01 13:29:20
【问题描述】:

我使用的是 MS SQL Server 2016。我有一个 SSIS 包,其中包含一个执行 SQL 任务。我可以用 Visual Studio 很好地执行它。当我部署到 SSIS 目录时,我收到以下错误:

执行 SQL 任务:错误:无法获取连接。连接可能配置不正确,或者您可能没有此连接的正确权限

同样,如果我尝试通过 SQL 代理作业执行,我会收到以下信息:

描述:登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。来源:.Net SqlClient 数据提供程序开始时间:15:02:11 完成时间:15:02:12 经过时间:0.125 秒。包执行失败。步骤失败。

我错过了什么?任何帮助将不胜感激。

SQL 服务器中的连接管理器使用的是 ADO.net,而不是 OLEDB

【问题讨论】:

    标签: sql-server ssis sql-server-2016 sql-agent-job ssis-2016


    【解决方案1】:

    问题原因是在连接管理器中您使用的是 windows 集成安全性,它使用当前 windows 用户建立连接。

    当从 SQL 作业执行包时,它使用没有连接权限的 SQL 服务帐户。为了解决这个问题,您可以定义一个代理帐户并以您的 Windows 用户身份运行该作业:

    【讨论】:

    • 您好 - 如果有帮助,我使用的是 ADO 而不是 OLEDB 连接管理器?
    • @Michael 情况相同。我从答案中删除了 OLEDB 字样。
    【解决方案2】:

    您可能错过了这样一个事实:当您在 Visual Studio 中运行一个包时,它会使用您的凭据运行,而当您将它部署到 SSIS 并作为作业运行时,它会在您的 SQL 代理所使用的系统帐户下运行用途。

    因此,您可能没有为 SQL 代理帐户授予必要的权限。

    【讨论】:

    • 那么如果SQL Agent作为系统账号运行,这个系统账号在执行SQL任务中需要访问原始数据库吗?
    • 它需要访问软件包所需的任何数据库、文件夹等。你还没有分享你的代码,所以我不能比这更具体。
    • 建议遵循最小权限的概念。在生产环境中运行包的任何帐户都应仅具有执行指定任务集所需的必要权限。换句话说,不要向服务帐户授予管理员级别的权限。相反,授予特定权限。 docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/…
    猜你喜欢
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 2018-04-07
    • 2021-05-08
    • 2011-03-08
    • 2013-08-14
    相关资源
    最近更新 更多