时间:2021-07-01 10:21:17 帮助过:15人阅读
菜单2
菜单3
……
设计:
表: 主键,帐号,密码,权限
1 * * 1,2
2 * * 1,2,3
3 * * 2
4 * * 4
就是把有权限的放入【权限】字段
大家有什么好的方法
如:
菜单1
菜单2
菜单3
……
设计:
表: 主键,帐号,密码,权限
1 * * 1,2
2 * * 1,2,3
3 * * 2
4 * * 4
就是把有权限的放入【权限】字段
大家有什么好的方法
比较简单的 像 ACL(访问控制列表) 这种。一般都满足项目需要。
稍复杂一些的有 RBAC (基于较色的权限控制)。
php 里面有一个不错的RBAC实现phprbac
一般情况下 ACL 就已经够用了。
很高兴回答楼主的问题。
关于权限系统的设计,对于MIS系统来说,基本都是必备的。现在很多公司,都是有通用的权限系统的整套解决方案,而楼主提出的权限设计,是可行的,的确有很多的MIS是这么干的,没有问题。对了,还需要添加一张表,定义权限。
我以前做的系统是把权限放在一个单独的字段,用一个char来放的,每一位表示一个权限,然后写一个帮助类去设置和获取每个权限。
我的设计也是一个字段来判断权限,对这种设计的利弊没有多深的了解,谁有好的见解分享下
1.ACL
2.RBAC
有一点要说一句:使用RBAC时,大家喜欢建一张user和role的关联表,其实直接将role_id作为user的一个属性才是正道。
欢迎继续讨论。
role和node表是多对多关联的。角色A有1、2、3三个功能点,角色D有1、3、5三个功能点,现在多了一个新功能100,给角色A角色D都增加新功能100的权限。我所说的是user和role一对一关联,一个用户就一种角色。u1需要1、2、3、5、100这些功能,就建立一个角色E,角色E关联1、2、3、5、100这些功能点。u1的role属性设置为E。如果按照以往的方式,就是u1关联了角色A和角色D,查询出角色A和角色D的功能点,合并后就是u1拥有的权限。
就算权限系统向QQ那样复杂,每一级QQ等级都有不同的功能点,那就每一个等级是一个角色,每个QQ用户的等级是唯一的。那角色表最多就一百多个角色,而不是user关联一堆role。
还有一点,系统新功能添加的频繁程度和获取用户功能权限的频率肯定是不能比的。越简单往往意味着高性能和稳健。
一般很多都是用RBAC 就算不是也是这种类似的逻辑 可以做实时验证和登陆验证两种
跨部门任职的人,权限很麻烦
使用rbac就可以了啊