[分享]微软BI专题-IS 项目部署及其安全性控制

 

Integration Services(IS)作为微软新一代企业级的ETL工具,其功能之强大、性能之高效已经受到业界的普遍认可,成为众多企业进行数据整合的首选工具。

      一套优秀的软件系统除了具备功能完善、稳定高效的基本要求之外,要想博得众多用户的青睐,必须还要具备良好的可移植性和强大的安全控制机制。
      Integration Services(IS)作为微软新一代企业级的ETL工具,其功能之强大、性能之高效已经受到业界的普遍认可,成为众多企业进行数据整合的首选工具。除 此之外,IS 所提供的多种项目部署方式和强大的安全控制机制也是它能被广泛使用的重要因素,今天我们就来看一下这两方面的内容。

      IS的部署方式
      通常情况下,ETL工作的开发环境与最终的运行环境并不相同,因此,当IS 流程开发完成后要进行项目部署,即将其移植到最终的服务器环境来运行。IS 为我们提供了多种项目部署的方式,总的可以分为手动部署和利用部署工具自动部署两种方式。
      手动部署。 IS包的主体文件是以“dtsx”为后缀的一种基于XML 文件格式的文件,它是可以通过双击来直接运行的。在安装IS的时候,会同时安装一个“dtexecui .exe”的客户端程序,我们可以在“运行”中直接调用此程序来执行IS包任务。如图1所示,可以在此程序中对包的各种参数和相关支持文件进行修改,然后 直接执行,而不必再次打开IS开发环境来编辑。


      正是基于IS包的这种特性,我们可以直接将包文件连同它的相关支持文件(包配置文件、检查点文件、日志文件等)拷贝到目标服务器上,实现部署过程。但这种 方式只能将包部署到文件系统中。我们不仅可以把包部署到文件系统,还可以部署到SQL Server 的数据库中,实现集中管理,还可以借助SQL Server角色来对包进行安全控制。这其中又可以分为两种方式,我们不妨分别把它们称为“包注册”和“包导入”方式。参见图2。

     图中的“File System”和“MSBD”两个目录对应着两种部署方式,它们的操作方式基本相同,右键鼠标即可打开部署向导。“包注册”方式相对比较简单,实质上只是 将包文件在IS服务中做了一个注册,包的主体文件仍然是存放在文件系统,而IS服务只是负责维护一个指向该主体文件的链接。通过这种方式,主要可以实现包 的集中管理和维护。
     “包导入”部署方式,顾名思义,是将包的主体文件连同包的相关参数和属性都导入到了数据库
中,具体位置存储在M S D B 系统数据库中的“Sys_DtsPackage90”表中。这种方式,我们不仅可以实现对包的统一管理,而且还可以借助MSDB 数据库提供的角色来实现对包文件的安全管理。
       利用部署工具部署。除了手动部署,IS 环境还为我们提供了通过生成部署工具来实现项目的部署过程。在IS开发环境中,点击“项目”,选择“属性”打开项目属性对话框,如图3 所示。


      点击“部署实用工具”,可以看到和项目部署相关的三个属性:

  • AllowConfigurationChanges:是否允许在部署过程中更改属性值,一般保留默认值“True”即可;
  • CreateDeploymentUtility:是否生成部署工具,选择“True”;
  • DeploymentOutputPath:选择保存部署工具的位置, 默认情况保存在项目目录下的“bin/Deployment”目录下。

      设置完成后,点击“生成”,在上述目录下便生成了一个包含部署工具和相应包文件的目录,其中的部署工具文件后缀为 “SSISDeploymentManifest”,也是一个基于XML格式的文件。将该目录拷贝到服务器上,执行部署工具,即可根据部署向导进行项目部 署。同样有两种方式,既可部署到文件系统,也可部署到SQL Server数据库中,我们推荐使用后者,这种部署方式便于我们下一步对包进行安全性控制。在将包文件拷贝到数据库的同时,它还会将相应的支持文件拷贝到 指定的目录。以上是我们常见的几种IS 包部署方式,通常我们推荐大家使用包部署工具,并将包部署到SQL Server数据库中。

      IS的安全控制
      当最终的项目在服务器上运行后,由于ETL处理的数据对一个企业来说通常都是保密的,要区分不同人群的访问权限。因此,必须要对IS 流程进行安全控制,提供合理的安全访问机制。IS 提供的安全控制机制功能强大,可以从以下四个不同的角度来加提高包的安全性。
      IS包中敏感信息的保护。 IS流程中通常包含一些关键的属性信息,若这些信息被篡改,将直接影响到流程的运行。一些典型的敏感信息是IS包内数据源或数据目标的连接字符串、变量的 值,等等。其实I S 中每个组件的每个属性,都相应有一个标志位来标识此属性是否为敏感属性,这是I S 内部已设定的,我们无法进行修改。在IS 环境中具体的设置如图4所示,在项目属性页面的“安全性”一组中,“Protect ionLevel”下拉框中有六种选项,其中第二、三种就是对包内的敏感信息进行加密。


      对整个IS 包进行保护。除了对包内的敏感信息进行保护,IS中还可以对整个包进行保护,包的开发者可以为包设置密码,其他人无权查看。参见图4 ,选择第四个选项"EncryptAllWithPassword”,然后点击“PackagePassword”,输入密码即可。
      通过SQL Server角色实现安全控制。当把IS包部署到SQL Server 数据库中时,我们还可以借助SQL Server的MSDB系统数据库提供的三种和DTS相关的角色,对包进行各种权限的安全控制,如图5 所示。

      三种角色的权限分别如下:

  • Dtsadmin:拥有最高的权限,可以对MSDB 中的每一个包进行任何操作。
  • DtsOperator:可以查看并运行所有的包,也能导入导出所有的包,但不能修改其它用户部署的包。
  • Dtsltduser:只能枚举MSDB目录下的包,除非是他自己部署的包,对于其它的包,没有权限查看或运行。

     与此相对应,MSDB 数据库中的每个包都有自己的角色控制选项,如图6 所示,默认情况下包的读取者包括本包的创建者、dtsoperator角色、dtsltduser角色;包的写入者只包括包的创建者和dtsadmin 角色。新创建的Windows帐户仅拥有MSDB数据库的Public权限,不能对任何包进行操作,甚至不能枚举包的名称。要想提高该用户的权限,需要将 其映射到MSDB 数据库的其它角色,即上面提到的dtsltduser、dtsoperator和dtsadmin三种角色。


     使用证书签署包。 为防止开发好的IS包遭到别人恶意修改,可以通过证书对包进行签署。在IS菜单中选择“SSIS—数字签名”可以对包进行签署。经过签署后的包遭到非法修 改后将不能继续运行。这种方式是通过注册表来实现的,在注册表中的“HKEY_LOCAL_MACHINE/SOFTWARE/
MICROSOFT/MSDTS/BlockedSignatureStates”键中有四个键值。
      企业级的环境中一般使用“3”这个级别,它是最严格的。

      总结
      通过这期内容大家可以看到,Integration Services除了具有强大的数据集成能力外,在项目部署、安全性控制方面也是非常优秀的,这些功能让我们ETL的后期工作更加快捷而高效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值