通用权限管理系统设计.pdf

上传人:tbuqq 文档编号:5491990 上传时间:2020-05-23 格式:PDF 页数:31 大小:1.66MB
返回 下载 相关 举报
通用权限管理系统设计.pdf_第1页
第1页 / 共31页
通用权限管理系统设计.pdf_第2页
第2页 / 共31页
通用权限管理系统设计.pdf_第3页
第3页 / 共31页
通用权限管理系统设计.pdf_第4页
第4页 / 共31页
通用权限管理系统设计.pdf_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《通用权限管理系统设计.pdf》由会员分享,可在线阅读,更多相关《通用权限管理系统设计.pdf(31页珍藏版)》请在三一文库上搜索。

1、标准实用 文案大全 通用权限管理系统设计 一引言 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权 限进行设计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相对通用 的权限系统是很有意义的。 二设计目标 设计一个灵活、通用、方便的权限管理系统。 在这个系统中, 我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢? 我们可以把这些资源简单概括为静态资源 (功能操作、数据列)和动态资源 (数据),也分别称为对象资 源和数据资源 ,后者是我们在系统设计与实现中的叫法。 系统的目标就是对应用系统的所有对象资源和数据资源进行权限控

2、制,比如应用系统的功能菜单、各 个界面的按钮、数据显示的列以及各种行级数据进行权限的操控。 三相关对象及其关系 大概理清了一下权限系统的相关概念,如下所示: 1.权限 系统的所有权限信息。权限具有上下级关系,是一个树状的结构。下面来看一个例子 系统管理 用户管理 查看用户 新增用户 标准实用 文案大全 修改用户 删除用户 对于上面的每个权限,又存在两种情况, 一个是只是可访问, 另一种是可授权, 例如对于“查 看用户”这个权限,如果用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人。 2.用户 应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0 n 个角色,可属于0

3、n 个组。 他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角 色、组之间的关系都是n 对 n 的关系。 3.角色 为了对许多拥有相似权限的用户进行分类管理,定义了角色的概念,例如系统管理员、管理员、用户、 访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限 的综合。父级角色的用户、父级角色的组同理可推。 4.组 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状 视图。在实际情况中, 我们知道, 组也可以具有自己的角色信息、权限信息。 这让我想到我们的QQ用户群, 一个群

4、可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ 群也可以具有自己的角色信息,例如普通群、高级群等。 标准实用 文案大全 针对上面提出的四种类型的对象,让我们通过图来看看他们之间的关系。 有上图中可以看出,这四者的关系很复杂,而实际的情况比这个图还要复杂,权限、 角色、 组都具有上下级关系,权限管理是应用系统中比较棘手的问题,要设计一个通用的权 限管理系统,工作量也着实不小。 当然对于有些项目,权限问题并不是那么复杂。有的只需要牵涉到权限和用户两种类型 的对象,只需要给用户分配权限即可。 在另一些情况中,引入了角色对象,例如基于角色的权限系统,只需要给角

5、色分配权 限,用户都隶属于角色,不需要单独为用户分配角色信息。 在下一篇中,我们将讲述权限管理的数据库设计等内容。 欢迎各位拍砖或给出宝贵意见。 标准实用 文案大全 国庆前整的通用权限设计的数据库初步设计部分,现在贴上来。 理清了对象关系之后,让我们接着来进行数据库的设计。在数据库建模时,对于N对 N的关系,一般需要 加入一个关联表来表示关联的两者的关系。初步估计一下,本系统至少需要十张表,分别为:权限表、用 户表、角色表、组表、用户权限关联表、用户角色关联表、角色权限关联表、组权限关联表、组角色关联 表、用户属组关联表。当然还可能引出一些相关的表。下面让我们在PowerDesigner 中画

