在权限控制方面,有些疑问,想和大家讨论一下,
在系统中个人认为,权限控制分3块,一是菜单权限,就是说哪个用户登陆系统后,能看到哪些菜单.二是页面权限,就是说用户登陆系统后,能进入哪些页面.三是数据权限,就是说用户登陆系统,能对哪个数据库表的哪些字段进行哪些操作.
我的疑问是,要实现这些权限管理,在设计表的时候,应该怎么设计.
我们以前的设计方法是rbac,用户表、角色表、功能表、用户角色表、角色功能表,这中设计方案只能实现控制用户对哪些菜单有权限,但不能控制对功能中的哪些页面有权限,比如说合同浏览功能中有六个页面,当前用户对哪些页面有权限,这个控制不了。更控制不了对页面中的哪些页面元素有权限。所以想知道朋友们都是怎么控制权限的。
本人在网上看到有人用,哪个对象对哪个资源是否有哪个操作的权限的模式设计了一个表,具体应该怎么描述,我说不清楚,但是这样设计,就要在以前的基础上加两三个表,不知道有没有,即合理又简单的设计方式。

解决方案 »

  1.   

    除了你那三个表,我还有个用户管理权限表。
    包括用户自身级别,可使用的资源级别,可跨几级向上访问用户信息及资源,还有一些修改其他用户或者删除用户的权限等等的列。
    原来我这四个表是一个表,后来分开了。实在太复杂了。虽然已经完成了,但是我想等我脑子再清醒一点的时候再仔细推敲一下。
    我觉得windows的用户管理这方面可以参考。我想学windows来者,没学好。
      

  2.   


     一般菜都是对应系统模块或栏目,设个“权限模块表” {模块ID,模块名称}
     用户表设个 “模块字段” 存模块ID数组,通过数组判断用户对各模块权限