文章目录
前言
RBAC(Role-Based Access Control,基于角色的访问控制)就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。
简单的权限:如下就是一个简单的权限设计模式,其中包含了用户表,角色表,权限表。
稍微复杂一点的权限,可能设计到用户表、权限表、角色表、用户组表、额外的权限表,在django中提供了这一些列的权限相关模型,关于权限设计中表的关联关系如下:
1. Django的权限项
Django用permission对象存储权限项,每个model默认都有三个permission,即add model, change model和delete model。例如,定义一个名为学生Student模型,当迁移表后,会在auth_permission中自动创建相应的三个permission:add_student, change_student和delete_student。