首页 > 其他分享 >权限控制(ACL、RBAC)

权限控制(ACL、RBAC)

时间:2023-09-12 17:11:07浏览次数:28  
标签:ACL 角色 访问控制 用户 auth django RBAC 权限

一、ACL 访问控制列表

1、ACL(访问控制列表)的权限控制:(针对互联网用户的产品)

    用户表
    id    name      password
    1     zhangsan   123
    
    权限表
    id   user_id    权限
    1     1         评论权限
    2     1          发抖音权限

    张三:[评论权限, 发抖音权限]

二、基于角色的访问控制

RBAC(Role-Based Access Control)基于角色的访问控制:(针对于公司内部项目)

权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。

1、django中的auth rbac应用

# django的auth其实就实现了基于角色的访问控制---> 通过表控制的
    -auth_user :用户表,存用户信息
    -auth_group:组,角色,存放角色信息
    -auth_permission:权限,存放权限信息
    # 分析:一个组(角色)中,有多个用户,一个用户,属于多种角色----> 多对多
    -auth_user_groups:用户和组的多对多中间表
    # 分析:一个组,可能有多个权限,一个权限,也可能属于多个组---> 多对多
    -auth_group_permissions:组和权限的多对多中间件
    # django,多了张表:auth_user_user_permissions
    # 分析:一个用户,可以有多个权限,一个权限,可以分配个多个用户---> 多对多
    -auth_user_user_permissions:用户和权限多对多中间表  

2、补充

ABAC 基于属性的访问控制(Attribute-Based Access Control)

 ABAC(Attribute-Based Access Control,基于属性的访问控制),又称为PBAC(Policy-Based Access Control,基于策略的访问控制),CBAC(Claims-Based Access Control,基于声明的访问控制)。

    传统的ACL、RBAC的架构是{subject,action,object},
    而ABAC的架构是{subject,action,object,contextual}且为他们添加了parameter(参数)。

    subject属性:比如用户的年龄、部门、角色、威望、积分等主题属性。

    action属性:比如查看、读取、编辑、删除等行为属性。

    object属性:比如银行账户、文章、评论等对象或资源属性。

    contextual属性:比如时段、IP位置、天气等环境属性

三、django中权限控制

1、simpleui

django admin管理界面的美化: simpleui

# 公司内部,做公司内的项目需要使用这套权限控制

# 方案一:使用django-admin写 # 有的公司,不怎么写前端,直接使用django的admin,快速写出一套具有权限管理的系统 # django admin的界面不好看:第三方美化--》simpleui ## 方案二:自己写,前端使用vue,后端使用django,做公司内部的项目 -第三方开源的权限控制 项目 -python界:django-vue-admin -java界:若依 -go界:gin-vue-admin

2、安装

pip3 install django-simpleui

INSTALLED_APPS = [
  'simpleui',  # 放到最上面
  ...
]

3、自定义菜单栏页面

 

 

 

  

 

2、

标签:ACL,角色,访问控制,用户,auth,django,RBAC,权限
From: https://www.cnblogs.com/dgp-zjz/p/17697191.html

相关文章

  • linux用户和用户组权限设置
    查看当前用户whoami #要查看当前登录用户的用户名whoami #表示打开当前伪终端的用户的用户名who命令其它常用参数:-a打印能打印的全部-d打印死掉的进程-m同ami,momlikes-q打印当前登录用户数及用户名-u打印当前登录用户登录信息-r打印运行等级创建新用户addusernewn......
  • 如何使用Oracle Enterprise Manager Database Express连接到PDB数据库
    1.问题重复弹出登录框,无法登陆关闭登录框,显示invalidcontainername2.解决方法参考链接为PDB启动EMExpress要为PDB启动EMExpress,请确保PDB以读/写模式打开,然后尝试本主题中描述的以下方法之一(按所示顺序):连接到包含PDB的CDB的CDB$ROOT容器,并发出以下SQL......
  • 通过 DBCA 创建 Oracle Database 21c 的进度停滞在 36%
    1.问题安装过程中一直卡在36%检查dbca日志文件位于H:\app\trmbh\cfgtoollogs\dbca\ORCL\trace.log_2023-09-12_12-04-20PM卡在executingdatapatch这一步上了2.解决方法感谢大佬!转载自:https://ahmedfattah.com/2021/10/30/oracle-database-21c-creation-via-dbca-han......
  • ORACLE Enterprise Manager Database Express(OEM-express)配置端口和启动方法
    1.问题之前一直进不去ORACLEEnterpriseManagerDatabaseExpress,显示的是localhost拒绝了访问,经过查阅知道是没有配置相应端口。2.解决方法转载自:https://blog.csdn.net/wshjx0001/article/details/1224660151.首先查看监听状态,如果监听没有启动需要先启动监听2.在SQLpl......
  • oracle安装成功后,更改字符集
    看了网上的文章,乱码有以下几种可能 1.操作系统的字符集 2.oracleserver的字符集 3.客户端的字符集 1.查看oracle的字符集   1.selectuserenv('language')fromdual2.在Ubuntu中.bashrc中加入下边的话:   exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK(改掉操作系......
  • Citrix DDC控制台管理员账号被删除,如何恢复权限
    1假设CitrixDDC控制台你以ctxadmin域账号安装的,那么ddc控制台默认管理员就是ctxadmin账户,也就是只有ctxadmin账户具备管理citrixDDC控制台权限,其他用户是无法打开ddc控制台并管理的。2当你不小心把ctxadmin删除后,无法还原或者找回,那么即便你新建一个同名的域账号例如ctxadmin,那......
  • Oracle over(partition by) 用法
    语法与说明selectAAA,序号函数over(partitionbyBBBgroupbyCCC)fromtable;select后面跟什么字段随便。序号函数有多种,类似row_number()等。partitionby后面跟的字段实际是分组字段,与groupby后面跟的字段类似。再之后的order字段,就是分组后排序。序号函数说明......
  • Oracle 查询当前用户下所有索引(Index)并拼接创建脚本
    原文地址:https://blog.csdn.net/zy_workjob/article/details/82011825 Oracle查询当前用户下所有索引(Index,PK)并拼接创建脚本【不包含FUNCTION-BASED基于函数的索引】SELECTT.TABLE_NAME,--表名T.INDEX_NAME,--索引名I.UNIQUENESS,--是否非空I.INDEX_......
  • 新人笔记-权限修饰符与导包
    packagecom_black.daobao.A1;publicclassTeacher{publicvoidteach(){System.out.println("goodstudy,daydayup");}}packagecom_black.daobao.A2;importcom_black.daobao.A1.Teacher;publicclassDemo{publicstati......
  • Docker容器报权限不足,如何配置权限?
    当Docker容器报告权限不足时,可能是由于容器内部的用户与主机操作系统的用户不匹配导致的。解决这个问题的一种常见方法是在容器内部设置适当的用户和权限。以下是几种配置容器权限的方法:在Dockerfile中配置用户和权限:你可以在Dockerfile中使用USER和RUN命令来配置容器内......