日期:2014-05-18  浏览次数:20733 次

关于系统的权限设计
一个web管理系统,怎么样来分配权限?应该怎么设计?请高人指教
qq   2770967

------解决方案--------------------
用户--角色--功能
简单的说:角色绑定到功能上.如角色1绑定到菜单1,菜单2;角色2可以绑定到菜单1,菜单3;
然后用户绑定到角色.可以拥有多个角色.如user1有角色1,角色2,user2有角色2.
那么结果权限就出来了:就是user1可以操作菜单1,菜单2;菜单3;而user2只能操作菜单3;
希望可以给你帮助
------解决方案--------------------
楼上的方法不错 而且这样容易扩展 最近做的项目里就用到了

可以参考windows操作权限发分配
------解决方案--------------------
Sunny319说的没错我也是这样做的
简单实现:建3个表(用户表tbl_user,角色表tbl_role,权限表tbl_pri)
tbl_user中的字段
userId(用户id) account password roleId(对应角色id) ...
tbl_role中的字段
roleId(角色id) roleName ...
tbl_pri中的字段
priId(权限id) roleId(对应角色id) url(有权限看的页面)...
当然你可以另外建一个表专门记录url的这样就更方便管理,还可以根据这个表得出菜但==
还可以设置对具体页面是否有查看、编辑、添加等功能
------解决方案--------------------
数据库表结构
1. 功能点表
表名:scopeManage_function
功能:记录所有功能点基本信息。
简介:
字段:
序号 字段 类型及长度 是否为空 字段说明 备注
1 functionId Int(4) 否 功能编号 自增长
2 functionAlias VarChar(10) 否 功能别名 英文名称
3 functionName VarChar(50) 否 功能名称
备注:

2. 角色表
表名:scopeManage_role
功能:记录所有角色的信息。
简介:
字段:
序号 字段 类型及长度 是否为空 字段说明 备注
1 roleId Int(4) 否 角色编号 自增长
2 roleName VarChar(50) 否 角色名称
备注:

3. 角色与功能关系表
表名:scopeManage_roleFunctionRelation
功能:记录某个角色和该角色所属功能之间的关系。
简介:
字段:
序号 字段 类型及长度 是否为空 字段说明 备注
1 roleId Int(4) 否 角色编号
2 functionId Int(4) 否 功能编号
备注:

4. 角色与用户关系表
表名:scopeManage_roleUserRelation
功能:
简介:记录某个用户和该用户角色之间的关系。
字段:

序号 字段 类型及长度 是否为空 字段说明 备注
1 roleId Int(4) 否 角色编号
2 userId VarChar(10) 否 用户编号

备注:

5. 用户表
表名:user
功能:
简介:这是个临时的表,这张表要根据具体的项目而设计。不过设计的时候表名要用 user,用户编号,用户姓名和密码要用,userId,userName和userPsWd。
字段:
序号 字段 类型及长度 字段说明 备注
1 userId VarChar(10) 用户编号
2 userName VarChar(30) 用户姓名
3 userPsWd VarChar(20) 用户密码
4 depaId Int(4) 所属部门编号
5 depaName VarChar(30) 所属部门名称
6 habitus Int(1) 用户状态 0,为删除状态
备注:

6. 部门类型表
表名:scopeManage_depaType
功能:记录部门类型的信息(包括类型编号和类型名称)。
简介:
字段:
序号 字段 类型及长度 字段说明 备注
1 depaTypeId Int(4) 部门类型编号
2 depaTypeName VarChar(50) 部门类型名称
备注:

7. 部门信息表
表名:scopeManage_department
功能:记录部门的基本信息及部门之间的等级关系。
简介:
字段:
序号 字段 类型及长度 字段说明 备注
1 depaId Int(4) 部门编号
2 depaName VarChar(30) 部门名称
3 superDepaId Int(4) 上级部门编号
4 superDepaName VarChar(30) 上级部门名称
5 depaTypeId Int(4) 部门类型编号
6 depaTypeName VarChar(30) 部门类型名称