通用权限管理设计篇

通用权限管理设计篇(一)

一.引言

因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。

权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意义的。 二.设计目标

设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源,后者是我们在系统设计与实现中的叫法。 系统的目标就是对应用系统的所有对象资源和数据资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮、数据显示的列以及各种行级数据进行权限的操控。 三.相关对象及其关系

大概理清了一下权限系统的相关概念,如下所示: 1. 权限

系统的所有权限信息。权限具有上下级关系,是一个树状的结构。下面来看一个例子

对于上面的每个权限,又存在两种情况,一个是只是可访问,另一种是可授权,例如对于“查看用户”这个权限,如果用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人。 2. 用户

应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n 个角色,可属于0~n 个组。他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n 对n 的关系。 3. 角色

为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。 4. 组

为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际情况中,我们知道,组也可以具有自己的角色信息、权限信息。这让我想到我们的QQ 用户群,一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ 群也可以具有自己的角色信息,例如普通群、高级群等。

针对上面提出的四种类型的对象,让我们通过图来看看他们之间的关系。

有上图中可以看出,这四者的关系很复杂,而实际的情况比这个图还要复杂,权限、角色、组都具有上下级关系,权限管理是应用系统中比较棘手的问题,要设计一个通用的权限管理系统,工作量也着实不小。 当然对于有些项目,权限问题并不是那么复杂。有的只需要牵涉到权限和用户两种类型的对象,只需要给用户分配权限即可。

在另一些情况中,引入了角色对象,例如基于角色的权限系统, 只需要给角色分配权限,用户都隶属于角色,不需要单独为用户分配角色信息。 在下一篇中,我们将讲述权限管理的数据库设计等内容。

通用权限管理设计篇(二)——数据库设计

理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于N 对N 的关系,一般需要加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少需要十张表,分别为:权限表、用户表、角色表、组表、用户权限关联表、用户角色关联表、角色权限关联表、组权限关联表、组角色关联表、用户属组关联表。当然还可能引出一些相关的表。下面让我们在PowerDesigner 中画出各表吧。 各表及其关系如下:

1. 用户表

2. 角色表

3. 权限表

4. 组表

5. 角色权限表

6. 组权限表

7. 组角色表

8. 用户权限表

9. 用户角色表

10. 用户组表

11. 组织表

12. 操作日志表

通用权限管理设计篇(一)

一.引言

因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。

权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用的权限系统是很有意义的。 二.设计目标

设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源,后者是我们在系统设计与实现中的叫法。 系统的目标就是对应用系统的所有对象资源和数据资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮、数据显示的列以及各种行级数据进行权限的操控。 三.相关对象及其关系

大概理清了一下权限系统的相关概念,如下所示: 1. 权限

系统的所有权限信息。权限具有上下级关系,是一个树状的结构。下面来看一个例子

对于上面的每个权限,又存在两种情况,一个是只是可访问,另一种是可授权,例如对于“查看用户”这个权限,如果用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人。 2. 用户

应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0~n 个角色,可属于0~n 个组。他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色、组之间的关系都是n 对n 的关系。 3. 角色

为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。 4. 组

为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状视图。在实际情况中,我们知道,组也可以具有自己的角色信息、权限信息。这让我想到我们的QQ 用户群,一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ 群也可以具有自己的角色信息,例如普通群、高级群等。

针对上面提出的四种类型的对象,让我们通过图来看看他们之间的关系。

有上图中可以看出,这四者的关系很复杂,而实际的情况比这个图还要复杂,权限、角色、组都具有上下级关系,权限管理是应用系统中比较棘手的问题,要设计一个通用的权限管理系统,工作量也着实不小。 当然对于有些项目,权限问题并不是那么复杂。有的只需要牵涉到权限和用户两种类型的对象,只需要给用户分配权限即可。

在另一些情况中,引入了角色对象,例如基于角色的权限系统, 只需要给角色分配权限,用户都隶属于角色,不需要单独为用户分配角色信息。 在下一篇中,我们将讲述权限管理的数据库设计等内容。

通用权限管理设计篇(二)——数据库设计

