安全部署 (Integration Services)
与在 Integration Services 包生命周期中的每个阶段一样,在通过部署计算机将包部署到其他计算机时,您可以通过执行以下措施增强安全性:
确保只打开和运行来自可信源的包。
对于包部署,这是指通过使用数字证书对包进行签名来标识这些包的源。
确保仅由授权用户打开和运行包。
对于包部署,这是指应使用 Integration Services、SQL Server 和文件系统中提供的安全功能,以实现以下目的:
通过设置包的保护级别保护包的内容。
使用文件系统安全功能控制对包及其关联的其他文件的访问。
使用数字签名标识包的源
可以使用标识创建包或上次修改包的个人或部门的数字证书对包进行签名。随后,管理员可以在注册表中或 dtexec 命令行处指定可选设置,将 Integration Services 配置为执行下列任务:
要求包具有有效且可信的签名。
打开包时检查签名。
针对未签名的包发出警告或将其拒绝。
有关数字签名的详细信息,请参阅以下主题:
通过设置保护级别保护包的内容
通过设置包的 ProtectionLevel 属性,可以对包所含的任何敏感数据(如密码)或包的所有内容进行加密。例如,可以设置以下保护级别:
通过选择 DontSaveSensitive 选项,可以将敏感数据完全删除。
通过选择 EncryptSensitiveWithPassword 选项,可以确保只有提供密码的人员能够看到敏感数据。
通过选择 EncryptAllWithPassword 选项,可以确保只有提供密码的人员能够加载和运行包。
在将包部署到其他计算机时,确保删除 EncryptSensitiveWithUserKey 和 EncryptAllWithUserKey 选项。在开发过程中,开发人员可以通过设置 EncryptSensitiveWithUserKey 选项确保只有自己能够看到敏感数据。同样,开发人员也可以通过设置 EncryptAllWithUserKey 选项确保只有自己能够加载和运行包。但是,在将包部署到其他计算机时,这些选项会阻止包创建者以外的任何用户加载和运行包。此外,这两个选项还会使您无法使用 SQL Server 代理对包进行计划。
在开发过程中,开发人员可能会使用保护级别的较低设置。但在部署包时,应将保护级别更改为较高设置。
在将包导入或部署到 SQL Server 时,ServerStorage 保护级别将与 Integration Services 角色一同变为可用状态。有关这些角色的详细信息,请参阅 使用 Integration Services 角色。
有关详细信息,请参阅设置包的保护级别。
控制对已部署的包和包所创建或使用的文件的访问
在部署包时,可以决定要将其存储在 SQL Server 的 msdb 数据库中还是存储在文件系统中。
在 SQL Server 中存储包时。可以使用 SQL Server 中提供的安全功能以及 Integration Services 的固定数据库级角色控制对已存储包的访问。有关这些角色的详细信息,请参阅 使用 Integration Services 角色。
在文件系统中存储包时。可以使用 Microsoft Windows 中提供的安全功能以及文件系统中提供的访问控制列表 (ACL) 控制对已存储包的访问。
在部署包时,部署可能包括其他文件,如配置文件。这些文件也可能包含敏感数据。有关如何控制对上述其他文件的访问的信息,请参阅控制对包使用的文件的访问。
|
使 Integration Services 保持最新