Siebel 基础入门--权限控制
企业应用最基本的要求就是只授予用户在他工作职责范围内的权限,一般而言,这种权限都包含两种,一种是对于相应的功能的可见性(或者形象地说,菜单的可见 性,这个是应用层面界面的,这种权限在Siebel里称为View的可见性),这种在Siebel里是由职责(responsibility)来控制的。
Siebel 里的基础的职责定义了完成一个工种所需要的权限类型,也可以授予一个人多个职责,从而他将具有多个职责的权限。Siebel应用在正常安装后已经定义了一 整套的职责(称为Seed Responsibility),这些职责每个都已经有预定的View权限,当然也可以根据需要创建自己的职责,然后指定该职责所需要的View的权限, 再把职责赋予用户,这样就可以非常严格地控制一个用户所具有的View的权限类型。
在相应的职责里增加View的时候,可以指定该View做该职责里是“只读的”来防止具有该职责的用户对数据进行修改。View,Responsibility和用户的关系如下图:
siebel_N4-01.jpg
Siebel
应用里的另一个权限控制是数据权限,也即功能里的数据的可见性(比如一个销售代表可以看见自己的所有销售机会,但是几乎没有什么必要让他看见其他销售代表
的销售机会,而他们的Manager则可以看见他所管理的所有销售代表的销售机会),这称之为数据的可见性,也就意味着哪怕具有相同职责的用户所看见的数据是不一样的,这种Siebel里是通过position职位来控制的,View的控制和数据的控制这两种控制都是彼此独立的,他们结合起来一起控制着Siebel应用用户的权限。
按照数据权限控制的不同,Siebel里的数据可以分为两种类型,一种类型称为Customer Data,这种类型的数据包含销售机会,服务请求等交易类型的数据,这些数据主要由使用Siebel应用的过程中产生,这种数据权限都是控制在记录级别。
另一个相对静态的数据称为Master Data,这些数据相对而言比较静态,包含一些引用类型的数据,比如产品列表,这些数据通常由管理员产生,并按照类型归类,这些数据的权限控制按照类型(catelog)的权限控制进行。
实际上Siebel里的权限控制的思路来源于真实世界里的公司组织里的权限的思路(比如Manager可以看见他所领导的所有的销售的Opportunity),所以Siebel的权限是和公司的组织结构挂钩的,职位在一个组织里形成树状的结构,这样的结构意味着一个层次高的职位可以看见属于他的所有子职位的所有数据,职位并不是这棵树上的所有东西,在这棵上还挂着Division和Organization的概念,Division和Organization和我们平常所见的公司结构图里的分支和部门是一样的概念,其实建立Division和Organization的方法一样,只不过要在建Division的时候选择一个checkbox指定该Division为Organization。但是Organization和Division也有区别,他们都可以用于来设置公司组织架构的层次,但是Divsion里的数据都是共享的(division里可见),如果希望不同的Organization不能够互相看见对方的数据进行数据的控制,则要使用Organization。也就是说Organization可以作为一个数据权限的控制的单位但是Division不可以。
在Siebel应用里,数据的权限可以划分到用户的ID,职位,所属组织上,下图是雇员,职位和组织的关系:
siebel_N4-02.jpg
即雇员用户可以有多个职位,每个职位也可以属于多个雇员,但是每一个职位一定是属于某个组织的,雇员用户在登录后只能够看见他们当前登录所选择职位的数据,
当然他们登录后也可以改变自己的当前职位,从而能够看见他所赋予的别的职位的数据,我的感觉是,这个Siebel里的职位反而有点象11i里的职责的概
念!
对于动态的Customer Data数据,权限的控制如下图:
siebel_N4-03.jpg
也就是说,记录的权限控制可以是在employee,position或者在Organization级别上又或者它们的一个组合进行,采用哪张方式主要取决于该数据所属的BC的一些特性,通常这些数据都对应着相应的View,如:
My View指得是我的数据,如My Account
My Teams’ View指的是我的团队的数据(Manager视图)
All View则是属于一个Organization的所有的数据
通常在一条记录创建的时候,这条的记录的Organization属性就是该用户职位所属的机构,当然也可以手工更改这条记录的机构属性,职位也是一个公司组织结构图上的一个小方块,用于组成公司的上下级汇报关系,而且因为职位远要比雇员要稳定(雇员很可能离职),所以职位的访问控制在企业的很多场景里提供了恰当的数据访问控制方式,,而且使用职位进行访问控制比之使用雇员进行权限控制有更大的稳定性。
前面提到View已经很多次了,但是只有在交代了权限控制之后才能够完全说清楚View的概念,实际上View就是看数据的一种方式,一个View必须以某种权限模式去观察数据(也就是说一个View要么赋予Employee权限,要么赋予position权限,要么赋予Organization权限),如果需要以新的权限方式来观察数据,就需要建立一个新的View,这个就是Siebel里View的概念。
Siebel 基础入门--权限控制的更多相关文章
- Java基础—访问权限控制
Java中访问权限控制的作用: 为了使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作时必要的,但是它并不属于客户端程序员所需接口的一部分. 为了让类库设计者可用更改类的内部工作方式,而不 ...
- 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器
https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究 选择3 ...
- <实训|第九天>掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师
linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经 ...
- Linux学习总结(14)——Linux权限控制
linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经 ...
- Sql Server来龙去脉系列 必须知道的权限控制基础篇
题外话:最近看到各种吐槽.NET怎么落寞..NET怎么不行了..NET工资低的帖子.我也吐槽一句:一个程序猿的自身价值不是由他选择了哪一门技术来决定,而是由他自身能创造出什么价值来决定. 在进入本篇内 ...
- 【JAVA零基础入门系列】Day8 Java的控制流程
什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...
- .NET零基础入门之02:源码控制管理器的使用
一:概述 源码控制管理器,也叫"版本控制"软件,用于存储.追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是专业软件公司的基础工具.它主要是协助在多人团队中控制代码,防 ...
- shiro权限控制入门
一:权限控制两种主要方式 粗粒度 URL 级别权限控制和细粒度方法级别权限控制 1.粗粒度 URL 级别权限控制 可以基于 Filter 实现在数据库中存放 用户.权限.访问 URL 对应关系, 当前 ...
- SpringSecurity 3.2入门(7)自定义权限控制介绍
总结Spring Security的使用方法有如下几种: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中. 二种是用户和权限用数据库存储,而资源(url)和权限的对应关系硬编 ...
随机推荐
- PHP 中 快捷的三元运算...
a!=null ? a: 123 当 a 不为空时,返回 123, 可简写为 a ?: 123(a 不为null 不为 '','0',0 时,返回它本身,否则返回123...)
- Kibana6.x.x源码分析--import相关说明
/** * 模块的引入规则: * 不带路径的去node_modules中去找: * 带路径的去相应的路径中去找: * 模块可以不加后缀名,node会依次尝试.mjs..js..json..node 这 ...
- vue项目用webpack打包后跨域问题
在app.js的最开始加上 app.all('*', (req, res, next) => { res.header("Access-Control-Allow-Origin&quo ...
- C# Win7下隐藏手势提示
点击这里是原版答案 Stylus.IsFlicksEnabled="False" 手势是什么样子的
- ASP.NET与.NET区别
1.NET是什么? .Net全称.NET Framework是一个开发框架,不是一门编程语言,简单的来说 就是一组类库框架,.NET开发支持C#.VB.NET.J#.Js和Managed C++等 其 ...
- Spring对外部属性文件指定的某个属性进行加密、解密
[From] http://blog.csdn.net/ethanq/article/details/7333897 在我们开发当中,经常会用到spring框架来读取属性文件的属性值,然后使用占位符引 ...
- hdu2588 GCD
GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 【记录】sqli-labs-master搭建
附上:链接:http://pan.baidu.com/s/1bpCRzl1 密码:ep48 下载完成后直接解压到phpstudy(该工具之前分享过,直接搜索下)的WWW目录下,启动phpstudy, ...
- js动态实现时分秒
<div id="time" style="color: #96C2DD;</div> <script type="text/ ...
- tomcat修改域名和访问域名时去掉项目名
打开tomcat安装目录,根据路径找到 server.xml 路径D:\apache-tomcat-7.0.70\conf\server.xml 打开后 找到这一段 <Connector ...