6、出各表吧。 各表及其关系如下: 1.用户表 用户表( TUser) 标准实用 文案大全 字段名称字段类型备注 记录标识tu_id bigint pk, not null 所属组织to_id bigint fk, not null 登录帐号login_name varchar(64) not null 用户密码password varchar(64) not null 用户姓名vsername varchar(64) not null 手机号mobile varchar(20) 电子邮箱email varchar(64) 创建时间gen_time datetime not null 登录时间lo

7、gin_time datetime 上次登录时间last_login_time datetime 登录次数count bigint not null 2.角色表 角色表( TRole) 字段名称字段类型备注 角色 ID tr_id bigint pk, not null 父级角色 ID parent_tr_id bigint not null 角色名称role_name varchar(64) not null 创建时间gen_time datetime not null 角色描述description varchar(200) 3.权限表 权限表( TRight ) 字段名称字段类型备注 权

8、限 ID tr_id bigint pk, not null 父权限parent_tr_id bigint not null 权限名称right_name varchar(64) not null 标准实用 文案大全 权限描述description varchar(200) 4.组表 组表( TGroup ) 字段名称字段类型备注 组 ID tg_id bigint pk, not null 组名称group_name varchar(64) not null 父组parent_tg_id bigint not null 创建时间gen_time datetime not null 组描述de

9、scription varchar(200) 5.角色权限表 角色权限表( TRoleRightRelation) 字段名称字段类型备注 记录标识trr_id bigint pk, not null 角色Role_id bigint fk, not null 权限right_id bigint fk, not null 权限类型right_type int not null (0: 可访问, 1: 可授权) 6.组权限表 组权限表( TGroupRightRelation) 字段名称字段类型备注 记录标识tgr_id bigint pk, not null 组tg_id bigint fk,

10、not null 权限tr_id bigint fk, not null 权限类型right_type int not null (0: 可访问, 1: 可授权) 7.组角色表 标准实用 文案大全 组角色表( TGroupRoleRelation ) 字段名称字段类型备注 记录标识tgr_id bigint pk, not null 组tg_id bigint fk, not null 角色tr_id bigint pk, not null 8.用户权限表 用户权限表( TUserRightRelation) 字段名称字段类型备注 记录标识tur_id bigint pk, not null

11、用户tu_id bigint fk, not null 权限tr_id bigint fk, not null 权限类型right_type int not null (0: 可访问, 1: 可授权) 9.用户角色表 用户角色表( TUserRoleRelation ) 字段名称字段类型备注 记录标识tur_id bigint pk, not null 用户tu_id bigint fk, not null 角色tr_id bigint fk, not null 10.用户组表 用户组表( TUserGroupRelation ) 字段名称字段类型备注 记录标识tug_id bigint pk

12、, not null 用户tu_id bigint fk, not null 组tg_id bigint fk, not null 标准实用 文案大全 11.组织表 组织表( TOrganization ) 字段名称字段类型备注 组织 id to_id bigint pk, not null 父组parent_to_id bigint not null 组织名称org_name varchar(64) not null 创建时间gen_time datetime not null 组织描述description varchar(200) 12.操作日志表 操作日志表( TLog) 字段名称字段

13、类型备注 日志 ID log_id bigint pk, not null 操作类型op_type int not null 操作内容content varchar(200) not null 操作人tu_id bigint fk, not null 操作时间gen_time datetime not null 标准实用 文案大全 1.引言 1.1 编写目的 本文档对通用权限管理系统的总体设计、接口设计、界面总体设计、数据结构设计、系统出错处理设 计以及系统安全数据进行了说明。 1.2 背景 a、软件系统的名称:通用权限管理系统; b、任务提出者、开发者:谢星星; c、在 J2EE的 web系

