转自:http://www.cnblogs.com/chegan/archive/2009/06/02/1494366.html
1、基于web信息管理系统的权限设计分析和总结(理论)
2、基于web信息管理系统的权限设计分析和总结(数据结构)
3、基于web信息管理系统的权限设计分析和总结(实现)
看过基于web信息管理系统的权限设计分析和总结(理论)的一些网友问道,能不能给出这个权限模型的实现,其实模型是一个解决给定问题的理论指导,具体的实现可以有多种方式,可能根据您的项目的实际情况有所不同,这里给出一个是基于sql server数据库的实现。这里提到的只是一些基本的权限信息,您当然可以扩展更多的权限信息。
首先需要定义的是基本权限单位的数据库模型,用下表来表示:(这个表不是独立存在的,而是合并到表单信息表 和 角色权限表中)
权限类型 |
字段名称 |
类型 |
意义 |
操作权限 |
AddAction |
bit |
新增 |
ModifyAction |
bit |
修改 | |
DeleteAction |
bit |
删除 | |
SearchAction |
bit |
查询 | |
字段权限 (字段之间以逗号 , 分割) |
ReadOnlyColumnsOnAdd |
Nvarchar(1000) |
只读字段(新增) |
HiddenColumnsOnAdd |
Nvarchar(1000) |
隐藏字段(新增) | |
ReadOnlyColumnsOnModify |
Nvarchar(1000) |
只读字段(修改) | |
HiddenColumnsOnModify |
Nvarchar(1000) |
隐藏字段(修改) | |
HiddenColumnsOnSearch |
Nvarchar(1000) |
隐藏字段(查询) | |
纪录权限 (一段表示权限范围的语句,在本实现中,就是一个sql语句的片断)
|
ReadOnlyRecords |
Nvarchar(1000) |
只读纪录 |
HiddenRecord |
Nvarchar(1000) |
隐藏纪录 |
接下来是表单信息表,表单信息表有一些基本的表单信息,例如表单名称等,同时表单信息表也拥有以上的基本权限数据,这些权限信息构成了表单的固有权限属性(静态权限),一个简单的表单信息表如下所示:
表单信息表:Forms
字段名称 |
类型 |
意义 |
|
FormID |
Nvarchar(100) |
表单ID | |
FormName |
Nvarchar(100) |
表单名称 | |
AddAction |
bit |
新增 |
表单的固有权限属性 (静态权限) |
ModifyAction |
bit |
修改 | |
DeleteAction |
bit |
删除 | |
SearchAction |
bit |
查询 | |
ReadOnlyColumnsOnAdd |
Nvarchar(1000) |
只读字段(新增) | |
HiddenColumnsOnAdd |
Nvarchar(1000) |
隐藏字段(新增) | |
ReadOnlyColumnsOnModify |
Nvarchar(1000) |
只读字段(修改) | |
HiddenColumnsOnModify |
Nvarchar(1000) |
隐藏字段(修改) | |
HiddenColumnsOnSearch |
Nvarchar(1000) |
隐藏字段(查询) | |
ReadOnlyRecords |
Nvarchar(1000) |
只读纪录 | |
HiddenRecord |
Nvarchar(1000) |
隐藏纪录 |
下面就是角色表了,角色表相当简单,只包含一个角色名称就可以了:
角色表:Roles
字段名称 |
类型 |
意义 |
RoleID |
Nvarchar(100) |
角色ID |
RoleName |
Nvarchar(100) |
角色名称 |
定义好了角色表,接下来就是角色权限了,就是角色在每个表单上的权限表现形式,当前这个表就需要跟角色以及表单有关了,具体的结果如下:
角色权限表: RolePurview
字段名称 |
类型 |
意义 |
|
RolePurviewID |
Nvarchar(100) |
主键 | |
FormID |
Nvarchar(100) |
表单ID 外键,关联到表单信息表的FormID | |
RoleID |
Nvarchar(100) |
角色ID 外键,关联到角色表的RoleID | |
AddAction |
bit |
新增 |
表单的角色权限属性 (动态权限) |
ModifyAction |
bit |
修改 | |
DeleteAction |
bit |
删除 | |
SearchAction |
bit |
查询 | |
ReadOnlyColumnsOnAdd |
Nvarchar(1000) |
只读字段(新增) | |
HiddenColumnsOnAdd |
Nvarchar(1000) |
隐藏字段(新增) | |
ReadOnlyColumnsOnModify |
Nvarchar(1000) |
只读字段(修改) | |
HiddenColumnsOnModify |
Nvarchar(1000) |
隐藏字段(修改) | |
HiddenColumnsOnSearch |
Nvarchar(1000) |
隐藏字段(查询) | |
ReadOnlyRecords |
Nvarchar(1000) |
只读纪录 | |
HiddenRecord |
Nvarchar(1000) |
隐藏纪录 |
当然要完成整个模型,还需要用户信息表以及用户角色表
用户信息表:Users
字段名称 |
类型 |
意义 |
UserID |
Nvarchar(100) |
用户ID |
UserName |
Nvarchar(100) |
用户名称 |
用户角色表:UserInRoles
字段名称 |
类型 |
意义 |
UserInRoleID |
Nvarchar(100) |
主键 |
UserID |
Nvarchar(100) |
用户ID 外键,关联到用户表的UserID |
RoleID |
Nvarchar(100) |
角色ID 外键,关联到角色表的RoleID |
到目前为止,我们完成这个模型所需要的表都出场了,下面的图表示了他们之间的关系:
在下节中将实现具体的权限的计算公式。
来源:https://www.cnblogs.com/walarm/archive/2009/06/02/1494508.html