Integration Services 的安全注意事项
SQL Server 2005 Integration Services (SSIS) 中的安全机制由几层组成,它们提供了丰富灵活的安全环境。Integration Services 安全机制结合使用包级属性、SQL Server 数据库角色、操作系统权限和数字签名等。
SQL Server 2005 Integration Services (SSIS) 使用下列安全功能在客户端和服务器上实现安全:
- 设置包的 ProtectionLevel 属性,指定应通过加密来保护敏感数据,还是应该在保存包前删除这些数据。
- 设置包的 ProtectionLevel 和 PackagePassword 属性,通过使用密码或者用户密钥加密包的全部或部分来保护包。
- 通过使用 SQL Server 数据库级角色控制对包的访问。
- 通过保护文件位置和限制对 SQL Server Management Studio 中的包的访问来保护操作环境的安全。
- 通过使用证书签名包来保证包的完整性。
敏感数据
Integration Services 支持保护包中的敏感数据。通常,标识为敏感的属性包含如密码或连接字符串这样的信息。Integration Services 会设置这些属性的敏感特性,而且敏感特性无法更改。如果编写自定义任务、连接管理器或数据流组件,则可以指定 Integration Services 应该将哪些属性视为敏感属性。
Integration Services 自动检测敏感属性,然后根据指定的包保护级别处理这些属性。例如,如果包所使用的是利用密码加密敏感信息的保护级别,则包中标识为敏感的所有属性的值都是加密的。
包保护级别
通过设置包的保护级别,可以对包进行加密,以使其属性值处于保密状态。包包括 ProtectionLevel 属性,您可以根据包所需要的保护级别对此属性进行设置。例如,在组开发环境中,可以使用处理该包的组成员都知道的一个密码来加密包。有关详细信息,请参阅设置包的保护级别。
有关详细信息,请参阅 Integration Services 包和设置包属性。
数据库级角色
Integration Services 包括三个固定数据库级角色 db_dtsadmin、db_dtsltduser 和 db_dtsoperator,用于控制对包的访问。每个包都可以有关联的读取者角色和写入者角色。还可以定义要在 Integration Services 包中使用的自定义数据库级角色。角色只能在保存到 SQL Server 的实例的 msdb 数据库中的包上实现。
有关详细信息,请参阅 Integration Services 角色。
包存储
Integration Services 包可以作为 XML 文件保存到文件系统中,文件扩展名为 .dtsx;或者保存到 SQL Server 2005 的实例的 msdb 数据库中。
将包保存到 msdb 中可以提供服务器级、数据库级和表级的安全性。SQL Server 2005 包存储在 sysdtspackages90 表中,而 SQL Server 2000 包存储在 sysdtspackages 表中。此外,当备份 msdb 时,会自动备份保存到 sysdtspackages90 和 sysdtspackages 中的包。存储在 sysdtspackages90 表中的 SQL Server 2005 包也会得到数据库级角色的保护。
如果没有将包存储到 msdb 中,请确保文件系统中包含包文件的文件夹的安全。
有关详细信息,请参阅保存包。
包配置存储
包配置可以保存到文件系统或 SQL Server 2005 数据库的某个表中。配置除可以保存到 msdb 数据库外,还可以保存到任意 SQL Server 2005 数据库,这使得您可以指定用作包配置存储库的数据库。您还可以指定将包含这些配置的表的名称,Integration Services 将自动创建具有正确结构的表。
将配置保存到表中可以提供服务器级、数据库级和表级的安全性。此外,当备份数据库时,会自动备份保存到 SQL Server 中的配置。
如果没有将配置存储到 SQL Server 中,请确保文件系统中包含包配置文件的文件夹的安全。
有关详细信息,请参阅包配置。
Integration Services 文件夹
SQL Server Management Studio 使用 SQL Server 服务来列出正在运行的包。请一定要限制对运行 SQL Server 服务的计算机的访问,以防止未经授权的用户枚举存储在本地和远程计算机的包以及获取私有信息。有关详细信息,请参阅保护对正在运行的包的访问。
包使用的文件
已经设置为使用配置、检查点和日志记录的包所生成的信息将存储在包的外部。这些信息可能是敏感信息,应该加以保护。检查点文件只能保存到文件系统中,但配置和日志可以保存到文件系统中,也可以保存到 SQL Server 数据库表中。保存到 SQL Server 中的配置和日志受 SQL Server 安全机制的保护,但写入文件中的信息需要有其他的安全保护措施。有关详细信息,请参阅保护包使用的文件。
数字签名
可以使用证书对包进行签名。您可以将包配置为在加载包时检查签名,在包被更改时发出警告。包包括 CheckSignatureOnLoad 属性,将该属性设置为 True 可以要求每次加载包时都要检查包上的数字签名。有关详细信息,请参阅使用证书对包进行签名。
请参阅
任务
为 Integration Services 访问配置 Windows 防火墙
概念
SQL Server Integration Services