首页 文章

SQL代理作业使用SQL身份验证运行SSIS包

提问于
浏览
0

我正在运行SQL Server 2014

我正在尝试设置运行SSIS包的计划SQL代理作业,我需要它使用SQL身份验证登录才能访问SSIS包访问的所有应用程序/服务器 .

我创建了一个Credential,它映射到SQL身份验证登录并将其连接到SQL代理运行的代理,当访问SSIS包时,但是,作业失败并显示错误消息:

Unable to start execution of step 1 (reason: Could not get proxy data for proxy_id = 1). The step failed.

我已经确认:

  • 我可以使用SQL身份验证帐户访问所有服务器/应用程序

  • 为SQL身份验证配置了SSIS包连接

  • 我可以使用SQL身份验证手动运行SSIS包

  • 为Windows AD和SQL身份验证登录配置了所有访问过的SQL Server数据库

当我创建SQL Server代理作业时,运行SSIS包的步骤有一个SQL Server身份验证登录选项,但该选项显示为灰色,我无法选择它:

enter image description here

我觉得我错过了一个非常明显的步骤,但它正在逃避我,任何帮助将不胜感激 .

1 回答

  • 0

    @oscar和@chuck都是正确的SQL代理作业,运行SSIS包无法在SQL身份验证模式下运行,他们必须使用Windows身份验证 . 除非您另行指定,否则运行代理作业的用户是SQL代理服务帐户 . 服务帐户和运行它的服务器上的SQL服务帐户需要某些权限 . 但是,您可以根据chuck的说明更改它执行的帐户 . 当然,取决于你传递凭证的许多不同服务器以及访问的内容,你也可以进入kerberos双跳问题......相信我解决最后一部分不是那么有趣但仍然可行 .

    但问题是,如果必须使用SQL身份验证,则根本不需要Windows用户 . 您可以将SQL身份验证凭据放在SSIS包中的连接管理器的连接字符串中 . SQL代理服务帐户可以为您处理任何文件访问问题,您的连接字符串可以传递sql凭据 . 没有双跳问题而且容易 . 如果您担心嵌入凭据,则应使用权限较低的sql帐户,但您也可以加密它们并将其与包一起存储 . 还有几种方法可以从加密状态动态获取它们 .

相关问题