首页 > 其他分享 >权限控制(acl,rbac)

权限控制(acl,rbac)

时间:2023-05-11 17:24:59浏览次数:23  
标签:角色 admin 用户 auth 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进行管理
    -权限:权限表----》 发视频,评论,开直播
    -用户表:用户和权限是一对多
    
    张三:[发视频,]
    李四:[发视频,评论,开直播]


标签:角色,admin,用户,auth,acl,rbac,权限
From: https://www.cnblogs.com/zhihuanzzh/p/17391666.html

相关文章

  • oracle 禁用和强制直接路径读
    HowToForceDirectPathReadforSQLStatements(DocID2426051.1)TherearewaystodisabledirectpathreadforSQLstatementsasfollows:1.event10949level12._serial_direct_read=NEVERHowever,therearenodirectmethodstoforcethedirec......
  • 认证、权限、频率、过滤、排序、分页
    目录一、认证组件1.1登录接口1.2认证组件使用步骤1.3整体代码1.4认证时cookie的获取方式二、权限组件2.1需求分析:2.2权限的使用2.3代码三、频率组件3.1使用步骤3.2代码四、过滤排序4.0继承APIView自己写(伪代码,自己补齐)4.1内置过滤类的使用【使用前提是继承GenericAPIView......
  • Oracle 对象批量进行授权
    环境:oracle给用户多表只读权限select'grantselecton'||owner||'.'||object_name||''to用户名;'fromdba_objectswhereownerin(‘owner’)andobject_type='TABLE';批量创建多个同义词SELECT'createorreplaceSYNONYM用户......
  • oracle 开启tnsping trace、sqlnet trace 、event10257
    在sqlnet.ora文件中加入以下参数:TNSPING.TRACE_LEVEL=SUPPORTTNSPING.TRACE_DIRECTORY=d:\oracle\trace“tnsping”工具的预期用途仅仅是测试OracleNet别名中指定的数据库侦听器是up还是down。“tnsping”工具不打算用作OracleNet性能测量工具B.Sql*nettraceSE......
  • Oracle 定时任务job实际应用
    目录一、Oracle定时任务简介二、dbms_job涉及到的知识点三、初始化相关参数job_queue_processes四、实际创建一个定时任务(一分钟执行一次),实现定时一分钟往表中插入数据4.1创建需要定时插入数据的目标表4.2创建定时执行的存储过程4.3创建定时一分钟定时任务job4.5可以根据以下......
  • python 学习-打开潘多拉的魔盒-元类(metaclass)学习
    前言在Python里面大家都比较熟悉了,通过class关键字创建一个类,这是通过硬编码来实现的。那么如何动态创建一个类呢,如果给一批数据,让它动态生成一个类?学习警告:不要轻易打开潘多拉的魔盒,潘多拉出于好奇打开一个魔盒,释放出人世间的所有邪恶:贪婪、虚无、诽谤、嫉妒、痛苦等等......
  • Oracle之table()函数的使用,提高查询效率
    目录一、序言二、table()函数使用步骤三、table()具体使用实例3.1table()结合数组使用3.2table()结合PIPELINED函数(这次报表使用的方式)3.3table()结合系统包使用一、序言前段时间一直在弄报表,快被这些报表整吐了,然后接触到了Oracle的table()函数。所以今天把table()函数的......
  • Oracle行级触发器的使用
    Oracle行级触发器的使用1、创建触发器并使用dblink在插入时进行数据同步异库异表同步createorreplacetriggertriggerName--触发器名称afterinsertontableName--操作的表foreachrow——行级触发器declare--这里是关键的地方,在变量申明的地方,指定自定义事务处......
  • 开发手记-小程序请求被Spring Security权限认证拦截
    场景描述这是一个微信小程序向后端发送的请求,并且请求路径被后端SpringSecurity权限认证监控这里SpringSecurity只负责权限不负责登录认证问题因为微信小程序本身不支持cookie机制,但是即使手动为请求带上了登录凭证字段ticket,请求依旧返回'用户未登录',接口功能不能调用排......
  • Oracle误删除数据的恢复方法 分为两种方法:SCN和时间戳两种方法恢复。获得当前数据库的
    Oracle误删除数据的恢复方法分为两种方法:SCN和时间戳两种方法恢复。原文链接:http://www.taodudu.cc/news/show-202061.html Oracle误删数据的恢复,分为两种方法:SCN和时间戳两种方法恢复。一、通过SCN恢复删除且已提交的数据 1、获得当前数据库的SCN号selectcurrent_scn......