Cognos 对于细粒度权限控制的解决办法
来源:互联网 发布:ubuntu软件安装在哪里 编辑:程序博客网 时间:2024/05/17 14:17
对于一些敏感数据对于权限的控制是要求很严格的,不同级别或者不同部门的员工一张报表看到的数据是完全不一样的。在Cognos中可以在Frankwork,Transfomer或者Report中对这些数据进行控制。
下面的例子是讲解了在Report中根据访问者账户权限数据进行控制,非常的方便。
比如,在员工人数按照部门分布报表中,我们希望限制每个经理只能看到汇报给他的员工人数,而不希望他看到其他经理下的员工人数。完成数据级别的访问安全性设置,我们需要以下两个步骤:
步骤 1. 设计用户相关性的数据存储结构
由于访问安全控制是基于数据仓库中的数据级别的,因此,在数据仓库的模型设计中就要考虑到登录用户的相关性问题,需要在数据仓库的星型模型中体现出来。
本例中的数据仓库模型设计为:
图 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 中为数据添加过滤器
非常方便吧。
- Cognos 对于细粒度权限控制的解决办法
- 基于位运算的权限细粒度控制
- 权限控制案例(细粒度)
- SVN目录权限细粒度控制
- Struts2中基于Annotation的细粒度权限控制
- Struts2中基于Annotation的细粒度权限控制
- Struts2中基于Annotation的细粒度权限控制
- shiro细粒度权限控制以及开发中碰到的bug
- 细粒度 自定义注解 权限控制具体实现
- asp.net 中细粒度权限控制
- 细粒度 自定义注解 权限控制具体实现
- 自定义标签 + shiro 实现权限细粒度控制
- 权限控制之粗粒度与细粒度
- 《权限控制系列3》----利用拦截器细粒度控制权限
- Oracle VPD实现数据细粒度访问(更好的权限控制)
- 通过SpringMVC+Annotation实现方法、按钮级别的细粒度权限控制
- 通过SpringMVC+Annotation实现方法、按钮级别的细粒度权限控制
- 【springmvc+mybatis项目实战】杰信商贸-15.细粒度的权限控制+业务上报取消
- android 模拟器快捷键
- H.264代码与标准如何对应
- solr中文编码问题
- 关于文件结束符EOF
- hdu 1863
- Cognos 对于细粒度权限控制的解决办法
- 如何让service被管理器杀死后自动重启
- 实现IOS版的抽屉效果(点击,拖拽滑动)
- C指针
- IPC通信:Posix消息队列的属性设置
- tiny6410_驱动程序_定时器_简单使用
- 【白话系列】最近公共祖先
- Ubuntu 12.04 国内更新源列表
- linux下c语言抓包库libpcap