权限浅析

  • 权限控制是企业开发中的最基本功能,权限控制子系统中包含如下几个部分?
  • 员工:

    • 员工描述的是企业中的员工新,也是登录时用户名和密码比对的最终数据源。
  • 角色

    • 角色描述的是员工在企业中所担当的角色,此处的角色一定要和职务区分开。职务通常是具体岗位的描述,例如经理、总监,而角色是一个抽象的概念,不对应任何具体的岗位。
    • 例如1:
      • 张三在公司的职位是CEO,但是张三可以拥有A,B,C,D四个角色,也就是说角色是抽象概念。在定义的时候,角色的名称不是核心因素,仅仅为了进行区分角色之间的不同,往往企业级应用中,喜欢使用职务名称作为角色名称,但是两者截然不同。
    • 例如2:
      • 李四新入职,被分配到库管中心。他所具有的角色是普通员工(A),仓库管理员(B)两个角色,三个月后,李四被调到销售部共偶作,那么他还具有普通员工(A)的角色,但是需要取消其仓库管理员(B)的角色,并为其添加销售人员(C)的角色,此时李四的角色由AB变为AC。角色实际上和职务没有任何关系。 
  • 资源

    • 资源是对应用系统中可操作的对象的抽象描述。
    • 应用系统中有大量需要控制的实体,例如界面上的某个按钮是否可以点击,某个链接是否可以访问,某列数据是否可以看到,再抽象一级,某个后台方法是否可以运行。此处描述的按钮、链接、数据、方法就是所谓的实体,但是还不能算资源。
    • 资源是和实体绑定的,但是资源还要有操作能力的绑定。例如按钮可以看到,但是不能点击,处于灰色状态;数据可以查看,但是不能修改。换句话说,实体对应有很多操作能力,而资源描述的是某个实体所具有的某种操作能力。
    • 例如:张三是普通员工,可以查看自己的工资数据,但是不能查看别人的工资数据,也不能修改别人的工资数据,那么对于工资数据来说,张三仅仅具有单一数据查看的能力;李四是财务人员,不仅可以查看自己的工资数据,还可以查看单位所有员工的工资数据,而且还可以对所有人的工资数据进行修改,李四具有对该数据的修改权。此处对工资数据的查看权,对工资数据的修改权都可以称为资源。
    • 例如:张三是销售部员工,可以申请报销,那么就可以执行报销申请对应的后台方法,而李四是销售部主管,可以审批张三提出的申请,那么就可以执行对应的审批报销申请的方法。但是该方法张三是不能执行的。此处对后台申请报销域审批报销的梳理是两个方法完成的。这两个方法的执行权也可以作为资源。
    • 我们可以想象一下,上面的例子中张三和李四都是员工,为什么张三具有申请权,而李四具有审批权?原因是两个人对应的角色不同,不同的角色具有不同的资源。因此在权限设计过程中,一个角色可以拥有多个资源,一个资源可以对应多个角色。

  

  • 综上所述

    • 一个部门有多个员工,而一个员工只能属于一个部门,部门和员工的关系是一对多。
    • 一个员工有多个角色,同理一个角色可以分配给不同的员工,所以员工和角色是多对多的关系。
    • 一个角色可以拥有多个资源,同理,一个资源可以对应多个角色,所以角色和资源之间也是多对多的关系。          
时间: 2024-07-30 13:43:24

权限浅析的相关文章

8.3_Linux文件系统权限和特殊权限浅析

什么是Linux文件系统权限? 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. Linux文件系统权限的分类 Linux中的权限分为:read(读).write(写).execut(执行)三种权限 文件和目录表示的权限也各有不同 权限对于文件的意义: r: 可使用文件查看类工具获取其内容 w: 可修改内容,可破坏内容,但不能删除文件本身 x: 针对二进制可执行的程序或脚本,可以把此文件提请内核启动为一个进程,普通文件不需要执行权限 权限对于

FrameWork数据权限浅析2之基于用户级别的中间表机制实现行级数据安全

