RBAC权限控制 (Role Based Access Control)

发布时间 2023-12-06 10:17:33作者: 奥托

ACL和RBAC对比

之前的ACL权限控制是直接给用户分配权限的。

而RBAC是这样的:

RBAC是先分开角色,然后把角色分给指定的用户
通过在用户和权限之间多加一层“角色”来做权限管理

给角色分配权限,然后给用户分配角色
这样有什么好处呢?

 
 

比如说:
管理员有 a、b、c 3个权限,而张三李四王五都是管理员。
有一天想给管理员添加一个d权限
如果是ACL,则需要给张三、李四、王五分别分配这权限

而RBAC则只需要给张三、李四、王五分配管理员的角色,然后值更改管理员角色对应的权限就好了。

 
 
所以说,当用户很多的时候,给不同的用户分配不同的权限会很麻烦,这时候,使用RBAC来控制权限则更加方便。

 
 

nest.js实现RBAC权限控制

创建rbac_test的数据库:

CREATE DATABASE rbac_test DEFAULT CHARACTER SET utf8mb4;