14、统中需要使用权限管理的系统。 1.3 术语 本系统:通用权限管理系统; SSH :英文全称是Secure Shell。 1.4 预期读者与阅读建议 预期读者阅读重点 开发人员总体设计、接口设计、数据结构设计、界面总体设计、系统出错处理设计 设计人员总体设计、接口设计、数据结构设计、系统安全设计 1.5 参考资料 通用权限管理系统需求规格说明书 标准实用 文案大全 通用权限管理系统数据库设计说明书 2.总体设计 2.1 设计目标 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设 计,以满足不同系统用户的需求,将会浪费我们不少宝贵时间,所以花时间来设计一个相

15、对通用的权限系 统是很有意义的。 本系统的设计目标是对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的按 钮控件等进行权限的操控。 2.2 运行环境 操作系统: Windows系统操作系统和Linux 系列操作系统。 2.3 网络结构 通用权限管理系统可采用Java Swing实现,可以在桌面应用和Web应用系统中进行调用。如果需要要适 应所有开发语言,可以将其API 发布到 WEB Service 上。暂时用Java Swing 实现。 2.4 总体设计思路和处理流程 在说明总体设计思路前,我们先说明本系统的相关概念: 1. 权限资源 系统的所有权限信息。权限具有上下级关系

16、,是一个树状的结构。下面来看一个例子 系统管理 用户管理 标准实用 文案大全 查看用户 新增用户 修改用户 删除用户 对于上面的每个权限,又存在两种情况, 一个是只是可访问,另一种是可授权, 例如对于 “查看用户” 这个权限,如果用户只被授予“可访问”,那么他就不能将他所具有的这个权限分配给其他人。 2. 用户 应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0n 个角色,可属于0n 个组。 他的权限集是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角 色、组之间的关系都是n 对 n 的关系。 3. 角色 为了对许多拥有相似权限的用户进行分类管理,定义

17、了角色的概念,例如系统管理员、 管理员、 用户、 访客等角色。角色具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限 的综合。父级角色的用户、父级角色的组同理可推。 4. 组 为了更好地管理用户,对用户进行分组归类,简称为用户分组。组也具有上下级关系,可以形成树状 视图。在实际情况中, 我们知道, 组也可以具有自己的角色信息、权限信息。 这让我想到我们的QQ用户群, 一个群可以有多个用户,一个用户也可以加入多个群。每个群具有自己的权限信息。例如查看群共享。QQ 群也可以具有自己的角色信息,例如普通群、高级群等。 标准实用 文案大全 针对如上提出的四种对象,我们可以整理

18、得出它们之间的关系图,如下所示: 总体设计思路是将系统分为组权限管理、角色权限管理、用户权限管理、组织管理和操作日志管理五 部分。 其中组权限管理包括包含用户、所属角色、组权限资源和组总权限资源四部分,某个组的权限信息可 用公式表示:组权限 = 所属角色的权限合集 + 组自身的权限。 角色权限管理包括包含用户、包含组和角色权限三部分,某个角色的权限的计算公式为:角色权限 = 角色自身权限。 用户权限管理包括所属角色、所属组、用户权限、用户总权限资源和组织管理五部分。某个用户总的 权限信息存在如下计算公式:用户权限 = 所属角色权限合集 + 所属组权限合集 + 用户自身权限。 组织管理即对用户所

19、属的组织进行管理,组织以树形结构展示,组织管理具有组织的增、删、改、查 功能。 标准实用 文案大全 操作日志管理用于管理本系统的操作日志。 注意:因为组和角色都具有上下级关系,所以下级的组或角色的权限只能在自己的直属上级的权限中 选择,下级的组或者角色的总的权限都不能大于直属上级的总权限。 2.5 模块结构设计 本系统的具有的功能模块结构如下图所示: 2.6 尚未解决的问题 无。 3.接口设计(暂略) 3.1 用户接口(暂略) 3.2 外部接口(暂略) 标准实用 文案大全 3.3 内部接口(暂略) 4.界面总体设计 本节将阐述用户界面的实现,在此之前对页面元素做如下约定: 序号页面元素约定 1

