前言
RBAC(Role-Based Access Control)
,基于角色的访问控制,现在主流的权限管理系统的权限设计都是 RBAC
模型,或者是 RBAC
模型的变形。
我们需要思考一个问题:为什么要做权限的管理?
我的理解是在每一个系统中,每个用户所拥有的权限是不一样的,例如一个数据表,管理员可以修改、增加、查看等操作,而普通用户只能查看。所以如何进行用户权限的设计,就是我们需要考虑的问题了。
RBAC
模型是什么
RBAC(Role-Based Access Control)
,基于角色的访问控制。通过用户关联角色,角色关联权限,来间接的为用户赋予权限。
有一个问题需要我们思考:为什么要增加角色这一层关系呢?我直接用户关联权限不就行了?
假如有一些用户具有相同的权限,增加时需要为这些用户增加相同的权限,修改时同样也要修改相应的权限。如果有了角色,我们就可以直接将这些用户与同一个角色相对应。增加时只需要为用户绑定角色就行,修改时只需要修改这一个角色就行。
其实我的理解,最重要的是和现实生活相对应。比如学校,每个人(用户)都有不同的身份(角色),并且都有不同的权限。就举个例子吧,比如说一个老师,他不仅仅是老师,还是副院长,所以我们可以为他关联老师、副院长这两个角色,但他不是副院长的时候,升到院长了,我们就可以把副院长这个角色给取消关联,把院长这个角色为他关联上。公司也是同理,这样操作是不是感觉非常的舒服(可以想象一下没有角色应该怎样实现,一对比就懂得 RBAC
模型的好处了)。