bi数据级权限解决方案--

bi数据级权限解决方案--

ID:9474648

大小:62.50 KB

页数:8页

时间:2018-05-01

bi数据级权限解决方案--_第1页
bi数据级权限解决方案--_第2页
bi数据级权限解决方案--_第3页
bi数据级权限解决方案--_第4页
bi数据级权限解决方案--_第5页
资源描述:

《bi数据级权限解决方案--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、BI数据级权限解决方案>>  BI数据分析是目前企业的热门应用,而对企业来说,权限控制是非常重要的,尤其是作为决策用的企业报表。目前基于微软SQLServer体系的BI架构为IntegrationServices+AnalysisService+ReportingServices,IntegrationServices和Analysis都属于应用后台的服务,不会在用户前端展现,其权限控制体系不在我们这篇文章的讨论范围内(但是实现数据级权限控制,需要AnalysisServices的参与)。而对于前端展示用的企业报表,权限控制体系分为2种

2、:报表级权限和数据级权限。报表级权限较为简单,主要用于控制谁能够看这个报表;数据级权限则比较复杂了,任何人看同一张报表,报表上的数据只能是他有权限查看的数据。简单说,就是总经理看到的数据和经理看到的数据是不一样的,虽然他们在看同一张报表。比较报表级权限和数据级权限,会发现如果实现了数据级权限的控制,那么企业报表是否需要进行权限控制已经不再重要(当然,为了界面友好性,还是应该控制下的)。  这篇文章主要就是讲述基于SQLServer架构的BI数据级权限的解决方案,这也是我给一个德国大型跨国企业客户实施其BI项目中,对方非常重视的一个功能。

3、这里先简单介绍下这个客户和项目,出于保密要求,我把该客户叫做CustomerS(简称CS,呵呵,不是那个游戏哦)。  CS项目前端采用Sharepoint,后台采用SQLServer,主要分析客户S的销售数据。CS的组织结构分为部门、区域;部门和区域是相互交叉的;某个部门的总部人员能够看到全国所有区域的数据;而区域员工则只能看到该区域的数据了。用户能够查看的数据权限,需要在网页上可以进行配置。这就是客户对数据级权限的要求。  针对这些需求,数据级权限解决方案采用如下架构:  报表查看流程说明:  用户查看报表  报表从Cube中获取数据

4、  Cube从数据库中(记录用户的数据权限配置)获得访问用户的权限配置,根据配置返回相应的数据  报表显示结果数据  数据权限配置流程说明:  用户访问数据权限配置页面(由于基于Sharepoint,因此是内嵌数据权限DX字符串  我们看看如下的主要代码(这个类库也就只需要这样一个CS文件):namespaceBI{  publicclassDataSecurity  {    publicstaticstringGetDimensionSet(stringdomain_account,stringdimension)    //方法的

5、名字无所谓,参数比较重要       //domain_account:访问用户的帐号,后面我们会知道是从角色的设置中传入       //dimension:是获取哪个维度的数据。在角色里,需要对每一个维度进行设置    {//return{[Location].[City].[Seattle]},返回的结果示例      SqlConnectionconnection=neandmand=neand(SP_Security_GetDimensionSetByLoginAccount,connection);        mand.

6、mandType=System.Data.mandType.StoredProcedure;        SqlParameterp1=neeter(domain_account,domain_account);      SqlParameterp2=neeter(dimension,dimension);      123下一页>>>>这篇文章来自..,。mand.Parameters.Add(p1);      mand.Parameters.Add(p2);        SqlDataReaderreader=mand.Ex

7、ecuteReader();        stringresult_set=string.Empty;        intcount=0;        pty)result_set+=,;          result_set+=(string)reader[DimensionSet];      }        mand.Dispose();        connection.Close();        connection.Dispose();        return{+result_set+};    }   

8、   publicDataSecurity()    {    }  }}  这个类库的作用很简单,抛开BI不谈,其实他就调用了一个存储过程,把返回结果做了一个字符串拼接,然后返回这个字符串。一般的返回结果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。