Transform开发cube模型权限处理之不同用户数据的过滤
========================此文不再详细的说transform的开发过程======================================================
以商品销售额分析的案例来简单的说一下设计过程,该案例基本可以适合于通过维度实现对不用用户访问数据的控制。
1:表结构设计:
从日期和商品类型两个角度分析商品销售额

2:多维模型设计:
导入所需的三张表,一个事实表,两个维度表,插入两个Dimension,整体如图所示

截止目前,上面的多维模型基本上可以按照设计的样式访问数据了,只要有读写和遍历权限的用户都可以看到该模型的所有数据。
3:给多维模型添加权限
实现的效果就是:张三是部门经理的角色,李四是部门员工的角色,张三和李四分别登陆Cognos但是张三可以看到所有商品类型的销售额,李四只可以看给其分配的商品类型的商品的销售额。
3.1:在用户视图区域,点击Categories

3.2:在categories选择Custom Views

3.3:在Custom Views界面创建用户视图

3.4:指定视图名称和描述

3.5:给视图添加安全用户和角色

3.6:完成部门经理视图的创建

3.7:同理创建一个部门员工的视图,返回模型界面可以看到用户视图创建OK

3.8:给视图指定数据权限
3.8.1:给部门经理指定所有商品类型的权限

3.8.2:给部门员工指定只可以看食品类商品的权限

Category的可访问属性有以下几种方式,其含义分别如下:
Exclude: 把指定类别及全部下层类别都排除,既看不见,也不参加汇总。
Cloak: 把指定类别及全部下层类别都屏蔽,全都看不见,但它们参加汇总。
Suppress: 仅把本层指定的类别屏蔽,其下层类别提升。不影响其他兄弟类别,也不影响汇总。
Summarize: 把指定类别的全部下层类别屏蔽,使它们看不见,把它们的值汇总到当前类别,当前指定的类别看上去就象是处在最低层。
Apex: 以当前类别作为本维度层次构架的顶点,即只保留当前类别及其以下的部分。旁系分支全部排除,既看不见,也不参加汇总。
可以看到部门员工视图/商品类型下面 服装数据已被禁用掉,OK关掉Categories回到模型设计主页面

3.8.3将用户视图拖入模型下面.OK权限设计完成。保存-生成cube-测试效果

4:测试效果
4.1用具有部门经理角色的张三(zhangsan)登陆系统,查看模型,效果如下:

4.2用具有部门员工角色的李四(lisi)登陆系统,查看模型,效果如下:

写到这里,目标已经实现了,不同用户访问同一个cube通过用户视图的方式实现对同一个cube中的数据的不同样式的显示,欢迎点评,共同学习!
Transform开发cube模型权限处理之不同用户数据的过滤的更多相关文章
- Android开发周报:Android L默认加密用户数据
Android开发周报:Android L默认加密用户数据 新闻 <iCloud前车之鉴,Android L默认开启加密功能>:iCloud 艳照风波再起,第二波女星照片流出,大量女星的裸 ...
- FAQs: 我们可以在那里来为我的没有提升管理权限的应用程序存储用户数据?
如果你正在写一个不需要管理员权限的应用程序,如写一个业务线应用(Line of Business,LOB),用户应用程序如游戏,你总是要把应用程序的数据写到一个标准用可以访问的目录.下面列出一些所推荐 ...
- phpcms v9二次开发之模型类的应用(1)
在<phpcms二次开发之模型类model.class.php>中讲到了模型类的建立方法,接下来我讲一下模型类的应用. 前段时间我基于phpcms v9开发了一个足球网.足球网是 ...
- 第六章 Odoo 12开发之模型 - 结构化应用数据
在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中 ...
- winform快速开发平台 -> 通用权限管理之动态菜单
这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...
- Revit二次开发-BIM模型导出
最近一个月一直在研究Revit二次开发-BIM模型的导出,在网上找了很多相关资料学习.下面简单介绍一下我最近做的这个BIM模型的导出功能. 开始尝试使用Revit2015的样例程序里提供的读取模型几何 ...
- python之全栈开发——————IO模型
一:在讲IO模型之前我们首先来讲一下事件驱动模型,属于一种编程的范式,那么我们以前就是传统式编程,来看看有什么区别吧(此处为借鉴别人的) 传统的编程是如下线性模式的: 开始--->代码块A--- ...
- 基于gin的golang web开发:模型绑定
在前两篇文章介绍路由的时候,我们了解到gin可用通过类似DefaultQuery或DefaultPostForm等方法获取到前端提交过来的参数.参数不多的情况下也很好用,但是想想看,如果接口有很多个参 ...
- 基于gin的golang web开发:模型验证
Gin除了模型绑定还提供了模型验证功能.你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误.开发 ...
随机推荐
- Django MiddleWare初识
一.Django 中间件介绍 中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定 ...
- MyBatis之MyBatis环境搭建
MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1 ...
- JavaSE基础之矩阵运算
JavaSE基础之矩阵运算 1.矩阵类:Matrix.java 包括矩阵的加.乘运算,行列式的求解,最大最小元素等 package cn.com.zfc.help; import java.text. ...
- 最新OFFICE 0day漏洞分析
漏洞概述 fireeye最近公布了一个OFFICE 0day,在无需用户交互的情况下,打开word文档就可以通过hta脚本执行任意代码.经过研究发现,此漏洞的成因主要是word在处理内嵌OLE2LIN ...
- BZOJ 2754 SCOI 2012 喵星球上的点名 后缀数组 树状数组
2754: [SCOI2012]喵星球上的点名 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 2068 Solved: 907[Submit][St ...
- 预防Redis缓存穿透、缓存雪崩解决方案
最近面试中遇到redis缓存穿透.缓存雪崩等问题,特意了解下. redis缓存穿透: 缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有.这样就导致用户查询的时候,在缓存中找不到,每次都要去 ...
- XDM、GDM和KDM
XDM.GDM.KDM是三种X Window的显示管理器 (1)XDM(默认的X Window System Display Manager)(2)GDM(gnome提供的Display Manage ...
- .NET泛型03,泛型类型的转换,协变和逆变
协变(Convariant)和逆变(Contravariant)的出现,使数组.委托.泛型类型的隐式转换变得可能. 子类转换成基类,称之为协变:基类转换成子类,称之为逆变..NET4.0以来,支持了泛 ...
- C#引用类型转换,到底使用is,as还是显式强转?
在C#中,当引用类型需要转换的时候,经常会用到关键字is.as以及显式强转.本篇来体验这三者的用法. 先来梳理.NET引用类型转换的"约定俗成",或者叫"惯例" ...
- 使用docker exec命令
这个命令使用exit命令后,不会退出后台,一般使用这个命令,使用方法如下 docker exec -it db3 /bin/sh 或者 docker exec -it d48b21a7e439 / ...