20、按钮未选中时: 按钮名称 选中时: 按钮名称 2单选框 选项 3复选框 选项 4下拉框 选项 , , 5文本框|_| 6TextArea| | 7页签未选中时:选项名称 选中时:选项名称 8未选中链接链接文字 9选中链接链接文字 10说明信息说明信息 4.1 组权限管理 4.1.1 包含用户 组信息 组 1 组 11 所选择组:组1 包含用户 所属角色 组权限 总权限 标准实用 文案大全 组 12 组 组 2 组 21 组 22 组 修改 用户名姓名手机号最近登录时间登录次数 阿蜜果谢星星13666666666 2007-10-8 66 sterning xxx 13555555555 200

21、7-10-8 10 当用户选择“修改”按钮时,弹出用户列表,操作人可以通过勾选或取消勾选来修改该组所包含的用 户。 4.1.2 所属角色 组信息 组 1 组 11 组 12 组 组 2 组 21 组 22 组 所选择组:组1 包含用户 所属角色 组权限 总权限 修改 角色 ID 角色名称角色描述 1 访客 - 2 初级用户 - 标准实用 文案大全 当用户选择“修改”按钮时,弹出角色树形结构,操作人可以通过勾选或取消勾选来修改该组所属的 角色。 4.1.3 组权限 组信息 组 1 组 11 组 12 组 组 2 组 21 组 22 组 所选择组:组1 包含用户 所属角色 组权限 总权限 保存 取

22、消 4.1.4 总权限 标准实用 文案大全 组信息 组 1 组 11 组 12 组 组 2 组 21 组 22 组 所选择组:组1 包含用户 所属角色 组权限 总权限 保存 取消 通过对已具有的权限取消勾选,或为某权限添加勾选,来修改组的权限信息,点击“保存”按钮保存 修改信息。 4.1.5 组管理 在下图中,选中组1 的时候,右键点击可弹出组的操作列表,包括添加、删除和修改按钮, 从而完成在该组下添加子组,删除该组以及修改该组的功能。 标准实用 文案大全 组信息 组 1 组 11 组 12 组 组 2 组 21 组 22 组 所选择组:组1 包含用户 所属角色 组权限 总权限 修改 用户名姓

23、名手机号最近登录时间登录次数 阿蜜果谢星星13666666666 2007-10-8 66 sterning xxx 13555555555 2007-10-8 10 4.2 角色权限管理 4.2.1 包含用户 角色信息 角色 1 角色 11 角色 12 角色 角色 2 角色 21 所选择角色:角色1 包含用户 包含组 角色权限 修改 用户名姓名手机号最近登录时间登录次数 阿蜜果谢星星13666666666 2007-10-8 66 sterning xxx 13555555555 2007-10-8 10 标准实用 文案大全 角色 22 角色 当用户选择“修改”按钮时,弹出用户列表,操作人可

24、以通过勾选或取消勾选来修改该角色所包含的 用户。 4.2.2 包含组 角色信息 角色 1 角色 11 角色 12 角色 角色 2 角色 21 角色 22 角色 所选择角色:角色1 包含用户 包含组 角色权限 修改 组 ID 组名称组描述 1 xxx1 - 2 xxx2 - 当用户选择“修改”按钮时,弹出用户列表,操作人可以通过勾选或取消勾选来修改该角色所包含的 组。 标准实用 文案大全 4.2.3 角色权限 角色信 息 角 色 1 角色 11 角色 12 角色 角 色 2 角色 21 角色 22 角色 所选择角色:角色1 包含用户 包含组 角色权限 保存 取消 通过对已具有的权限取消勾选,或为

25、某权限添加勾选,来修改角色的权限信息,点击“保存”按钮保 存修改信息。 4.2.4 管理角色 标准实用 文案大全 在下图中,选中组1 的时候,右键点击可弹出组的操作列表,包括添加、删除和修改按钮, 从而完成在该组下添加子组,删除该组以及修改该组的功能。 角色信息 角色 1 角色 11 角色 12 角色 角色 2 角色 21 角色 22 角色 所选择角色:角色1 包含用户 包含组 角色权限 修改 用户名姓名手机号最近登录时间登录次数 阿蜜果谢星星13666666666 2007-10-8 66 sterning xxx 13555555555 2007-10-8 10 4.3 用户权限管理 4.

