`
zengfa
  • 浏览: 123043 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

RBAC权限管理

 
阅读更多

参考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权限管理系统设计源码

    本源码提供了一个基于Spring Boot 3.2的微服务RBAC权限管理系统设计。项目包含591个文件,其中包括363个Java源文件、71个JavaScript文件、42个XML文件、13个YAML文件、11个TTF字体文件、11个WOFF字体文件、10个CSS...

    基于Spring Boot+Spring Cloud+OAuth2的RBAC权限管理系统.zip

    基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手 提供 lambda 、stream api 、webflux 的生产实践 ...

    Flask框架实现的RBAC权限管理系统源码

    项目概述:本项目管理系统基于流行的Python Flask框架,实现了一套完整的RBAC(基于角色的访问控制)...简而言之,这是一个集成了多技术栈的Flask项目,专注于为用户提供一个功能全面、易于管理的RBAC权限管理系统。

    Go-基于GinCasbinAntDesignReact的RBAC权限管理脚手架

    这个名为"Go-基于GinCasbinAntDesignReact的RBAC权限管理脚手架"的项目,旨在为开发者提供一套完整的解决方案,以高效、安全地实现用户权限控制。 首先,我们来看看Gin框架。Gin是一个轻量级的Web框架,它基于...

    基于vue-element-admin开发的cms-rbac权限管理系统后台前端源码

    【标题】基于vue-element-admin开发的CMS-RBAC权限管理系统后台前端源码 【解析】Vue-element-admin是一款基于Vue.js和Element-UI的后台管理界面模板,它为开发者提供了丰富的预设组件和功能,便于快速构建高效且易...

    基于springboot的RBAC权限管理演示系统

    这是一个RBAC权限管理系统,即基于角色的用户权限控制,,使用springboot框架开发,UI使用的是layui。。 演示地址:http://116.196.66.248:8090/page/index 欢迎大家下载。。。。另外,建议使用IDEA导入项目。。

    基于SpringBoot+Vue 前后端分离的RBAC权限管理系统(源码+数据库)

    基于SpringBoot+Vue 前后端分离的RBAC权限管理系统(源码+数据库) ## 项目介绍 **一个基于SpringBoot + Vue + Element UI 开发的权限管理系统** - 角色权限精确到菜单、接口访问 - 前后端通过jwt进行认证状态管理...

    基于RBAC权限管理数据库表设计

    基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理是一种广泛采用的策略,它将权限与角色关联,而不是直接分配给单个用户。这种设计模式简化了权限管理,提高了系统的灵活性和可扩展性。下面...

    基于Django3.2.6与DRF3.x的迷你RBAC权限管理服务器源码

    项目概述:迷你RBAC权限管理服务器是基于Django 3.2.6与DRF 3.x构建的。该项目采用Python语言编写,包含49个文件,其中Python源文件占45个,另外还包括.gitignore、SQL脚本、Markdown文档及文本文件各一个。本项目名...

    RBAC权限管理系统

    **RBAC权限管理系统详解** 在IT行业中,权限管理是系统安全的重要组成部分,尤其在企业级应用中更是不可或缺。本文将围绕“RBAC权限管理系统”展开,解析其核心概念、技术选型以及实现过程。 **RBAC(Role-Based ...

    【RBAC权限管理】基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip

    基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip 介绍 基于RBAC数据库模型下的权限管理系统 可实现用户、角色模块、角色、权限模块、权限的CRUD 实现登录的过滤和权限的拦截 使用技术 springboot、...

    tp框架RBAC权限管理

    总结来说,"tp框架RBAC权限管理"是利用TP框架搭建的基于角色的访问控制系统,它使得权限分配更加有序,降低了系统的安全风险,并简化了权限管理的复杂性。通过深入理解和实践,我们可以有效地运用RBAC模型来提升应用...

    FastAPI+Vue3,RBAC权限管理,实现 菜单、路由、按钮、接口 权限控制;笔记ht-mini-rbac.zip

    总的来说,通过FastAPI和Vue3结合RBAC模型,我们可以实现一套完整的权限管理系统,既能保证后端接口的安全,又能灵活控制前端展示,确保不同角色的用户只能访问他们被授权的资源。这种方案在企业级应用中非常常见,...

    基于Django+Vue3的rbac权限管理系统源码.zip

    基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统源码.zip基于Django+Vue3的rbac权限管理系统...

    基于RBAC权限管理模型的实现

    在IT行业中,权限管理是系统安全的关键组成部分,而基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理模型是一种广泛应用的解决方案。RBAC模型通过将用户权限与角色关联,使得权限分配更加灵活...

    RBAC权限管理模型

    RBAC权限管理模型,全称为Role-Based Access Control,是一种广泛应用于现代企业级系统中的权限管理策略。该模型的核心思想是将权限与角色关联,而非直接赋予用户,通过用户的角色分配来间接控制用户对系统资源的...

    【权限管理】基于Django的rbac权限管理系统源码.zip

    【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip

    J2EE-RBAC权限管理

    ### J2EE-RBAC权限管理深度解析 #### 引言 J2EE(Java 2 Platform, Enterprise Edition)作为企业级应用开发的基石,其安全性尤为重要。在J2EE框架下,RBAC(Role-Based Access Control)权限管理模型成为控制用户...

Global site tag (gtag.js) - Google Analytics