Ope*_*rce 30 sql-server ssis sql-server-2005
我曾经有一个有sql server身份验证连接的dts.基本上,用户标识密码存储在包本身中.现在当我去SSIS时,密码没有存储到包中.当我谷歌问题时,我看到了这一点.http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/c720e694-2f58-483a-9cd7-3feb7de2db7b 但似乎没有人给出好的解决方案.你们有人可以帮忙吗?提前致谢
Sam*_*Sam 26
该答案指向了这篇文章:http://support.microsoft.com/kb/918760
以下是建议的解决方案 - 您对它们进行了评估吗?
创建SQL Server代理代理帐户.此代理帐户必须使用凭据,该凭据允许SQL Server代理将作业作为创建程序包的帐户运行,或者作为具有所需权限的帐户运行.
该方法用于解密秘密并满足用户的关键要求.但是,此方法可能成功有限,因为SSIS包用户密钥涉及当前用户和当前计算机.因此,如果将程序包移动到另一台计算机,即使作业步骤使用正确的代理帐户,此方法仍可能失败.回到顶端
将SSIS Package ProtectionLevel属性更改为ServerStorage.此设置将程序包存储在SQL Server数据库中,并允许通过SQL Server数据库角色进行访问控制.回到顶端
将SSIS Package ProtectionLevel属性更改为EncryptSensitiveWithPassword.此设置使用密码进行加密.然后,您可以修改SQL Server代理作业步骤命令行以包含此密码.
使用SSIS包配置文件存储敏感信息,然后将这些配置文件存储在安全文件夹中.然后,您可以将ProtectionLevel属性更改为DontSaveSensitive,以便该包未加密,并且不会尝试将密钥保存到包中.运行SSIS包时,将从配置文件中加载所需的信息.如果配置文件包含敏感信息,请确保配置文件得到充分保护.
要获得长期解决方案,请创建一个使用与默认设置不同的保护级别的包模板.将来的包中不会出现此问题.
小智 20
您可以通过转到属性并添加password = yourpassword将密码存储在配置字符串中,但非常重要的是在'password'字符之前和';'之后添加一个空格 如下所示:
password=yourpassword
希望这会有所帮助--Vijay K.
SSIS中的设计行为是防止将密码存储在包中,因为这样做不好或不安全.
相反,要么使用Windows身份验证,所以你不要在软件包或配置文件中存储秘密,或者,如果你的环境中真的不可能(例如你没有Windows域),那么你必须使用如下所述的解决方法http://support.microsoft.com/kb/918760(Sam的正确,只是在那篇文章中进一步阅读).最简单的答案是配置文件与包一起使用,但是你必须担心配置文件是安全存储的,所以有人不能只读取它并获取凭据.