设置包的保护级别

在 Business Intelligence Development Studio 中初次开发 SQL Server 2005 Integration Services (SSIS) 包时,可以设置该包的保护级别。以后当部署包时,在 SQL Server Management Studio 中将包导入 Integration Services 或从中导出包时,或者在将包从 Business Intelligence Development Studio 复制到 SQL Server、SSIS 包存储区或文件系统服务时,都可以更新包的保护级别。例如,如果在计算机上使用某个用户密钥保护级别选项创建并保存包,则在将包提供给其他用户时,很可能需要更改保护级别,否则,他们将无法打开该包。

下表介绍 Integration Services 提供的保护级别。括号中的值是来自 DTSProtectionLevel 的值。在 Business Intelligence Development Studio 中处理包时,这些值出现在用来配置包属性的“属性”窗口中。

保护级别 说明

不保存敏感数据 (DontSaveSensitive)

保存包时不保存包中的敏感信息。这种保护级别不进行加密,但它防止标记为敏感的属性随包一起保存,因此其他用户将无法使用这些敏感数据。如果其他用户打开该包,敏感信息将被替换为空白,用户必须提供这些敏感信息。

使用密码加密所有数据 (EncryptAllWithPassword)

使用密码加密整个包。使用用户在创建包或导出包时提供的密码加密包。若要在 SSIS 设计器中打开包或使用 dtexec 命令提示实用工具运行包,用户必须提供包密码。如果没有密码,用户将无法访问或运行包。

使用用户密钥加密所有数据 (EncryptAllWithUserKey)

使用基于用户配置文件的密钥加密整个包。只有使用同一配置文件的同一个用户才能加载此包。使用基于创建包或导出包的用户的密钥来加密包。只有创建包或导出包的用户才可以在 SSIS 设计器中打开包或使用 dtexec 命令提示实用工具运行包。

使用密码加密敏感数据 (EncryptSensitiveWithPassword)

只使用密码加密包中的敏感信息。DPAPI 用于此加密。敏感数据作为包的一部分保存,但数据是使用当前用户在创建包或导出包时提供的密码加密的。若要在 SSIS 设计器中打开包,用户必须提供包密码。如果不提供该密码,则包虽然可以打开但其中不包含敏感数据,当前用户必须为敏感数据提供新值。如果用户试图在不提供密码的情况下执行包,则包执行将会失败。有关密码和命令行执行的详细信息,请参阅 dtexec 实用工具

使用用户密钥加密敏感数据 (EncryptSensitiveWithUserKey)

只使用基于当前用户的密钥加密包中的敏感信息。只有使用同一配置文件的同一个用户才能加载此包。如果其他用户打开该包,敏感信息将被替换为空白,当前用户必须为敏感数据提供新值。如果用户试图执行该包,则包执行将会失败。DPAPI 用于此加密。

依靠服务器存储进行加密 (ServerStorage)

使用 SQL Server 数据库角色保护整个包。只有将包保存到 SQL Server msdb 数据库后,才支持此选项。在将包从 Business Intelligence Development Studio 保存到文件系统时,不支持此选项。

使用密码加密包的包保护级别还要求您提供密码。如果将保护级别从不使用密码的级别更改为使用密码的级别,则系统将提示您输入密码。

加密(如保护级别所使用的加密)是通过使用 Microsoft Data Protection API (DPAPI) 来执行的,DPAPI 是 Cryptography API (Crypto API) 的一部分。

Integration Services 将 .NET Framework 类库 (FCL) 中提供的 Triple DES 加密算法(其密钥长度为 192 位)用于使用密码的保护级别。

对于使用用户密钥的保护级别,Integration Services 使用 DPAPI 标准。有关 DPAPI 的详细信息,请参阅位于 https://msdn.microsoft.com/library 的 MSDN Library。

在使用**“不保存敏感数据”**(DontSaveSensitive) 保护级别时,不保存包中的敏感信息。

对于所有值,敏感信息定义为:

  • 连接字符串的密码部分。但是,如果选择加密所有数据的选项,则整个连接字符串都将被视为敏感信息。
  • 标记为敏感的任务生成的 XML 节点。XML 节点的标记由 Integration Services 控制,用户无法更改。
  • 所有变量都标记为敏感信息。标记的变量由 Integration Services 控制。

也可以使用固定的数据库级角色来保护保存到 msdb 数据库的包。Integration Services 包括三个用于将权限分配给包的固定数据库级角色:db_dtsadmindb_dtsltduserdb_dtsoperator。有关详细信息,请参阅 Integration Services 角色数据库级别的角色

请参阅

任务

导入和导出包
如何使用 Integration Services 服务导入包
如何使用 Integration Services 服务导出包

概念

Integration Services 包
Integration Services 的安全注意事项

帮助和信息

获取 SQL Server 2005 帮助