权限管理「建议收藏」

相关名词解释在说权限之前先来了解一下项目和应用之间的关系:在了解了项目和应用二者之间的关系之后我们再来看一下什么是权限管理:权限管理先来看一下官方解释:自己理解:RBAC权限模型功能权限

大家好,又见面了,我是你们的朋友全栈君。

相关名词解释

在说权限之前先来了解一下项目和应用之间的关系

一个项目可以有多个应用,一个应用同样可以服务多个项目;它们二者之间是多对多的关系(manytomany)

在了解了项目和应用二者之间的关系之后我们再来看一下什么是权限管理

权限管理

先来看一下官方解释:

权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。

自己理解:

说白了所谓的权限管理就是根据不同等级的用户对同一个资源进行不同程度的相关操作,等级越高所能进行的相关操作程度越深;我们也可以理解为一个权限就是一个URL

RBAC权限模型 

功能权限管理技术,一般就使用基于角色访问控制技术RBAC(Role Based Access Control)。该技术被广泛运用于各个系统,非常容易掌握。该技术模型如下图示:

RBAC权限模型
RBAC权限模型
RBAC模型尤其在企业管理系统的应用尤为突出

分析及数据相关

分析

首先要分析在RBAC模型中涉及到哪些内容(也就是所需要的表及表结构)

用户

用户:不论在做任何的操作的前提是必须要有相关的用户根据用户自己的状态(登陆/注册)进行下一步操作。可以说用户是基础,任何的操作都是建立在有用户的基础上的,没有用户什么都没法干

角色

实事上我们不会直接把权限赋予给用户,而是通过角色来赋予给用户,因为用户拥有某一种权限是因为用户扮演着某一种角色。
A 是 个经理,他管理着B公司,他拥有b,c,d的权限。实际是不是A有这个权限,而是因为Abo是经理。因为经理拥有b,c,d权限,所以很显然在权限划 分 上,我们会把权限赋予给某一个角色,而
不是赋予给个人。这样带来的好处是如果公司换了经理,那么只要再聘用一个人来做经理就可以了,而不会出现因为权 限在 个人手里导致权限被带走的情况

权限

权限是对资源的一种保护访问.用户要访问资源前提是用户必须有对资源的访问权限.

各表之间的关系

用户表 <—> 角色表 

一个用户可以扮演多个角色,同一个角色也可以属于多个用户(manytomany)

角色表 <—>权限表

同一个角色可以拥有不同的权限,同一级别的权限也可以属于多个角色(manytomany)

数据

创建表关系:

权限管理「建议收藏」
权限管理「建议收藏」

        class User(models.Model):
            name=models.CharField(max_length=32)
            pwd=models.CharField(max_length=32)
            roles=models.ManyToManyField(to="Role")

            def __str__(self): return self.name

        class Role(models.Model):
            title=models.CharField(max_length=32)
            permissions=models.ManyToManyField(to="Permission")

            def __str__(self): return self.title

        class Permission(models.Model):
            title=models.CharField(max_length=32)
            url=models.CharField(max_length=32)

            def __str__(self):return self.title

View Code

由于用户和角色之间及角色和权限之间是多对多的关系,故而又生成了俩张表:

用户——角色表

角色——权限表

正式开始

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/124461.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑客手册中文版_黑客大追踪PDF

    黑客手册中文版_黑客大追踪PDF非安全黑客手册0911PDF电子书目录:新闻时评2颠覆杀毒市场,360强势插入!策划7功夫熊猫Hacker系漫游记4赤龙记得当初阿宝接触网络时,总是喜欢聊天,电脑只要开着,总会发现右下角有一个小企鹅。不知道何时,这个企鹅出现的几率比以往少了很多,但偶尔还是会出来冒个泡。冒泡…

    2022年9月17日
    3
  • linux系统安装pycharm教程_如何在linux下运行程序

    linux系统安装pycharm教程_如何在linux下运行程序方法一:步骤:进入pycharm安装路径下的bin目录下,输入如下命令:./pycharm.sh方法二:设置桌面快捷方式:参考博客:http://blog.csdn.net/tmosk/article/details/72852330(ubuntu下pycharm快捷方式创建)…

    2022年8月28日
    3
  • CSS 下拉菜单_下拉菜单html

    CSS 下拉菜单_下拉菜单html使用CSS创建一个鼠标移动上去后显示下拉菜单的效果。

    2025年8月11日
    5
  • stata 求输出相关系数矩阵命令_一文读懂结果输出命令大全(上)

    stata 求输出相关系数矩阵命令_一文读懂结果输出命令大全(上)目录描述统计量helptabstat//Stata官方命令描述统计量组间均值差异检验helpttesthelpttable2helpestout相关分析命令helppwcorrhelppwcorr_a回归相关分析命令helpesttabhelpoutreg2helplogoutstata命令汇总helpsum2docx//输出基…

    2022年6月15日
    219
  • 汇编语言之Debug教程篇

    参考书籍《汇编语言》——王爽Debug的命令比较多,这里我介绍常用的命令,其余的等需要的时候再进行查询。命令用途Debug-R查看、改变CPU寄存器的内容Debug-D查看内存中的内容Debug-E改写内存中的内容Debug-U将内存中的机器指令翻译成汇编指令Debug-T执行一条机器指令…

    2022年4月16日
    46
  • goland 2022.01.13 激活码(注册激活)

    (goland 2022.01.13 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html40…

    2022年4月2日
    205

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号