整合SQL Reporting Services 和 Configuration Manager 2007 R2

此文翻译自System Center Configuration Manager 研发团队博客,英文原文请参见 SQL Reporting Services Integration with System Center Configuration Manager 2007 R2

背景

在Configuration Manager 2007 R2之前,报表方案提供给用户的是一个以ASP为基础的解决方案,它包括384张报表,这些报表是site server 的一部分。执行任何报表之前, 需要用户通过“site role wizard”安装“Reporting Point” 站点角色。“Site role wizard ”会创建一个在IIS下的ASP 网站,通过这个网站用户可以执行他所需要的报表。然而,用户常常因为网页需要生成”昂贵”的报表而超时,所谓昂贵的报表指的是从Configuration Manager数据库中返回大量记录的报表。

https://social.technet.microsoft.com/Forums/en-US/configmgrgeneral/thread/4c7d2829-3a8f-44d5-9b37-a4c3a128d126/

此外,这个方案在提供的标准报表功能时灵活性不够,比如并未提供一些标准报表功能:输出报表到各种不同的格式、在报表中定制样式、按特定的时间执行报表,以及允许用户订阅报表。

具有工业化的标准的报表方案 - SQL 报表服务,给Configuration Manager提供了更高效,可扩展性更强的报表解决方案.

SQL 报表服务的优点

SQL 报表服务在监视报表执行性能及调整报表执行参数方面提供了极大的灵活性,同时提供了各种有用的功能,例如:

1.可以将报表输出为很多其他格式,像Word, Excel, PDF 等。

2.可以创建报表订阅,指定执行报表的时间,并把报表发给感兴趣的人。比如: 为软件更新报表创建一个报表订阅,如果我们规定所有的补丁都在周二下发,那么我们就可以指定这个报表在周二晚上或者周三早上执行。

3.由于SQL报表服务中提供的SQL Report Designer,报表编写功能被大大强化了。用户可以数据模型及基于SQL的报表,并可以脱离SQL报表服务器执行。

4.我们可以预估每个报表可能产生的数据,从而为他们设置不同的超时时间。

5.由于这些报表都是标准的SQL报表服务的报表,它们很容易在SQL报表服务器之间导入和导出。

6. 一个常见的需求是在生产环境上启用报表之前,先在Configuration Manager数据库副本上执行报表以测试报表的有效性。我们可以简单地通过改变报表的数据源来实现这个需求;先设置数据源为数据库副本,如果测试通过,就可以修改数据源为生产环境下的数据库。这对报表测试是非常有用的一个功能。

7.报表样式是另一个常见的客户需求。客户通常要求改变报表上的字体,字体大小,以及客户Logo。现在用户可以通过SQL报表服务设计自己的报表样式。

8.SQL报表服务提供报表缓存功能来减少随后报表执行需求的执行时间。这个缓存的超时值可以根据客户需要报表数据变化的频率来设定。

9.报表快照是另一种报表缓存,并且它可以指定特定的执行时间。当查看某一个报表快照时,服务器会读取执行此快照时存储下来的数据。

SQL 报表服务和Configuration Manager 2007 R2的整合

在Configuration Manager 2007 R2中,引入一个新的site角色“Reporting Service Point”,它通过SQL 2005/2008的报表服务来帮助完成的报表功能。它通过Configuration Manager 2007 R2的一个转换向导实现,允许用户转换所有的当前存在的Configuration Manager 报表,同时部署这些报表到SQL报表服务器。

Site 角色的安装和设置

下面是如何设置并执行SQL报表服务的简要描述:

1. 需求 :一台装有SQL2005/2008报表服务器

2. 执行“site role wizard”,然后安装“Reporting Service Point”到SQL报表服务器上。在site role wizard中会要求输入一个根文件夹名,这个文件夹是所有要部署到的报表服务器上的报表存放的位置。

3. 一旦“site role wizard”成功执行,你会在Configuration Manager的管理控制台的Reporting中的Reporting Services下看到这个报表服务器。

4. 右击这个服务器,点击“Copy Reports Wizard”。

5. 执行“Copy Reports Wizard”,选择所有你想要转换的报表。

6. 此向导会引导用户把所有选择的报表转换成为基于SQL报表服务的报表,并且将转换后的报表部署到报表服务器的指定文件夹(第2步提到的)。

7. 同时此向导也会引导用户为各个报表分类创建不同的文件夹,并将转换后的报表存放在相应类型的文件夹中。

8. 所有报表部署完后,你可以看到所有的报表文件夹在Configuration Manager的管理控制台下,并能够执行这些文件夹下的任何报表。你可以在控制台下执行报表操作,也可以直接在SQL报表服务下通过SQL 报表管理器(Web UI)来做。SQL 报表服务器的报表管理器URL有如下的命名规范:

对默认的SQL Reporting Server 实例, URL访问报表和报表文件夹是:https://[ReportServer]/Reports

对某个SQL Reporting Server 实例, URL应该是:https://[ReportServer]/Reports_[InstanceName]

其他Configuration Manager管理控制台提供的功能

1. 报表订阅向导用来为Configuration Manager的报表建立订阅服务

2. 报表编写工具:

基于Model的报表向导

Configuration Manager 2007 R2针对客户端安全和软件更新管理,提供两种内置的报表Model。报表编写向导可以让用户使用这些Model来定制符合自己需求的报表。

基于SQL的报表向导

基于SQL的报表向导可以提供高级用户更多的功能,用户可以设置SQL查询语句,并根据这些查询生成报表。通过这个工具,用户可以看到所有可用的Configuration Manager数据库视图,及相应的字段,可以帮助用户很容易创建SQL查询,减少出错几率和拼写错误。

常见问题

1. 新的Reporting Service role是否可以和原来的Reporting point共存?

回答 :是。

2. 查看和执行Configuration Manager最小的权限是什么?

回答 :这方面的安全模式依赖于SQL 报表服务器角色基础的访问模式。一般用户需要浏览权限在报表服务器上浏览和执行报表。此外需要在报表服务器上的Configuration Manager数据库的访问权限。

如何授予访问报表服务器的权限:

https://msdn.microsoft.com/en-us/library/ms156034(SQL.90).aspx

预先定义角色:

https://msdn.microsoft.com/en-us/library/ms156465(SQL.90).aspx

3. Configuration Manager 2007 R2是否支持SQL 2008 报表服务?

回答 :是,Configuration Manager 2007 R2不但支持SQL 2005 报表服务也支持SQL 2008 报表服务。如果你打算用SQL 2008 报表服务,你需要安装一个hot-fix以避免site server上出现不正确的状态信息。请参见:https://support.microsoft.com/kb/957576/

这是我第一篇文章,热切期待着你的意见,反馈和查询。如果你对这篇文章任何地方感兴趣,请在这里留言,我会在接下来的文章中提供更详尽的内容。

-- Bhaskar Krishnan

白小西 译