授权管理是如何实现的
我做的一个系统需要给各个用户对不同的部分有管理权限,我见过这样的界面,出现所有的界面然后用复选按扭给用户授权的,请教各位一下这方面的内容的数据库设计 是怎么实现的.
------解决方案--------------------用户表(u)
userid,username
权限表
powerid,powername
角色表
ruleid,rulename
角色权限表
ruleid,powerid;
用户角色表
userid,ruleid
权限记录:1,修改用户 2,删除用户 3,查询用户 4,配置视频
角色记录: 1,系统管理员 2,普通用户
用户记录:awusoft,苏某某
角色权限表记录:1,1(表示角色1有1权限,也就是系统管理员有修改用户的权限) 1,2(角色1有2权限)
用户角色表记录:awusoft,1 awusoft 2(用户awusoft是系统管理员也是普通用户,它拥有两个角色的权限 <根据角色权限表得到> )
在配置的时候有些是配置角色的权限的,然后给用户配置角色,有些是直接配置给用户的,就我的思路是加上角色的.
首先是页面上显示一个角色的编号和名称:然后下边列出了所有的权限,如果选 中某一个权限就会把这个权限的id和当前角色的id一起写到角色权限表里去.
同理,一个角色对应多个权限,那么一个用户也对应多个角色,所以有这样的页面:
显示一个用户的编号和名称,然后列出所有的角色id,如果选中了某一个角色就会把这个角色的id和当前用户的id一起写到用户角色表里去.
你也可以不要角色,就建三个表用户表,权限表,用户权限表
显示上显示一个用户的信息,下边列出所有的权限,选中某一个权限就把这个权限的id和当前用户的id写进到用户权限表里去.
------解决方案--------------------每个用户还限制访问地区,店铺,部门3个等级的权限.
这个应该是查询数据的时候,数据有些是不能看的.原理都差不多,不过
每个用户对每个系统模块,分别有查看,查询,新增,修改,删除5类权限,
这个是最基本的,其他的一些在控制数据查询的时候就可以了啊.也就是写在sql语句里边
------解决方案--------------------做一个 用户——权限 的映射,如果规模大的话,加上一层 用户——角色——权限
在数据库设计的时候就把这些做成一个库的若干个表就好,表间有映射,然后通过条件查询来实现权限的分配
------解决方案--------------------好象是过滤器 就能做
别的都不用该
在过滤器判断一下 就O了
------解决方案--------------------好象是过滤器 就能做
别的都不用该
在过滤器判断一下 就O了
--------------------------------好厉害,几百个页面做几百个判断
------解决方案--------------------呵呵 最近也在考虑做权限的问题啊 一起探讨啊 在博客里也有几篇相关的文章哦
------解决方案--------------------数据库的设计上面已经有人说了
在程序里面控制可以采用屏蔽链接,虽然链接看不到了但是通过在浏览器地址栏输入url也是可以访问的,所以还需要用filter做一下控制,前提是你需要将各个模块所对应的url设计好
------解决方案--------------------看一下jive了,用代理模式来做
------解决方案--------------------我现在也在做简单的权限管理啊 这是我设计的表 大家看看啊
表名: permissionList (记录所有功能)
BH VARCHAR2(10) primary key, -- 编号 (唯一)
MC VARCHAR2(40) not null, -- 名称
YWMC VARCHAR2(4000), -- 英文名称
SJMKM VARCHAR2(10), -- 上级模块名称 *
MKURL VARCHAR2(200), -- 模块url
SXH VARCHAR2(2), -- 顺序号
CZJB VARCHAR2(10), -- 操作级别(暂时不用)
PIC VARCHAR2(200), -- 菜单的图片
MKSJSM VARCHAR2(4000), -- 本模块设计说明
STATUS VARCHAR2(2) default 1 -- 本模块状态
SQL:
CREATE TABLE permissionList
(
BH VARCHAR2(10) primary key, -- 编号 (唯一)
MC VARCHAR2(40) not null, -- 名称
YWMC VARCHAR2(4000), -- 英文名称
SJMKM VARCHAR2(10), -- 上级模块名称 *
MKURL VARCHAR2(200), -- 模块url
SXH VARCHAR2(2), -- 顺序号
CZJB VARCHAR2(10), -- 操作级别(暂时不用)
PIC VARCHAR2(200), -- 菜单的图片
MKSJSM VARCHAR2(4000), -- 本模块设计说明
STATUS VARCHAR2(2) default 1
)
2. 系统角色信息
表名: roleList (记录所有角色)
BH VARCHAR2(10) not null, -- 编号(唯一)
MC VARCHAR2(50) not null, -- 角色名称
COMPID VARCHAR2(10), -- 公司ID