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

来源:互联网 发布:ubuntu软件安装在哪里 编辑:程序博客网 时间:2024/05/17 14:17

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

 

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

 

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

 

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

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

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


图 16. 数据模型
图 16. 数据模型

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

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

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

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

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

 

 [Department].ManagerID = #sq($account.personalInfo.userName)# 



图 17. 在 Report Studio 中为数据添加过滤器
图 17. 在 Report Studio 中为数据添加过滤器

 

非常方便吧。

 


 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子入学前疫苗补不全怎么办 额头肤色比脸黑怎么办 高跟鞋小了挤脚怎么办 老板欠工人工资不给怎么办 小孩吃了生豆子怎么办 拍夜晚的天空太亮怎么办 购房发票字体不清晰怎么办 接到客人电话预定时怎么办 产检资料弄丢了怎么办 工作中同事喜欢争风头怎么办 想出卖身体赚钱了怎么办 孩子生下来不想要了怎么办 舌头被铁管冻住怎么办 人被水泥冻住了怎么办 姑娘果孕妇吃了怎么办 纹身后吃了辣的怎么办 怀孕五个多月不想要了怎么办 失业后又干保安档案怎么办 前列大腺脓肿要怎么办 小动物死了孩子很伤心怎么办 向客人开错房间怎么办 工伤认定没有证人证言怎么办? 一个月没来月经怎么办14岁 刮了胡子下巴痒怎么办 月经多怎么办喝什么好 大姨妈不调怎么办来了 多人被骗没证据怎么办 一直坏肚子拉水怎么办 犯人在监狱有高危高血压怎么办 丈夫出轨他死都不承认怎么办 没写欠条的债该怎么办 被尾随回家知道住处怎么办 微信记录全没了怎么办 微信记录没有了怎么办 ipad登录不了下不了软件怎么办 苹果手机打开自动时间不对怎么办 魅族手机时间不同步怎么办 小米手环时间不准怎么办 电脑网络dns配置错误怎么办 去泰国手机要打电话怎么办 苹果6s音量小怎么办