一、ACL权限设计
ACL权限设计,是在用户表里,直接给相应的用户添加对应的权限,那么就会出现一个现象,数据库里的重复性字段较多,且当用户较多,且权限较多时,会给数据库造成很大的压力。
二、RBAC权限设计
我的理解: RBAC虽然初次理解起来要比ACL复杂些,但是理解之后,就会发现相较于ACL的设计,要减少了代码的重复性,给数据库减缓了不少的压力,后期的判断逻辑也要简单一些。
ACL是直接让用户和权限进行关联。
而RBAC是建立了一张'角色表',把权限和角色进行了关联,再把用户和角色关联起来。这样角色固定了权限,而用户需要什么权限,只需要关联什么角色。
列:
优势
在RBAC中,用户不再直接与权限相连,而是通过“角色”这一属性来间接的被赋予权限,用户通过成为适当的角色来的到这些角色固有的权限,这样处理就解耦了用户与权限的关系。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。