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

本文介绍了如何在Cognos中实现细粒度权限控制,特别是在报表层面。通过设计与用户相关性的数据存储结构,并在报表制作时利用用户登录ID作为过滤器的取值,确保不同级别的员工查看报表时仅能看到相应权限范围内的数据,从而增强数据安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于一些敏感数据对于权限的控制是要求很严格的,不同级别或者不同部门的员工一张报表看到的数据是完全不一样的。在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 值作为过滤器的取值。这样,每个用户登录到系统打开报表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值