SSRS最佳实践:无忧部署

日期: 2011-06-28 作者:Roman Rehak翻译:沈宏 来源:TechTarget中国 英文

虽然SQL Server报表服务(SSRS)平台并不难学习,但它仍然是一种相当复杂的技术。SSRS的成功运用需要数据库、管理学、报表构建和数据分析的组合能力。这种专业知识的结合往往是很难整合的,特别是在规模较小的公司中一个人可能身兼数职。   作为一名技术顾问,我见过几种SQL Server报表服务的部署,这些都可以从几个简单的SSRS最佳实践中受益。

  备份加密密钥。SSRS使用加密技术来保护敏感的配置数据。如连接字符串和密码之类的信息都存储在后端ReportServer数据库和配置文件中。它们使用存储在SSRS中的加密密钥进行加密。

如果将SSRS迁移到另一台服务器,你需要使用相同的加密密……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

虽然SQL Server报表服务(SSRS)平台并不难学习,但它仍然是一种相当复杂的技术。SSRS的成功运用需要数据库、管理学、报表构建和数据分析的组合能力。这种专业知识的结合往往是很难整合的,特别是在规模较小的公司中一个人可能身兼数职。

  作为一名技术顾问,我见过几种SQL Server报表服务的部署,这些都可以从几个简单的SSRS最佳实践中受益。

  备份加密密钥。SSRS使用加密技术来保护敏感的配置数据。如连接字符串和密码之类的信息都存储在后端ReportServer数据库和配置文件中。它们使用存储在SSRS中的加密密钥进行加密。如果将SSRS迁移到另一台服务器,你需要使用相同的加密密钥来解密所有的加密数据。因此,恰当的加密密钥管理是非常重要的。

  在安装SSRS时,首先要做的事情是使用Reporting Services配置管理器把加密密钥备份到一个密码保护的文件中。在SSRS服务器上保留一份密钥文件的副本,并在网络上某个安全的地方也保留一份。如果需要将SSRS迁移到另一台服务器,就可以使用相同的配置管理器从原来的服务器中恢复密钥。否则,你必须手工地重新创建所有的数据源和其他的加密内容。这不是你想做的事情,特别是在SSRS服务器无法正常工作的时候,而你需要迅速地把SSRS迁移到另一台服务器上。尽管微软强调保留加密密钥备份的重要性,我仍然会不时地发现客户并没有对密钥进行备份。

  使用Windows Active Directory组来控制安全性。系统管理员早已习惯创建Windows组和给组分配权限的做法,而不是给单个用户账户分配权限。这种做法非常有意义,因为这可以让你轻松地添加或从组中删除用户,使你的安全管理更加容易。但我没有看到这种通用的做法被开发人员和数据库管理员使用。我见过很多SSRS安装,管理权限的人把访问报表或报表的权限分配给个人,而不是建立像营销或管理之类的组来简化管理。

  使用报表文件夹来控制安全性。使用Windows组而不是用户账户,则更有意义;通过在文件夹级别管理安全性,可以获得类似的便捷性。将报表组合成逻辑组,然后放入到一个报表文件夹中,接下来分配文件夹权限,而不是单个报表的权限。SSRS还允许级联权限到子文件夹层次,以便于你设计一棵权限树,其中高权限组可以查看所有的文件夹,而其他组只能查看比根文件夹低一层的报表。

  在配置报表数据源时使用保存的身份验证。使用Windows身份验证通常是最值得推荐的选择,但它与SSRS配合的并不好。如果在配置报表时使用Windows身份验证连接到SQL Server数据库,那么只有当数据库与SSRS服务器在同一台服务器上时才起作用。但是如果你需要连接到另一台物理服务器,则需要“双跳”身份认证(浏览器和SSRS之间是一跳,SSRS和数据库服务器之间是另一跳)。我必须解决这个问题:用户使用SSRS服务器上的浏览器访问报表时工作正常,而当从另一台机器访问SSRS时却不能工作;这正是由于“双跳”身份验证造成的。从理论上讲,如果你正确地配置了网络身份验证协议Kerberos,那么“双跳”身份验证应该正常工作,但我很少看到这方面的成功应用。因此,在配置数据源时最好使用SQL身份验证方式,或是指定一个用于连接SQL Server的Windows账户。

  备份SSRS后端数据库。SSRS使用ReportServer和ReportServerTempDB数据库,你应该备份这些数据库到安全的地方,而不是放在运行SQL Server的计算机上。如果服务器坏了,需要重新创建SSRS环境时,备份就会起到作用,否则你将不得不重新部署所有的报表和重做所有的配置。我见过某些公司备份到本地驱动器,但如果失去了整个机器,那么就不会得到任何好处。

  演练将SSRS迁移到另一台服务器。把SSRS迁移到另一台服务器是比较简单的:备份ReportServer和ReportServerTempDB数据库以及加密密钥。接下来,在另一台SQL服务器上将它们恢复出来,然后使用它们配置新的SSRS服务器。一旦你恢复了加密密钥,新的SSRS环境就应该与原来的一样。这是一个很好的演练,因为即使SSRS服务器宕机,你也有能力迅速地将新服务器联机上线。

  使用源代码管理保存所有的报表。很多时候,在一家公司里只有几个人进行报表的开发和部署,而没有一个集中的地方用于报表存储及其版本管理。开发人员习惯使用源代码管理软件(如SourceSafe或SVN),但企业用户却没有使用的习惯。由于他们频繁地构建和部署报表,所以他们应该使用相同的过程和规范,把新报表保存到源代码存储库,并在需要修改时从源代码存储库中把报表取出来。除了有一个集中的地方用于保存报表,还能进行版本管理和备份,你会发现这更容易重新搭建一个新的SSRS环境,从源代码存储库中获得报表,而不是从开发报表的人员那里收集报表定义文件。

  虽然本文介绍的SSRS最佳实践很直观并易于实施,但并不是每家公司都会遵守。我强烈建议你检查SSRS配置,应用本文推荐的配置。此外,记得要备份加密密钥和数据库,演练SSRS的迁移过程。毕竟这些工作可以减少你管理SSRS的时间,而且你还可以有更好的准备用以应付意外事件,如迁移到一台新的SSRS服务器。

翻译

沈宏
沈宏

相关推荐