我有一个具有保护级别的 SSIS 包 - EncryptSensitiveWithPassword,我可以在 BIDS 中执行这个包。
尝试使用包部署向导部署到文件系统时,我收到错误
包的保护级别需要密码但包密码属性为空
我应该在哪里设置这个密码?(在设计器的 BIDS 中,我设置了此密码,并且在尝试打开项目时它甚至要求我输入密码)那么对于部署是否还有另一个属性要设置?
我有一个具有保护级别的 SSIS 包 - EncryptSensitiveWithPassword,我可以在 BIDS 中执行这个包。
尝试使用包部署向导部署到文件系统时,我收到错误
包的保护级别需要密码但包密码属性为空
我应该在哪里设置这个密码?(在设计器的 BIDS 中,我设置了此密码,并且在尝试打开项目时它甚至要求我输入密码)那么对于部署是否还有另一个属性要设置?
此错误通常是由于PackagePassword
您的配置中的属性为空而引起的。请检查它,如果未设置,请设置它。
还要使用密码将保护级别更改为DontSaveSensitive
打开包装后。然后将包添加到您的解决方案中,完成后,将保护级别设置为SaveSensitiveWithPassword
.
尝试使用这些设置部署您的包。
参考:保护您的 SSIS 包
根据 user2339071 的回答,如果您的连接中没有任何密码(即您使用 Windows 受信任的安全性),那么您实际上不需要密码。
但是,假设你这样做......(也许你可以在原始问题中进行调整):
我的理解是包密码基本上是在运行时指定的,而不是部署时指定的。
当您的 DTSX 文件存在于文件系统中时(在部署它或直接复制它之后),那么您需要以某种方式执行它,这就是您指定包密码的地方。
例如,如果您使用 SQL 代理来运行您的程序包,您将在作业中找到一个字段来输入该程序包密码。如果您直接使用 DTEXEC.EXE,那里还有一个用于您的软件包密码的开关。
我个人不使用包部署向导,我只是将 DTSX 文件复制到目标文件位置。
使用类似于以下示例之一的命令设置或更改包的保护级别:
以下命令将文件系统中单个包的 ProtectionLevel 属性设置为级别 2,“使用密码加密敏感”,密码为“strongpassword”:
dtutil.exe /file "C:\Package.dtsx" /加密文件;"C:\Package.dtsx";2;strongpassword
以下命令将文件系统中特定文件夹中所有包的 ProtectionLevel 属性设置为级别 2,“使用密码加密敏感”,密码为“strongpassword”:
for %f in (*.dtsx) do dtutil.exe /file %f /encrypt file;%f;2;strongpassword
如果您在批处理文件中使用类似的命令,请在批处理文件中输入文件占位符“%f”作为“%%f”。