关于系统的权限设计
一个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
功能:记录所有功能点基本信息。
简介:
字段:
序号字段类型及长度是否为空字段说明备注
1functionIdInt(4)否功能编号自增长
2functionAliasVarChar(10)否功能别名英文名称
3functionNameVarChar(50)否功能名称
备注:
2. 角色表
表名:scopeManage_role
功能:记录所有角色的信息。
简介:
字段:
序号字段类型及长度是否为空字段说明备注
1roleIdInt(4)否角色编号自增长
2roleNameVarChar(50)否角色名称
备注:
3. 角色与功能关系表
表名:scopeManage_roleFunctionRelation
功能:记录某个角色和该角色所属功能之间的关系。
简介:
字段:
序号字段类型及长度是否为空字段说明备注
1roleIdInt(4)否角色编号
2functionIdInt(4)否功能编号
备注:
4. 角色与用户关系表
表名:scopeManage_roleUserRelation
功能:
简介:记录某个用户和该用户角色之间的关系。
字段:
序号字段类型及长度是否为空字段说明备注
1roleIdInt(4)否角色编号
2userIdVarChar(10)否用户编号
备注:
5. 用户表
表名:user
功能:
简介:这是个临时的表,这张表要根据具体的项目而设计。不过设计的时候表名要用 user,用户编号,用户姓名和密码要用,userId,userName和userPsWd。
字段:
序号字段类型及长度字段说明备注
1userIdVarChar(10)用户编号
2userNameVarChar(30)用户姓名
3userPsWdVarChar(20)用户密码
4depaIdInt(4)所属部门编号
5depaNameVarChar(30)所属部门名称
6habitusInt(1)用户状态0,为删除状态
备注:
6. 部门类型表
表名:scopeManage_depaType
功能:记录部门类型的信息(包括类型编号和类型名称)。
简介:
字段:
序号字段类型及长度字段说明备注
1depaTypeIdInt(4)部门类型编号
2depaTypeNameVarChar(50)部门类型名称
备注:
7. 部门信息表
表名:scopeManage_department
功能:记录部门的基本信息及部门之间的等级关系。
简介:
字段:
序号字段类型及长度字段说明备注
1depaIdInt(4)部门编号
2depaNameVarChar(30)部门名称
3superDepaIdInt(4)上级部门编号
4superDepaNameVarChar(30)上级部门名称
5depaTypeId Int(4)部门类型编号
6depaTypeNameVarChar(30)部门类型名称