我是一个Oracle人员,他突然让SQL Server和SSIS掉到了他的腿上,所以我可能没有以正确的方式使用这个术语,但是这里有:
有一个SSIS包可以将数据从Oracle数据库提取到我们的SQL Server 2008 R2仓库中。如果我在SSIS Visual Studio 2008中打开此包,系统会提示我输入密码:
包'MyRefresh.dtsx'中的敏感数据已使用密码加密。
包装本身。我输入密码。我运行包。效果很好。 之前的人已经将这个软件包加载到SQL Server中,并且每天凌晨1点运行一次,并且它也很有用。
最近,有一些数据库更改。当然,包裹停止了工作。我能够修复它,而且,如果通过SSIS Visual Studio 2008运行它会运行得很好。但是,当我将它加载到SQL Server中并且作业运行时,它失败了:
0xC001405F无法解密加密的XML节点,因为未指定密码或密码不正确。
我在哪里/如何指定密码以便作业可以运行?
答案 0 :(得分:8)
延迟回答,但可能对其他用户/帖子访问者有帮助
简而言之,要将程序包加载到SQL Server,必须使用指定的新凭据导出它,然后将其导回到指定的文件夹中。
以下是我在设置SSIS package encryption manually in SSMS时发现的文章,该文章提供了有关如何导入/导出加密包的快速教程。
请注意,保护级别选项会在一种情况下考虑敏感数据,或在其他情况下考虑特定包中包含的所有数据。在Integration Services中默认设置被视为敏感的数据:先前标记为由SSIS服务控制的精细,不可更改的XML标记的变量,以及密码,如果“使用密码加密所有数据”,则可将其视为敏感被选中。
包裹保护等级:
希望这些信息有用。
答案 1 :(得分:3)
如果您有机会我建议您不再使用 EncryptAllWithPassword 保护级别。有关包加密级别的更多信息,请阅读此处:
简而言之,包加密的想法是阻止人们打开包XML以提取纯文本密码。但一般来说,这是以不安全的方式实施的,这会破坏目的。
我建议您在整个过程中使用Windows身份验证:
/
登录,无密码)现在您不再需要加密您的软件包了(您可以使用 DontSaveSensitive )。所有操作的权限都是针对SQL代理服务帐户的。
您不再需要记住包裹密码或Orace登录密码。
此外,例如,如果您需要在Oracle登录名上旋转密码,最初您必须在包中的Oracle 和中更改此密码。但是通过使用Windows身份验证,不再需要这样做。
如果您有兴趣,我可以为您提供更多信息。
答案 2 :(得分:1)
您可以使用/de
开关和dtexec
实用程序作为密码,如下所示:
dtexec /f <filename> /de <password>