FrameWork数据权限浅析1之基于手工修改模型实现行级数据安全
1:环境
Cognos10.2.0,Oracle
2:实现过程
在设置Framework数据级别权限的时候,通常用到的就是在FM的设置数据安全的地方添加安全过滤器,如下图
step1:选中部门维度表→操作→指定数据安全
step2:进入设置界面,添加自己用户空间中的用户组或者角色.
下面主要解释一下图中1-6的标注代表的意思
------------------------------------------------------------------------------------------------
1~2:代表对管理员和总经理不设置任何过滤器,即畅通无阻
3、5、6:代表分别给部门一、二、三开通本部门的权限
4:代表不给财务部经理开通查看业务数据的权限,设置一个过滤器表达式始终为FALSE的表达式即可.
PS:如果还有其他组的用户不可以访问此数据,操作和4一样即可
--------------------------------------------------------------------------------------------------
经过上面的操作之后,保存发布数据包到Cognos Connection中再次查看报表,就可以看到分别用不同角色的用户登录,就可以看到不同部门的数据了,本文是对维度表设置了权限,那么所有对此维度做了关联的事实表都会起到不同部门的用户只能看自己权限范围内报表数据的作用.
3:优缺点比较
优点:过程简单,只依赖于数据仓库中的维度表和已经经过CJP验证的用户空间的用户组即可
缺点:在完成设置以后我们发现,经过这种方式设置的权限管理,在以后的组织关系变化过程中,比如加一个角色需要访问此数据,或者加一个用户需要访问此数据,就需 要手动的去向FM模型文件中添加用户或者角色,这对于一个非cognos专业人员来说是存在很大不可能性的。如果用户遇到类似的问题就找我们的相关开发人员远程或者到 现场处理,那就大大的加重了我们系统的维护成本,当然这种情况是我们不想看到的,接下来,我们将继续寻找一种相对完美的方式来解决此问题.
FrameWork数据权限浅析1之基于手工修改模型实现行级数据安全的更多相关文章
- FrameWork数据权限浅析4之基于多维度配置表实现行级数据安全
日子过得好苦逼,我过的很好,只是缺少¥.时间在变,而问题始终未变,你解不解决它都在那里一动不动.不知不觉已经发现手机的中央,电脑的右下角已经出现了201411的字样,突然从桌子上爬起来,差点忘记了自己 ...
- FrameWork数据权限浅析3之基于角色的配置表实现行级数据安全
带着上一次笔记的疑问和些许欢喜来到了混混沌沌的下午,程序员的脑子一直在不停的思索着,而多思考总是没错的,盼望着盼望着事情就有了转机,现在我们就来说一说基于角色级别的中间表机制实现行级数据安全. 由于本 ...
- FrameWork数据权限浅析2之基于用户的配置表实现行级数据安全
在上一篇笔记中我已经说了如何利用FM自带的机制配合我们已经通过验证的用户空间的组来实现行级数据安全的控制,但是由于上一个方法存在的缺点是以后如果对该对象增加基于用户或者角色的访问权限就需要开发人员去F ...
- mysql:如何解决数据修改冲突(事务+行级锁的实际运用)
摘要:最近做一个接诊需求遇到一个问题,假设一个订单咨询超过3次就不能再接诊,但如果两个医生同时对该订单进行咨询,查数据库的时候查到的接诊次数都是2次,那两个医生都能接诊,所谓接诊可以理解为更新了接诊次 ...
- Transform数据权限浅析2之利用Java完成权限设置
一:项目背景 1.1:cognos的两种建模工具 为了更好的满足客户的需求,提升报表展现的效率,一种建模工具已经不能满足报表开发和展现的需要.Cognos除了给我们提供了一种基于关系型数据库的建模工具 ...
- Transform数据权限浅析1之mdl语句批量加载权限
Cognos建模工具除了Framework之外,还有一个Transform,两者的最大区别就是在于Framework是通过结构直连关系数据库的,数据根据数据仓库的变化而变化,而Transform是生产 ...
- 数据权限筛选(RLS)的两种实现介绍
在应用程序中,尤其是在统计的时候, 需要使用数据权限来筛选数据行. 简单的说,张三看张三部门的数据, 李四看李四部门的数据:或者员工只能看自己的数据, 经理可以看部门的数据.这个在微软的文档中叫Row ...
- Quick BI独创千人千面的行级权限管控机制
摘要 就数据访问权限而言,阿里巴巴以“被动式授权”为主,你需要什么权限就申请什么权限.但是,在客户交流过程中,我们发现绝大多数企业都是集中式授权,尤其是面向个人的行级权限管控,管理复杂度往往呈几何增长 ...
- 数据权限设计——基于EntityFramework的数据权限设计方案:一种设计思路
前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经 ...
随机推荐
- Python并发编程-线程-一个简单的例子
from threading import Thread import time def func(n): #子线程完成的 time.sleep(1) print(n) #多线程示例 for i in ...
- LaTeX算法排版 笔记
方式一 需要包含的 \usepackage[noend]{algpseudocode} \usepackage{algorithmicx,algorithm} 源码 \begin{algorithm} ...
- jquery实用的一些方法
做个购物车功能,需要修改下前端页面 有些实用的方法总结一下 当你想实现最基本的加减法的时候,对于转换number实用Number(str)即可 首先明确下页面的每一行是动态的,这个时候绑定事件的时候不 ...
- asp.net core集成MongoDB
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言及MongoDB的介绍 最近在整合自己的框架,顺便把MongoDBD的最简单CRUD重构一下作为组件化集成到asp.net ...
- JSP中常用JSTL用法
使用标签时,需要在jsp文件头加入以下代码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/cor ...
- 深入理解javascript函数系列第三篇
前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解javascript函数 ...
- PHP 笔记——基础
一.PHP 简介 1. PHP是什么 PHP:Hypertext Preprocessor,即超文本预处理器. PHP是一种跨平台.服务器端.可嵌入HTML文件的脚本语言. 嵌入了PHP代码的HTML ...
- 【KM】BZOJ1937 [Shoi2004]Mst 最小生成树
这道题拖了好久因为懒,结果1A了,惊讶∑( 口 || [题目大意] 给定一张n个顶点m条边的有权无向图.现要修改各边边权,使得给出n-1条边是这张图的最小生成树,代价为变化量的绝对值.求最小代价之和. ...
- seebug的反爬虫技术初探
1.通过request库无法直接爬取,返回521 >>> import requests >>> req = requests.get('https://www.s ...
- ArrayList源码阅读----JDK1.8
//定义一个默认的长度10 private static final int DEFAULT_CAPACITY = 10; //定义空的数组 private static final Object[] ...