对于一些敏感数据对于权限的控制是要求很严格的,不同级别或者不同部门的员工一张报表看到的数据是完全不一样的。在Cognos中可以在Frankwork,Transfomer或者Report中对这些数据进行控制。
下面的例子是讲解了在Report中根据访问者账户权限数据进行控制,非常的方便。
比如,在员工人数按照部门分布报表中,我们希望限制每个经理只能看到汇报给他的员工人数,而不希望他看到其他经理下的员工人数。完成数据级别的访问安全性设置,我们需要以下两个步骤:
步骤 1. 设计用户相关性的数据存储结构
由于访问安全控制是基于数据仓库中的数据级别的,因此,在数据仓库的模型设计中就要考虑到登录用户的相关性问题,需要在数据仓库的星型模型中体现出来。
本例中的数据仓库模型设计为:
其中,Employee 为事实表,Department 和 Location 为维度表。在 Department 维度表中添加 ManagerID 标识该部门的经理 ID,此 ID 也是登录 Cognos 服务器的用户 ID,即为企业目录服务器中的用户登录 ID。
如果能在报告中取到用户登录 ID 的值,再作为报告中查询项中过滤器的取值,便可以对数据进行访问过滤的设置。
步骤 2. 制作报表时将用户的登录 id 作为过滤器的取值
在报表中需要对数据进行