26、3.1 所属角色 用户权限信息 xx 公司 广州分公 司 阿蜜果 所选择用户:阿蜜果 所属角色 所属组 用户权限 总权限 修改 角色 ID 角色名称角色描述 标准实用 文案大全 肖 xx yy 北京分公 司 zz1 zz2 zz3 1 访客 - 2 初级用户 - 当用户选择“修改”按钮时,弹出角色树形结构,操作人可以通过勾选或取消勾选来修改该用户所属 的角色。 4.3.2 所属组 用户信息 xx 公司 广州分公 司 阿蜜果 肖 xx yy 北京分公 司 所选择用户:阿蜜果 所属角色 所属组 用户权限 总权限 修改 组 ID 组名称组描述 1 组 1 - 2 组 2 - 标准实用 文案大全 zz

27、1 zz2 zz3 当用户选择“修改”按钮时,弹出组的树形结构,操作人可以通过勾选或取消勾选来修改该用户所属 的组。 4.3.3 用户权限 用户信 息 xx 公司 广 州分公 司 阿蜜果 肖 xx yy 北 京分公 司 所选择用户:阿蜜果 所属角色 所属组 用户权限 总权限 保存 取消 标准实用 文案大全 zz1 zz2 zz3 通过对已具有的权限取消勾选,或为某权限添加勾选,来修改用户的权限信息,点击“保存”按钮保 存修改信息。 4.3.4 总权限 用户信 息 xx 公司 广 州分公 司 阿蜜果 肖 xx yy 北 京分公 司 所选择用户:阿蜜果 所属角色 所属组 用户权限 总权限 保存 取

28、消 标准实用 文案大全 zz1 zz2 zz3 通过对已具有的权限取消勾选,或为某权限添加勾选,来修改用户的权限信息,点击“保存”按钮保 存修改信息。 4.3.5 用户管理 当选择了某用户时,点击右键,弹出菜单列表:修改、删除、取消,点击修改和删除按钮可 以实现用户的删除和修改功能。 选择某个组织,例如下表中的“广州分公司”,弹出菜单列表:添加子组织、删除组织、修 改组织、添加用户、取消,点击添加用户按钮可以实现用户的添加功能。 用户权限信息 xx 公司 广州分公 司 阿蜜果 肖 xx yy 所选择用户:阿蜜果 所属角色 所属组 用户权限 总权限 修改 角色 ID 角色名称角色描述 1 访客

29、- 2 初级用户 - 标准实用 文案大全 北京分公 司 zz1 zz2 zz3 4.3.6 组织管理 选择某个组织,例如下表中的“广州分公司”,弹出菜单列表:添加子组织、删除组织、修 改组织、添加用户、取消,点击添加子组织、删除组织、修改组织按钮可以实现组织的添加、删除和修改 功能。 用户权限信息 xx 公司 广州分公 司 阿蜜果 肖 xx yy 北京分公 司 zz1 所选择用户:阿蜜果 所属角色 所属组 用户权限 总权限 修改 角色 ID 角色名称角色描述 1 访客 - 2 初级用户 - 标准实用 文案大全 zz2 zz3 4.4 操作日志管理 4.4.1 查询操作日志 操作名称: |_|

