首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

授权管理是怎么实现的

2011-12-29 
授权管理是如何实现的我做的一个系统需要给各个用户对不同的部分有管理权限,我见过这样的界面,出现所有的

授权管理是如何实现的
我做的一个系统需要给各个用户对不同的部分有管理权限,我见过这样的界面,出现所有的界面然后用复选按扭给用户授权的,请教各位一下这方面的内容的数据库设计   是怎么实现的.

[解决办法]
用户表(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


BZSM VARCHAR2(50) -- 备注说明

SQL:
CREATE TABLE roleList
(
BH VARCHAR2(10) PRIMARY KEY,
MC VARCHAR2(50) not null,
COMPID VARCHAR2(10),
BZSM VARCHAR2(50)
)


3.系统用户信息
表名: userList (记录所有用户)
USERID VARCHAR2(20) primary key, -- 用户ID 主键
USERNAME VARCHAR2(20) NOT NULL, -- 用户名称
USERPASS VARCHAR2(20) NOT NULL, -- 用户密码
USERBM VARCHAR2(20) , -- 用户别名
ZCSJ VARCHAR2(20), -- 注册时间
COMPID VARCHAR2(10), -- 公司ID
DEPTID VARCHAR2(10), -- 部门ID
DLSJ VARCHAR2(20), -- 登录时间
DLIP VARCHAR2(20), -- 登录IP
LXDH VARCHAR2(20), -- 联系电话
EMAIL VARCHAR2(50), -- E-MAIL地址
LXDZ VARCHAR2(100), -- 联系地址
SHZT VARCHAR2(1), -- 审核状态 1.已审核 0.未审核
SHRY VARCHAR2(20), -- 审核人员
SHSJ VARCHAR2(20) -- 审核时间


SQL:
CREATE TABLE userList
(
USERID VARCHAR2(20) PRIMARY KEY,
USERNAME VARCHAR2(20) NOT NULL,
USERPASS VARCHAR2(20) NOT NULL,
USERBM VARCHAR2(20) ,
ZCSJ VARCHAR2(20),
COMPID VARCHAR2(10),
DEPTID VARCHAR2(10),
DLSJ VARCHAR2(20),
DLIP VARCHAR2(20),
LXDH VARCHAR2(20),
EMAIL VARCHAR2(50),
LXDZ VARCHAR2(100),
SHZT VARCHAR2(1),
SHRY VARCHAR2(20),
SHSJ VARCHAR2(20)

)

4.系统角色功能信息
表名: rolePermission
ID VARCHAR2(20) primary key -- 自动生成ID 如: 200610100840018387(一)
ROLEBH VARCHAR2(10) not null, -- 角色编号
PERMISSIONBH VARCHAR2(20) not null, -- 模块编号
BZ VARCHAR2(40), -- 备注


SQL:
CREATE TABLE rolePermission
(
ID VARCHAR2(20) PRIMARY KEY ,
ROLEBH VARCHAR2(10) not null,
PERMISSIONBH VARCHAR2(20) not null,
BZ VARCHAR2(40)

)

5.系统用户角色信息
表名: userRole
ID VARCHAR2(20) primary key -- 自动生成ID 如: 200610100840018387(唯一)
ROLEBH VARCHAR2(10) not null, -- 角色编号
USERBH VARCHAR2(20) not null, -- 用户编号
BZ VARCHAR2(40), -- 备注

SQL:

CREATE TABLE userRole
(
ID VARCHAR2(20) PRIMARY KEY,
ROLEBH VARCHAR2(10) not null,
USERBH VARCHAR2(20) not null,
BZ VARCHAR2(40)
)

[解决办法]
简单的权限可以使用字段来表明,比喻说status,等于0的时候可以修改,等于的时候可以删除,等等,复杂的权限系统建议使用acegi来实现了,他也是一个filter,不过实现起来比你自己写filter简单多了,而且功能也非常的好
[解决办法]
过滤他有哪些授权管理的功能点.再给别人授权.
[解决办法]
关于用户权限的,我用OPENLDAP实现,感觉不错
[解决办法]
用户信息表(userInf)
字段名称(中文)字段名称(英文)数据类型为空主键备注
用户编号userIdVarchar(17)
登陆姓名userNamevarchar(10)唯一索引
用户角色userRolechar(1)0:管理员;1:普通用户


角色信息表(roleInf)
字段名称(中文)字段名称(英文)数据类型为空主键备注
角色编号roleIdvarchar(17)
角色名称roleNamevarchar(30)不能重复


角色权限关系表(popedomInf)
字段名称(中文)字段名称(英文)数据类型为空主键备注
角色权限关系编号popedominfidvarchar(17)


角色编号roleidvarchar(17)外建:roleinf.roleid
功能代码functionidvarchar(17)见附表
权限编号poweridvarchar(17)见附表

权限信息表(powerInf)
字段名称(中文)字段名称(英文)数据类型为空主键备注
权限编号powerIdvarchar(17)
权限名称powerNamevarchar(30)不能重复

先建立角色,然后给相应角色建立权限,建用户的时候只要选想应的角色就行了
写一个通用页面,判断登录用户是否具有该页面的权限,每次只要在页面里面导入这个页面就行了




[解决办法]
自己实现比较麻烦,可以利用一个现成权限管理系统,比如acegi
你可以指明权限分类,以及哪些方法哪些地址是什么角色有权限
在页面中也提供tag,自动显示当前角色的用户能看到的界面

热点排行