首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Cognos 对于细粒度权限控制的解决方法

2012-11-23 
Cognos 对于细粒度权限控制的解决办法对于一些敏感数据对于权限的控制是要求很严的,不同级别或者不同部门

Cognos 对于细粒度权限控制的解决办法

对于一些敏感数据对于权限的控制是要求很严格的,不同级别或者不同部门的员工一张报表看到的数据是完全不一样的。在Cognos中可以在Frankwork,Transfomer或者Report中对这些数据进行控制。

 

下面的例子是讲解了在Report中根据访问者账户权限数据进行控制,非常的方便。

 

比如,在员工人数按照部门分布报表中,我们希望限制每个经理只能看到汇报给他的员工人数,而不希望他看到其他经理下的员工人数。完成数据级别的访问安全性设置,我们需要以下两个步骤:

 

步骤 1. 设计用户相关性的数据存储结构

由于访问安全控制是基于数据仓库中的数据级别的,因此,在数据仓库的模型设计中就要考虑到登录用户的相关性问题,需要在数据仓库的星型模型中体现出来。

本例中的数据仓库模型设计为:


图 16. 数据模型
Cognos 对于细粒度权限控制的解决方法

其中,Employee 为事实表,Department 和 Location 为维度表。在 Department 维度表中添加 ManagerID 标识该部门的经理 ID,此 ID 也是登录 Cognos 服务器的用户 ID,即为企业目录服务器中的用户登录 ID。

如果能在报告中取到用户登录 ID 的值,再作为报告中查询项中过滤器的取值,便可以对数据进行访问过滤的设置。

步骤 2. 制作报表时将用户的登录 id 作为过滤器的取值

在报表中需要对数据进行过滤的查询项中添加过滤器。在过滤器中利用 Cognos 系统定义的宏 #sq($account.personalInfo.userName)# 来代替用户登录系统的 id 值作为过滤器的取值。这样,每个用户登录到系统打开报表时,该过滤器的取值就随着登录用户的变化而变化,从而实现了报表中数据的访问安全控制。

本例中可以在报表的数据项中设置如下内容的过滤器,这样就限制了登录用户只能看到汇报给他的员工信息:

 

 

非常方便吧。

 


 

热点排行