当我在 SQL Server 商业智能开发工作室中创建一个新的 SSIS 包时,默认的 ProtectionLevel 是EncryptSensitiveWithUserKey
,但我们要使用的标准 ProtectionLevel 是DontSaveSensitive
。
有谁知道是否有办法更改默认的 ProtectionLevel 值?
当我在 SQL Server 商业智能开发工作室中创建一个新的 SSIS 包时,默认的 ProtectionLevel 是EncryptSensitiveWithUserKey
,但我们要使用的标准 ProtectionLevel 是DontSaveSensitive
。
有谁知道是否有办法更改默认的 ProtectionLevel 值?
SSIS 2012 允许包保护级别的项目级别设置。
如果我手动将包保护级别更改为与项目不同的级别,则在您尝试运行/构建时它将失败。
Project consistency check failed. The following inconsistencies were detected: Package3.dtsx has a different ProtectionLevel than the project.
我发现最好的方法是在项目中或在实际的 Visual Studio 安装中创建模板包。
在创建基础包、设置日志记录、配置、包保护级别等之后,您需要找到一种让人们使用它的方法。如果它是基于项目的,我发现让人们在复制包后重新生成包 ID 很重要。BIDSHelper非常适合解决这个问题——只需在解决方案资源管理器中右键单击包并选择Reset GUIDs.
否则,我的基础包中有一个注释,提醒开发人员右键单击控制流,选择属性,然后在 ID 属性中单击<Generate New ID>
如果您选择从“添加,新项目菜单”(ctrl-shift-A)中建立模板,您只需将包复制到您的模板文件夹中。
单击 SSIS 设计器中控制流选项卡的设计区域中的任意位置以显示包属性并根据您ProtectionLevel
的安全树视图中的要求进行选择.....
根据我的经验,更改项目的属性级别对单个包没有任何作用。但是在以下页面中有一个解决方案:
http://technet.microsoft.com/en-us/library/cc879310.aspx
这是使用这样的命令..
for %f in (*.dtsx) do dtutil.exe /file %f /encrypt file;%f;2;strongpassword
在您的 SSIS 项目文件夹中。它将项目中的每个模块更改为倒数第二个值中指定的保护级别。如果为 0,则不存储值,则不需要密码,可以去掉最后一个分号和后面的所有内容。
以下 MSDN 文章有一个表格,其中包含每个保护级别的数字,与 dtutil 一起使用: