![](/img/trans.png)
[英]How best to store a password in SQL Server so that the password can be retrieved
[英]SSIS in SQL Server: How to get it to store password
我是一个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节点。
我在哪里/如何指定密码以便作业可以运行?
答案较晚,但可能对其他用户/线程访问者有帮助
简而言之,要将程序包加载到SQL Server,必须使用指定的新凭据将其导出,然后再导入回指定的文件夹中。
这是我在SSMS中手动设置SSIS包加密的文章,该文章提供了有关如何导入/导出加密包的快速教程。
请注意,在一种情况下,“保护级别”选项涉及敏感数据,而在另一种情况下则涉及特定包装中包含的所有数据。 默认情况下,在Integration Services中设置被认为敏感的数据:先前标记为精致,不可更改的XML标记(由SSIS服务控制)的变量和密码,如果“使用密码加密所有数据”,则可以视为敏感数据被选中。
包装保护等级:
希望此信息对您有所帮助。
如果有机会,我建议您不再使用EncryptAllWithPassword保护级别。 在此处阅读有关软件包加密级别的更多信息:
简而言之,包加密的想法是阻止人们打开包XML以提取纯文本密码。 但是通常这是以不安全的方式实现的,这无法达到目的。
我建议您改用Windows身份验证:
/
登录,无需密码) 现在,您不再需要加密程序包(可以使用DontSaveSensitive )。 所有操作的权限均针对SQL Agent服务帐户。
您无需再记住软件包密码或Orace登录密码。
同样,例如,如果您需要轮换Oracle登录名上的密码,则最初您必须在Oracle 和软件包中更改该密码。 但是通过使用Windows身份验证,这不再是必需的。
如果您有兴趣,我可以给您更多信息。
您可以将/de
开关与dtexec
实用程序一起使用来输入密码,如下所示:
dtexec /f <filename> /de <password>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.