建站常用的用户权限管理模型ACL和RBAC的区别

作者:admin 发布时间:2020-10-15 11:23:28 浏览:2474次
常用的权限管理模型ACL和RBAC的区别

常用的权限管理模型ACL和RBAC的区别

1.ACL

  ACL是最早也是最基本的一种访问控制机制,它的原理非常简单:每一项资源,都配有一个列表,这个列表记录的就是哪些用户可以对这项资源执行CRUD中的那些操作。当系统试图访问这项资源时,会首先检查这个列表中是否有关于当前用户的访问权限,从而确定当前用户可否执行相应的操作。总得来说,ACL是一种面向资源的访问控制模型,它的机制是围绕“资源”展开的。   The relative simplicity of ACLs means they do not need much underlying technological infrastructure to work.由于ACL的简单性,使得它几乎不需要任何基础设施就可以完成访问控制。但同时它的缺点也是很明显的,由于需要维护大量的访问权限列表,ACL在性能上有明显的缺陷。另外,对于拥有大量用户与众多资源的应用,管理访问控制列表本身就变成非常繁重的工作。

ACL总结

优势:简单 缺点:用户量大、控制功能多导致维护困难

2.基于角色的访问控制RBAC

  RBAC是把用户按角色进行归类,通过用户的角色来确定用户能否针对某项资源进行某项操作。RBAC相对于ACL最大的优势就是它简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来,而用户与权限变成了间接关联。RBAC模型使得访问控制,特别是对用户的授权管理变得非常简单和易于维护,因此有广泛的应用。但是它也有自身的缺点,那就是由于权限是以角色为载体分配的,如果某一角色下的个别用户需要进行特别的权限定制,如同加入一些其他角色的小部分权限或去除当前角色的一些权限时,RBAC就无能为力了,因为RBAC对权限的分配是角色为单位的。

RBAC总结

优势:利于维护 缺点:不能直接给某个用户赋予某个功能   除两上述两种主要的模型之外,还有包括:基于属性的访问控制ABAC和基于策略的访问控制PBAC等等,因为应用不是很广泛,就不做介绍了。

如需转载请保留本文出处: https://zhe94.com/820.html

上一篇:快速建站之前言:如何建立一个自己的网站
下一篇:最最最常用的Git命令,使用git管理项目必备技能
php中的两个冒号是什么意思?例如Request::header('token')

php中的两个冒号是什么意思?例如Request::header('token')

在PHP中,双冒号(::)被称为范围解析操作符(Scope Resolution Operator),也有时被称为静态调用运算符。它用于引用类中的静态属性、静态方法或常量。
php __construct是什么意思

php __construct是什么意思

在PHP中,__construct是一个魔术方法(Magic Method),用于类的构造函数。当使用new关键字实例化一个对象时,会自动调用该方法。
thinkphp6.*版本的无缝升级到thinkphp8.0版本实操方法

thinkphp6.*版本的无缝升级到thinkphp8.0版本实操方法

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP诞生十七年来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。
php出现SSL certificate problem: unable to get local issuer certificate的解决办法

php出现SSL certificate problem: unable to get local issuer certificate的解决办法

在PHP中使用cURL或其他网络操作时,可能会遇到一个常见的SSL证书问题,错误信息为“SSL certificate problem: unable to get local issuer certificate”。翻译过来的意思是:“SSL证书问题:无法获取本地颁发者证书”,这是因为PHP试图验证SSL证书,但是无法找到用来验证这些证书的CA(证书颁发机构)证书。
thinkphp8怎么引用大淘客的sdk接口

thinkphp8怎么引用大淘客的sdk接口

在ThinkPHP中引入大淘客的包可以通过Composer来完成。
PHP保留数组中指定的键名数据

PHP保留数组中指定的键名数据

在PHP中,如果您想要保留数组中指定的键名数据,可以采用以下方法