在上一篇笔记中我已经说了如何利用FM自带的机制配合我们已经通过验证的用户空间的组来实现行级数据安全的控制,但是由于上一个方法存在的缺点是以后如果对该对象增加基于用户或者角色的访问权限就需要开发人员去FM模型添加操作,这样就大大的增加了我们系统的维护成本,下面我们就来说一下另外一种方法:基于用户级别的中间表机制实现行级数据安全 ps:这种方法命名只是笔者的一种定义说法,属个人想法而已,各位千万不要拿来铭记,重要的是过程,至于名字,就让他随风飘吧. 下面我们就走入正题,如何利用基于用户级别的中间表机

FrameWork数据权限浅析1之利用FM自带机制实现行级数据安全

1:环境 Cognos10.2.0,Oracle 2:实现过程 在设置Framework数据级别权限的时候,通常用到的就是在FM的设置数据安全的地方添加安全过滤器,如下图 step1:选中部门维度表→操作→指定数据安全 step2:进入设置界面,添加自己用户空间中的用户组或者角色. 下面主要解释一下图中1-6的标注代表的意思 --------------------------------------------------------------------------------------

linux系统中文件的特殊权限

在上篇博客中叙述linux系统中文件的基本属性,见http://vinsent.blog.51cto.com/13116656/1951574,这篇给大家带来linux系统文件的特殊权限,包括SUID.SGID.Sticky(粘滞位). 一.安全上下文 安全上下文指的是一类定义某个进程允许做什么的许可和权限的集合.安全上下文的概念范围很广范,权限.特权.访问令牌.完整性等级等等都包含在其中.这里只简要说说linux系统对文件的安全控制: (1)进程有属主和属组,文件有属主和属组      (2)

浅析Java中的访问权限控制

浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所用的类都访问到,那么该如何处理? 场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1.fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理? 此时,访问权限控制便可以

浅析Linux系统下用户与权限管理

Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过程中,又必然存在对有限计算机资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立.合理的使用计算机. 一.用户和用户组管理   (一)用户及用户组相关基本概念  用户:泛指计算机的使用者.用计算机可识别的用户ID(UID,user id)标识. 用户组:用户容器,用来将多个用户合并为一

Linux用户、组及权限管理浅析

一.用户和组 1.用户 系统用来认证(Authentication),授权(Authorization),审计(Autition)的帐号.通过登录用户来登录系统.操作系统通过登录不同的用户来调用相对应权限的进程或程序,也可以说,用户是能获取系统资源的权限集合. 2.用户的分类 Linux用户分为2类,即管理员用户和普通用户. 管理员用户:即root,拥有最大的权限的用户,可以调用系统任意的资源.其uid为0 普通用户:普通用户也分2类,分别为系统用户和登录用户. 系统用户:保障系统启动时的基本服

浅析mysql主从复制中复制用户的权限管理

在用复制账号对mysql salve管理过程中,使用哪些权限合适?首先看一下mysql官方提供的权限表: 权限 列 上下文 CREATE Create_priv 数据库.表或索引 DROP Drop_priv 数据库或表 GRANT OPTION Grant_priv 数据库.表或保存的程序 REFERENCES References_priv 数据库或表 ALTER Alter_priv 表 DELETE Delete_priv 表 INDEX Index_priv 表 INSERT Inse

Linux文件系统与索引节点inode浅析

我们知道磁盘在分区后还需要进行格式化,之后操作系统才能使用这个分区.而需要格式化的原因正是因为每种操作系统所设置的文件属性/权限并不相同.在Linux中,传统的磁盘文件系统是EXT,下面以EXT为例浅析Linux的文件系统与索引节点. 我们知道,文件的数据除了文件实际内容之外,通常还含有非常多的属性.文件系统通常会将权限与属性等数据放置到inode(index node)中,至于实际数据则放置到data block块中:另外,还有一个超级块会记录整个文件系统的整体信息. 在文件系统中,每个ino