标签归档:reporting service报表

reporting service数据级权限解决方案

注:内容来源于网络。 BI数据分析是目前企业的热门应用,而对企业来说,权限控制是非常重要的,尤其是作为决策用的企业报表。目前基于微软SQL Server体系的BI架构为Integration Services + Analysis Service + Reporting Services,Integration Services和Analysis都属于应用后台的服务,不会在用户前端展现,其权限控制体系不在我们这篇文章的讨论范围内(但是实现数据级权限控制,需要Analysis Services的参与)。而对于前端展示用的企业报表,权限控制体系分为2种:报表级权限和数据级权限。报表级权限较为简单,主要用于控制谁能够看这个报表;数据级权限则比较复杂了,任何人看同一张报表,报表上的数据只能是他有权限查看的数据。简单说,就是总经理看到的数据和经理看到的数据是不一样的,虽然他们在看同一张报表。比较报表级权限和数据级权限,会发现如果实现了数据级权限的控制,那么企业报表是否需要进行权限控制已经不再重要(当然,为了界面友好性,还是应该控制下的)。 这篇文章主要就是讲述基于SQL Server架构的BI数据级权限的解决方案,这也是我给一个德国大型跨国企业客户实施其BI项目中,对方非常重视的一个功能。这里先简单介绍下这个客户和项目,出于保密要求,我把该客户叫做Customer S(简称CS,呵呵,不是那个游戏哦)。 CS项目前端采用Sharepoint,后台采用SQL Server,主要分析客户S的销售数据。CS的组织结构分为部门、区域;部门和区域是相互交叉的;某个部门的总部人员能够看到全国所有区域的数据;而区域员工则只能看到该区域的数据了。用户能够查看的数据权限,需要在网页上可以进行配置。这就是客户对数据级权限的要求。 针对这些需求,数据级权限解决方案采用如下架构: javascript:window.open(this.src);” style=”cursor:pointer;”/> 报表查看流程说明: 用户查看报表 报表从Cube中获取数据 Cube从数据库中(记录用户的数据权限配置)获得访问用户的权限配置,根据配置返回相应的数据 报表显示结果数据 数据权限配置流程说明: 用户访问数据权限配置页面(由于基于Sharepoint,因此是内嵌数据权限Webpart的Sharepoint页面) 页面获取Cube结构(由于Cube的结构内容很庞大,为了避免网页响应慢,一般通过ajax树状来展示其结构) 用户修改数据权限设置,并且保存到数据库中 说明:这里面进行数据权限控制的对象为域帐号(可以为域用户或者组)。 纵览数据权限实现的这个流程,我们提取出中间几个重要的实现具体讲解解决方案,他们是: Cube中如何进行权限控制 设置数据权限时,如何读取Cube结构 Cube中如何进行权限控制 SQL Server Analysis Services本身提供了一种设置Cube数据数据权限的机制。打开Analysis Services,我们可以看到“程序集”和“角色”2个条目,他们就是和数据权限设置紧密相关的内容了。如下图所示: javascript:window.open(this.src);” … 继续阅读

发表在 代码人生 | 标签为 , | 14 条评论

在safari下浏览reporting service报表

一、发现 经测试,微软sql server reporting service开发的报表在safari浏览器下不能正常打开。奇怪的是,访问http://localhost/Reports 在safari下不能正常打开报表,而在http://localhost/ReportServer 下边能正常打开(时灵时不灵)。具体如下图所示:                 在http://localhost/Reports下不显示,然后就查看源文件,结果发现“您的浏览器不支持脚本或已配置为不允许使用脚本”,“该报表查看器 Web 控件 HTTP 处理程序尚未在应用程序的 web.config 文件中注册。请将 <add verb=”等字样。既然是不允许使用脚本,那就启用safari浏览器的脚本功能,启用后发现还是不能正常显示,启用脚本功能如下图所示: 二、寻找答案 还是不行,那还是上QQ问问其他人吧,结果碉堡了,被人问傻了。 好吧,再到网上的技术社区问问看,博客园、CSDN、知乎等,问了一圈,结果还是没人会。   继续,国人不会,看看老外是怎么做的。 “Hi Anita, As far as I know, Safari and Chrome are not … 继续阅读

发表在 代码人生 | 标签为 , | 4 条评论