此作业有 5 个步骤。第一个作业是 SSIS 包存储,第二至第五个作业是文件系统作业。我们将所有作业配置为使用 Windows 身份验证。在“运行身份”下,我们指定了一个在“安全”>“凭据和 SQL Server 代理”>“代理”>“SSIS 包执行”下创建的用户帐户。使用此用户帐户运行作业没有任何问题。然后我们继续将作业配置为使用服务帐户。服务帐户是在“安全”>“凭据和 SQL Server 代理”>“代理”>“SSIS 包执行”下指定的。作业因此错误而失败。
以用户身份执行:domain\serviceaccount。32 位版本为 ....00 版权所有 (C) Microsoft Corp 1984-2005。保留所有权利。开始时间:下午 3:37:57 错误:2010-03-09 15:37:57.95 代码:0xC0016016 来源:说明:无法解密受保护的 XML 节点“DTS:密码”,错误为 0x8009000B“密钥在指定状态下无效”。您可能无权访问此信息。当出现加密错误时,就会出现此错误。请确认是否有正确的密钥。错误结束 错误:2010-03-09 15:38:01.19 代码:0xC0047062 来源:获取最近 45 天内的 CONT_VIEW_LADDER OracleFMDatabase [1] 描述:System.Data.OracleClient.OracleException:ORA-01005:给定密码为空;登录被拒绝 在 System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc) 在 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boo... 包执行失败... 步骤失败。
根据一些研究,我进入 MS Visual Studio 并打开项目。我将包安全性的属性从“EncryptSensitiveWithUserKey”更改为“DontSaveSensitive”,但仍然出现上述错误。我是新手,所以任何帮助都将不胜感激。提前致谢
答案1
该问题与加密警告有关,但这不是失败的原因。当您使用用户密钥加密时,只有该用户可以解密连接字符串中的密码,否则连接字符串将没有密码。当您不保存敏感数据时,密码将不会存储在连接字符串中,因此您需要设置 SSIS 配置以提供正确的连接字符串。打开包并选择 SSIS,包配置。在下一个屏幕中,您将选择新建,然后创建一个基于 XML 的配置文件。当询问您要配置哪些属性时,请选择 oracle 连接管理器的连接字符串属性,然后在文件系统的某个位置创建 dtsConfig 文件。创建文件和配置后,您可以将其删除,因为您可能不希望包在相同的路径中查找文件。
编辑 dtsConfig 文件并将密码添加到连接字符串,然后保存文件。将文件放在您想要的位置,然后进入运行 SSIS 包的作业步骤的属性。选择配置选项卡,然后浏览到 dtsConfig 文件。这应该在运行时应用配置,并且有关空密码的错误应该会消失并被其他错误替换,或者它会起作用。