参考http://www.cnblogs.com/liuqiqian/archive/2011/04/20/2021743.html
TP2.0版本就已经支持扩展RBAC权限管理,也有对应的demo,Rbac权限管理在Examples目录下面。
RBAC扩展库核心文件则可以在ThinkPHP/Lib/ORG/Util下面找到,查看源码则可以看到注释那里有创建数据库表的sql。共四个表。这里think_role_user,think_access,think_role,think_node当然根据自己的项目需要,表前缀可以修改。
那么下面就详细的来说说这四个表。
先看一小段文字“用户对应一个或者多个角色,而角色又对应分配了属于自己的节点访问权限。在登录的时候,用session记录用户ID,在认证时,会根据session中记录的用户ID去查询用户所属的角色,然后再判断是否拥有访问当前节点的权限。”看完这段文字,是否能感觉到了解了一些RBAC的原理呢?能否大致猜想到,这么一个原理所需要的数据库表?
来尝试结合数据库表一起理解吧。
think_role(这里是指用户的角色表,也可以理解为用户的管理组,比如超级管理员,普通管理员,这样理解比较通俗点)
think_role_user(这是用户跟角色之间的关系表,通俗点理解就是什么用户属于什么管理组。没错,表的关联)
think_node(这是节点表,可以理解为管理组操作的一些功能,例如增删改查)
think_access(最后一个就是角色对节点的权限分配表,也就是角色跟节点之间的关系表。通俗点理解就是什么管理组的,对什么节点有操作的权限,什么管理组则没有)
结合以上这么分析,对RBAC整个原理应该都能清晰的理解到了吧。
这里一定会有人问,好像没有看到用户表啊。对,TP没有提供这个表,是为了让大家自己去针对自己的项目写用户表。而不局限了用户名,密码,email,登录时间等等的字段。
你可以根据自己的项目需求去完善更详细的用户表。那么再回到上边的think_role_user去理解,大家一定想到了。没错了,把用户表的用户ID关联think_role的ID。
逻辑已经很清晰了,假设think_role有两个角色,一个是ID为1的超级管理员,一个则是ID为2的普通管理员。现在有一个think_user的用户表,表里有个ID为1的用户“admin”。
那么think_role_user里的关系则是,什么角色有什么用户。可以假设角色ID为1对应用户ID为1的用户,很好理解吧。
具体的字段解释那些,这里就不再赘述了。大家可以到官网下载完整版的包,里边有RBAC的案例,大家可以自己动手导入数据库研究研究。
关于RBAC数据库表的小解,就先写到这里,希望对大家有所帮助。哪里有写错的,还希望大家多多指出来,因为本身技术也很菜!
分享到:
相关推荐
本源码提供了一个基于Spring Boot 3.2的微服务RBAC权限管理系统设计。项目包含591个文件,其中包括363个Java源文件、71个JavaScript文件、42个XML文件、13个YAML文件、11个TTF字体文件、11个WOFF字体文件、10个CSS...
基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手 提供 lambda 、stream api 、webflux 的生产实践 ...
项目概述:本项目管理系统基于流行的Python Flask框架,实现了一套完整的RBAC(基于角色的访问控制)...简而言之,这是一个集成了多技术栈的Flask项目,专注于为用户提供一个功能全面、易于管理的RBAC权限管理系统。
这个名为"Go-基于GinCasbinAntDesignReact的RBAC权限管理脚手架"的项目,旨在为开发者提供一套完整的解决方案,以高效、安全地实现用户权限控制。 首先,我们来看看Gin框架。Gin是一个轻量级的Web框架,它基于...
【标题】基于vue-element-admin开发的CMS-RBAC权限管理系统后台前端源码 【解析】Vue-element-admin是一款基于Vue.js和Element-UI的后台管理界面模板,它为开发者提供了丰富的预设组件和功能,便于快速构建高效且易...
【权限管理】beego实现简单的rbac权限管理系统.zip 【权限管理】beego实现简单的rbac权限管理系统.zip 【权限管理】beego实现简单的rbac权限管理系统.zip 【权限管理】beego实现简单的rbac权限管理系统.zip
【资源说明】课程设计基于Vue3和Django实现的rbac权限管理系统python源码(含前端)+项目说明.zip在线预览[https://xadmin.dvcloud.xin/](https://xadmin.dvcloud.xin/)账号密码:admin/admin123生成数据表并迁移```...
基于SpringBoot+Vue 前后端分离的RBAC权限管理系统(源码+数据库) ## 项目介绍 **一个基于SpringBoot + Vue + Element UI 开发的权限管理系统** - 角色权限精确到菜单、接口访问 - 前后端通过jwt进行认证状态管理...
这是一个RBAC权限管理系统,即基于角色的用户权限控制,,使用springboot框架开发,UI使用的是layui。。 演示地址:http://116.196.66.248:8090/page/index 欢迎大家下载。。。。另外,建议使用IDEA导入项目。。
基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理是一种广泛采用的策略,它将权限与角色关联,而不是直接分配给单个用户。这种设计模式简化了权限管理,提高了系统的灵活性和可扩展性。下面...
项目概述:迷你RBAC权限管理服务器是基于Django 3.2.6与DRF 3.x构建的。该项目采用Python语言编写,包含49个文件,其中Python源文件占45个,另外还包括.gitignore、SQL脚本、Markdown文档及文本文件各一个。本项目名...
**RBAC权限管理系统详解** 在IT行业中,权限管理是系统安全的重要组成部分,尤其在企业级应用中更是不可或缺。本文将围绕“RBAC权限管理系统”展开,解析其核心概念、技术选型以及实现过程。 **RBAC(Role-Based ...
基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip 介绍 基于RBAC数据库模型下的权限管理系统 可实现用户、角色模块、角色、权限模块、权限的CRUD 实现登录的过滤和权限的拦截 使用技术 springboot、...
总结来说,"tp框架RBAC权限管理"是利用TP框架搭建的基于角色的访问控制系统,它使得权限分配更加有序,降低了系统的安全风险,并简化了权限管理的复杂性。通过深入理解和实践,我们可以有效地运用RBAC模型来提升应用...
【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip
总的来说,通过FastAPI和Vue3结合RBAC模型,我们可以实现一套完整的权限管理系统,既能保证后端接口的安全,又能灵活控制前端展示,确保不同角色的用户只能访问他们被授权的资源。这种方案在企业级应用中非常常见,...
基于SpringBoot+Vue 前后端分离的RBAC权限管理系统源码+数据库(高分完整项目代码)基于SpringBoot+Vue 前后端分离的RBAC权限管理系统源码+数据库(高分完整项目代码)基于SpringBoot+Vue 前后端分离的RBAC权限管理...
基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统...