30、操作人: |_| 操作时间从|_| 到 |_| 查询 重置 删除 编号操作名称操作内容操作人操作时间 1 xx1 - Amigo 2007-10- 8 2 xx2 - xxyy 2007-10 -8 输入上图表单中的查询信息后,点击“查询”按钮,可查询出符合条件的信息。 4.4.2 删除操作日志 操作名称: |_| 操作人: |_| 操作时间从|_| 到 |_| 查询 重置 删除 编号操作名称操作内容操作人操作时间 1 xx1 - Amigo 20 标准实用 文案大全 07-10-8 2 xx2 - xxyy 2 007-10-8 输入上图表单中的查询信息后,点击“查询”按钮,可查询出符合条件

31、的信息。而后点击“删除”按 钮,可删除符合查询条件的操作日志。 5.数据结构设计 数据库设计的模型请参见通用权限管理系统_数据库模型 .pdm。表的说明请参见通用权限管理 系统数据库设计说明书。 5.1 设计原则 5.1.1 命名的规范 数据库中表、主键、外键、索引的命名都以统一的规则,采用大小写敏感的形式,各种对象命名长度 不要超过 30 个字符,这样便于应用系统适应不同的数据库平台。 5.1.2 数据的一致性和完整性 为了保证数据库的一致性和完整性,往往通过表间关联的方式来尽可能的降低数据的冗余。表间关联 是一种强制性措施,建立后,对父表(Parent Table)和子表 (Child T

32、able)的插入、更新、删除操作均要 占用系统的开销。如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提 高系统的响应时间,合理的数据冗余也是必要的。使用规则(Rule)和约束( Check)来防止系统操作人员 误输入造成数据的错误是设计人员的另一种常用手段,但是,不必要的规则和约束也会占用系统的不必要 开销,需要注意的是,约束对数据的有效性验证要比规则快。所有这些,需要在设计阶段应根据系统操作 的类型、频度加以均衡考虑。 标准实用 文案大全 5.2 数据库环境说明 数据库: MySql5.0 设计库建模工具:PowerDesigner12.0 5.3 数据库命名规则

33、 表名以 T 开头,外键以FK开头,索引以INDEX开头。 5.4 逻辑结构 pdm文件的名称为:通用权限管理系统_数据库模型。 5.5 物理存储 通过数据库建模工具PowerDesigner12 可以将 pdm导出为文本文件, 将数据库脚本放入文本文件中保 存。 5.6 数据备份和恢复 数据库需定期备份(每天备份一次),备份文件格式为backup_yyyyMMdd,数据库被破坏时,利用最 新的备份文件进行恢复。 6.系统出错处理设计 6.1 出错信息 错误分类子项及其编码错误名称错误代码备注 数据库错误连接连接超时100001001 连接断开100001002 标准实用 文案大全 数据库本身

34、错误代码数据库本身错 误代码 100002+数据库错误代码 TCP连接错误连接连接超时101001001 连接断开101001002 其它 TCP连接错误 (socke t 自身错误代码 ) 101002+ socket 错误代码 配置信息错误未配置输入参数102001 未配置输出参数102002 组管理部分自定义错误103001103999 角色管理部分自定义错 误 104001104999 用户管理部分自定义错 误 105001105999 操作日志管理106001106999 6.2 补救措施 为了当某些故障发生时,对系统进行及时的补救,提供如下补救措施: a后备技术定期对数据库信息进行

35、备份(每天一次),当数据库因某种原因被破坏时,以最 新的数据库脚本进行恢复;。 7.系统安全设计 7.1 数据传输安全性设计 SSH可以通过将联机的封包加密的技术进行资料的传递; 使用 SSH可以把传输的所有数据进行加密, 即使有人截获到数据也无法得到有用的信息。同时数据经过压缩,大大地加快了传输的速度。通过SSH的 使用,可以确保资料传输比较安全并且传输效率较高。 标准实用 文案大全 7.2 应用系统安全性设计 操作人的操作信息需要提供操作记录。对系统的异常信息需进行记录,已备以后查看。只有授权用户 才能登录系统,对于某个操作,需要具有相应权限才能进行操作。 7.3 数据存储安全性设计 对于用户的密码等敏感信息采用MD5进行加密。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1