基于网络环境下的管理信息系统的用户权限管
理是软件设计开发过程中的一个最重要的环节。用
户的权限管理实现方法的优劣直接反映系统安全性
的高低。目前,用户的权限管理主要涉及3个层面:
(1)基于用户工作岗位职责的功能层权限控制;(2)
软件系统所采用的数据库系统的数据访问层的权限
控制;(3)功能层的操作员用户与数据访问层的数据
库用户的映射关系。在C/S结构模式下的管理信息
系统的用户权限管理的实现方法都是基于上述3个
层面的部分或全部,只不过侧重点不同而已。本文
提出的用户权限管理的实现方法,即体现了数据访
问层的权限控制,又实现且突出了接近实际的基于
操作员用户岗位角色的功能层权限控制,同时简化
了操作员用户与数据库用户的映射关系,在实际应
用中取得了很好的效果。
### C/S结构模式下用户权限管理的实现
#### 引言
随着信息技术的发展,网络环境下的管理信息系统(MIS)已成为各类组织的核心组成部分。在这样的系统中,如何有效地管理用户的权限成为了确保信息安全的关键因素之一。良好的用户权限管理不仅可以提高系统的安全性,还能优化用户的操作体验,确保系统的稳定运行。在C/S(客户端/服务器)结构模式下,用户权限管理主要涉及三个层面:基于用户工作职责的功能层权限控制、数据库系统的数据访问层权限控制,以及功能层用户与数据访问层用户之间的映射关系。本文提出了一种综合考虑这三个层面的用户权限管理方法,并结合实际案例进行了阐述。
#### 设计实现思想
在C/S架构中,操作员用户通常通过菜单调用表单(Form)来执行特定的业务功能。因此,功能层的权限控制实质上是对菜单项访问的控制。此外,客户端表单处理业务时需要访问服务器端数据库系统中的资源,这就涉及到数据访问层的权限控制问题。为了简化用户对数据库资源的访问权限控制并保证安全性,本文提出了一种方法:
- **建立两个通用数据库用户**:一是拥有资源访问权限的`Pub-resuser`,二是用于登录验证的`Pub-loginuser`。所有业务相关的表单都以`Pub-resuser`身份访问数据库,而`Pub-loginuser`则仅对保存用户信息的表有查询权限。
- **简化映射关系**:通过这种方法,操作员用户与数据库用户之间的映射关系从多对多变为多对一,减轻了数据库管理员的工作负担,同时也保持了系统的安全性。
#### 实现过程
基于上述设计理念,可以通过建立以下数据库表来实现具体的用户权限管理方案:
1. **用户信息表 (`userinfo`)**
- 用户ID号:记录用户唯一标识符
- 用户姓名:记录用户的姓名
- 所属部门:记录用户所在的部门
- 密码:存储用户密码(建议加密存储)
- 其他相关信息:例如联系方式等
2. **菜单权限表 (`menu_permission`)**
- 菜单项ID:标识每一个菜单项
- 菜单项名称:菜单项的名称
- 权限字符串:使用全局变量Spr,通过1或0的组合来表示用户对某个菜单项是否有访问权限
3. **表单权限表 (`form_permission`)**
- 表单ID:标识每一个表单
- 表单名称:表单的名称
- 相关菜单项ID:与表单关联的菜单项ID
- 权限字符串:同上,使用1或0表示权限状态
4. **业务功能权限表 (`function_permission`)**
- 功能ID:标识每一个业务功能
- 功能描述:简短描述该功能的作用
- 相关表单ID:与功能关联的表单ID
- 权限字符串:使用1或0表示权限状态
5. **用户组表 (`user_group`)**
- 组ID:标识每一个用户组
- 组名:用户组的名称
- 所属部门:用户组所属的部门
- 权限字符串:用于批量设置用户组内所有成员的权限
6. **用户-用户组关联表 (`user_group_relation`)**
- 用户ID:与`userinfo`表中的用户ID相对应
- 组ID:与`user_group`表中的组ID相对应
通过上述表格的设计,可以实现基于用户岗位角色的功能层权限控制。此外,还可以通过设置多个用户组来简化授权过程,使得不同部门或职位的用户能够快速获得适当的访问权限。
#### 结论
本文介绍了一种在C/S结构模式下实现用户权限管理的方法。该方法不仅关注数据访问层的权限控制,还实现了接近实际需求的功能层权限控制,并简化了操作员用户与数据库用户的映射关系。通过实际应用证明,这一方法简便可行,能够在保证系统安全性的同时提升用户体验。未来,随着技术的进步,用户权限管理的方法还将不断演进,以适应更加复杂多变的应用场景。
- 1
- 2
- 3
前往页