权限控制(acl,rbac)


一、权限控制(acl,rbac)

将来我们编写的项目主要分成两类:公司内部项目和互联网项目

  • 公司内部项目

使用RBAC-基于角色的访问控制

什么是RBAC?

RBAC  是基于角色的访问控制(Role-Based Access Control )在 RBAC  中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。

举例

比如在公司内部,根据部门划分权限
    -用户表:用户和角色多对多关系,
    -角色表
    	-一个角色可能有多个权限----》
        	-开发角色:拉取代码,上传代码
        	-财务角色:开工资,招人,开除人
            -......
    -权限表:角色和权限是多对多
    	-拉取代码
        -上传代码
        -部署项目
        -开工资
        -招人
        -开除人
        -......
    -通过5张表完成rbac控制:用户表,角色表,权限表, 用户角色中间表, 角色权限中间表
    -如果某个人,属于财务角色,又只是单独想要拉取代码权限,不要上传代码权限,这时候就需要另外一张表:用户和权限中间表
    -通过6张表:django的admin----》后台管理就是使用这套权限认证
    	用户表,
        角色表,
        权限表, 
        用户角色中间表, 
        角色权限中间表
        用户和权限中间表

django-admin就是一个典型的rbac权限管理,这里我们可以用django-admin来体验rbac的权限管理

# django -auth--6张表
    auth_user   用户表
    auth_group  角色表,组表
    auth_permission  权限表
    -----------
    auth_user_groups   用户和角色中间表
    auth_group_permissions  角色和权限中间表
    -------------
    auth_user_user_permissions  用户和权限中间表
    
    
目前流行的一些rbac
# java:若依
# go :gin-vue-admin
# python :django-vue-admin
  • 互联网项目

使用ACL 权限控制

什么是ACL 权限控制?

ACL(Access Control List)访问控制列表的简称,是一个规则列表,用于指定允许或拒绝哪些用户或系统访问特定对象或系统资源,访问控制列表也安装在路由器或交换机中,它们充当过滤器,管理哪些流量可以访问网络。

举例

我们在使用抖音的时候,就是用acl进行管理
    -权限:权限表----》 发视频,评论,开直播
    -用户表:用户和权限是一对多
    
    张三:[发视频,]
    李四:[发视频,评论,开直播]


posted @ 2023-05-11 17:09  致丶幻  阅读(84)  评论(0编辑  收藏  举报