理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于N 对N 的关系,一般需要加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少需要十张表,分别为:权限表、用户表、角色表、组表、用户权限关联表、用户角色关联表、角色权限关联表、组权限关联表、组角色关联表、用户属组关联表。当然还可能引出一些相关的表。下面让我们在PowerDesigner 中画出各表吧。 各表及其关系如下:

1. 用户表

2. 角色表

3. 权限表

4. 组表

5. 角色权限表

6. 组权限表

7. 组角色表

8. 用户权限表

9. 用户角色表

10. 用户组表

11. 组织表

12. 操作日志表


相关内容

  • 通用权限管理系统设计与实现
  • 龙源期刊网 http://www.qikan.com.cn 通用权限管理系统设计与实现 作者:彭耘 张立平 来源:<教育教学论坛>2014年第25期 摘要:权限管理是信息管理系统中必不可少的一部分,设计并实现通用权限管理系统可节约大量的人力和物力,本文以RBAC 模型为基础,设计了通用权 ...

  • 111111111通用权限管理系统详细设计说明书
  • 第一章 引言 1.1 编写目的 系统详细设计说明书在概要设计的基础上,对统一权限管理系统的各模块.数据等分别进行了实现层面上的要求和说明. 本文档读者为系统设计人员.软件实现人员等(编码人员.测试人员),为程序的开发提供依据. 1.2 背景 石家庄大学有办公自动化系统.图书管理系统.教务系统.排课系 ...

  • 3软件功能特点及使用后效益分析
  • 科怡综合档案管理系统 功能特点说明 北京科怡 2011 目 录 1系统背景 . ........................................................................................ 4 2系统功能 . ........... ...

  • 办公自动化系统的主要功能
  • 办公自动化系统的主要功能 办公自动化系统是我校信息化的基础应用平台.通过该项目的实施建立内外部通信平台和信息发布平台,实现教学.科研.行政.后勤等管理流程的信息化和工作流程的自动化,实现协同办公.通过办公自动化系统的应用,提高我校教学.科研.行政和后勤管理的规范化.科学化水平,为干部教育的现代化打下 ...

  • 用户权限管理设计
  • 用户权限管理设计 用户管理权限设计一直是大家讨论的热点,因为几乎涉及到每一个开发的业务系统.我找了很多很多的资料,大家的核心基本上都是一样的:基于角色管理. 用户,角色,模块,权限的相互组合,就可以形成一个强大的权限管理系统. 最近在一个项目中设计的一个用户权限的设计,很乐意与大家一起讨论及分享. ...

  • SOA主体技术架构
  • SOA 架构设计探讨 随着信息化技术不断发展,技术应用的不断增长.不断创新,信息系统开发建设也需要走专业化.多样性的建设之路,来帮助政府.企业解决信息化面临的难题,提升政府.企业服务整合能力.对我们软件开发公司也从原来的单个项目快速开发.快速构建能力,逐步过度到系统与系统间的能力整合,最终过渡到软件 ...

  • 访问控制技术综述
  • 2006年第28卷电气传动自动化 V01.28.No.4 第4期第1页 ELECTRICDRIVEAUToMATIoN 2006.28(4):1-5 文章编号:1005-7277(2006)04-000l-05 访问控制技术综述 鲍连承1,赵景波l,2 (1.海军潜艇学院,山东青岛26607l:2. ...

  • 会计电算化题库1_库答案(1)
  • 电算化 (第一套)题答案一.单项选择题:1.下列不属于会计软件初始化内容的是(? D? ).A.设置会计科目?? B.设置辅助核算项目?? C.录入科目期初余额? D.修改操作员密码2.会计软件运行所需要的硬件环境是指(? A? ).A.计算机(或计算机网络)硬件环境? B.计算机(或计算机网络)操 ...

  • 项目详细方案
  • 附件二: 项目详细解决方案 -- 面向黑龙江泰华医药集团 开发团队:星辰 成员:刘梦岩 徐忠明 杨亚彬 杨乐程甜 编写者:刘梦岩 指导老师:陈晨 日期:2013-7-25 摘要 本文以黑龙江泰华医药集团办公自动化系统的开发为背景,经过业务需求分析.系统框架设计.功能模块开发等几个过程,详细介绍了基于 ...