包含 SQL 身份验证的 SSIS 在 IDE 中运行,但在 SQL Server 代理作业中失败



我有一个SSIS包,它从平面文件中获取数据并将其写入SQL。它在 IDE 中运行良好,在 OLEDB 连接中使用 Windows 身份验证。但我希望它由任何人运行,而不是使用我的 Windows 身份验证设置,所以我将身份验证更改为 SQL 身份验证。当我在 SQL 作业中运行此包时,它失败了,但在 IDE 中运行良好。会有什么问题?

我的软件包级别保护级别是:加密敏感用户密钥

我是否需要将保护级别更改为加密敏感密码?

这是我得到的错误: 无法解密受保护的 XML 节点"DTS:密码",错误0x8009000B"密钥在指定状态下使用无效"。您可能无权访问此信息。当存在加密错误时,会发生此错误。验证正确的密钥是否可用。


最糟糕的是,到目前为止,我恢复为在 Windows 身份验证本身中运行,但现在我遇到了一个奇怪的错误 -

以用户身份执行:。Microsoft (R( SQL Server 执行包实用工具版本 12.0.4100.1,适用于 64 位版权 (C( Microsoft公司。保留所有权利。 已开始: 10:46:00 AM 错误: 2019-08-15 10:46:09.43 代码: 0xC0209303 源: Import_Freight_Data 连接管理器"源 Excel (xls( 文件" 说明: 请求的 OLE DB 提供程序 Microsoft.Jet.OLEDB.4.0 未注册。如果未安装 64 位驱动程序,请在 32 位模式下运行程序包。错误代码:0x00000000。 OLE DB 记录可用。 源:"Microsoft OLE DB 服务组件" 结果: 0x80040154 说明:"类未注册"。 结束错误错误:2019-08-15 10:46:09.43 代码:0xC020801C源:从 xls 文件源获取数据 - XLS 文件导入 [96] 说明:SSIS 错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 对连接管理器"源 Excel (xls( 文件"的获取连接方法调用失败,错误代码0xC0209303。 在此之前可能会发布错误消息,其中包含有关获取连接方法调用失败原因的详细信息。 结束错误错误:2019-08-15 10:46:09.43 代码:0xC0047017源:从 xls 文件 SSIS 获取数据。管道说明:源 - XLS 文件导入验证失败,返回错误代码0xC020801C。 结束错误错误:2019-08-15 10:46:09.43 代码:0xC004700C源:从 xls 文件 SSIS 获取数据。管道说明:一个或多个组件验证失败。 结束错误错误:2019-08-15 10:46:09.43 代码:0xC0024107 源:从 xls 获取数据 文件说明:任务验证期间出错。 结束错误 DTExec:包执行返回DTSER_FAILURE (1(。 开始: 10:46:00 完成: 10:46:09 已用: 8.906 秒。 包执行失败。 步骤失败。

使用 EncryptSensitiveWithUserKey 时,SSIS 将使用 Windows 标识作为身份验证方式解密敏感值。 当此作业在 SQL 代理中运行时,它不再在您的帐户下运行,并且无法解密密码。

可以使用EncryptSensitive WithPassword,但这意味着从 SQL 代理调用包时,需要以明文形式存储包密码。 一些更可取的选择是:

  • 使用 Windows 身份验证,但在代理下运行包。 更多关于这里的信息: https://community.spiceworks.com/how_to/129293-configure-an-ssis-package-to-execute-as-a-proxy-account
  • 在运行时使用包配置设置密码。 更多关于这里的信息: https://learn.microsoft.com/en-us/sql/integration-services/lesson-5-add-ssis-package-configurations-for-the-package-deployment-model?view=sql-server-2017

我通过强制它在 32 位环境中运行来解决 Excel 问题

现在,需要处理SQL身份验证部分。

在 SQL 作业中设置 32 位环境

最新更新