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

解决方案 »

  1.   

    用户表(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写进到用户权限表里去.
      

  2.   

    我现在做的系统权限才是超复杂,
    每个用户对每个系统模块,分别有查看,查询,新增,修改,删除5类权限,
    每个用户还限制访问地区,店铺,部门3个等级的权限.
    每个用户可以审批那些用户,审批还分为经理第一级,经理第二级,人事,最高审批4类.
    每个用户可以安排那些用户.
    除了页面级的权限控制,还要有JAAS的项目权限控制.
      

  3.   

    在用户登录的时候你把用户的所有权限的id放到一个list里边去,在页面上
    <%
       List list = session.get....();//得到权限listif(list.contains("a.jsp需要的权限对应权限的id"))
    %>
        <a href="a.jsp">a链接</a>
    <%
    if(list.contains("b.jsp需要的权限对应权限的id"))
    %>
        <a href="b.jsp">b链接</a>
      

  4.   

    每个用户还限制访问地区,店铺,部门3个等级的权限.这个应该是查询数据的时候,数据有些是不能看的.原理都差不多,不过   每个用户对每个系统模块,分别有查看,查询,新增,修改,删除5类权限,这个是最基本的,其他的一些在控制数据查询的时候就可以了啊.也就是写在sql语句里边
      

  5.   

    数据库的设计上面已经有人说了
    在程序里面控制可以采用屏蔽链接,虽然链接看不到了但是通过在浏览器地址栏输入url也是可以访问的,所以还需要用filter做一下控制,前提是你需要将各个模块所对应的url设计好
      

  6.   

    看一下jive了,用代理模式来做
      

  7.   

    简单的权限可以使用字段来表明,比喻说status,等于0的时候可以修改,等于的时候可以删除,等等,复杂的权限系统建议使用acegi来实现了,他也是一个filter,不过实现起来比你自己写filter简单多了,而且功能也非常的好
      

  8.   

    关于用户权限的,我用OPENLDAP实现,感觉不错
      

  9.   

    用户信息表(userInf)
    字段名称(中文) 字段名称(英文) 数据类型 为空 主键 备注
    用户编号 userId Varchar(17)
    登陆姓名 userName varchar(10) 唯一索引
    用户角色 userRole char(1) 0:管理员;1:普通用户
    角色信息表(roleInf)
    字段名称(中文) 字段名称(英文) 数据类型 为空 主键 备注
    角色编号 roleId varchar(17)
    角色名称 roleName varchar(30) 不能重复
    角色权限关系表(popedomInf)
    字段名称(中文) 字段名称(英文) 数据类型 为空 主键 备注
    角色权限关系编号 popedominfid varchar(17)
    角色编号 roleid varchar(17) 外建:roleinf.roleid
    功能代码 functionid varchar(17) 见附表
    权限编号 powerid varchar(17) 见附表权限信息表(powerInf)
    字段名称(中文) 字段名称(英文) 数据类型 为空 主键 备注
    权限编号 powerId varchar(17)
    权限名称 powerName varchar(30) 不能重复先建立角色,然后给相应角色建立权限,建用户的时候只要选想应的角色就行了
    写一个通用页面,判断登录用户是否具有该页面的权限,每次只要在页面里面导入这个页面就行了
      

  10.   

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