Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95604
  • 博文数量: 109
  • 博客积分: 3411
  • 博客等级: 中校
  • 技术积分: 1155
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 09:04
文章分类

全部博文(109)

文章存档

2011年(109)

分类: 系统运维

2011-05-18 15:36:31

     RBAC对于ThinkPHP初学者来说总感觉太复杂,但是权限认证与管理是非常重要且常用的功能,所以我这里算是以学习笔记的形式与大家共同学习。

如题所示,这个帖子主要分为三个部分:分析、应用、优化。分析部分主要了解下RBAC到底是什么,并分析数据库结构,做好应用准备;应用部分以示例项目来看RBAC是如何工作的,对RBAC有个全面的了解;优化部分主要是讲在我们的项目部署时怎么简化RBAC用于实际建站。分析与应用部分我们均以传统方式来部署,优化部分大家可以提出自己的优化方法。

一、分析
RBAC
:基于角色的访问控制(Role-Based Access Control),参见百度百科。
用户,角色,节点:用户本身并没有权限,角色才具有控制节点的权限,所以另外还需要有用户与角色的关系、角色与节点的关系,即用户属于什么角色、角色具有 哪些节点的控制权。角色(role)
虽然不等同于用户组(group),但是这里把角色看成是用户组可能更好理解这种关系吧。
为了使这种结构更明晰,我们先看一下数据库的数据表。
RBAC.gif
从上图可以看出RBAC的执行流程:(首先判断是用户是否登录,没有登录的话会跳转到入口页)有了目前登录的用户,根据用户-角色关系表判断用户属于哪个角色,根据角色-节点关系表判断角色具有哪些节点的权限。
再看看这几个表:用户、角色、节点都有idname,这非常好理解吧。节点表还有pid(父级id)和level(节点对应的级别)。也就是说节点表里面不同节点可以继承,另外级别分为1,2,3分别对应项目、模块、操作。关系表建立起关系,把不同表的id
对应起来。

怎么样,是不是对数据库的结构比较清晰了呢?可以开始建立好这样的表,准备建立应用哦。
ThinkPHP的示例中有建好的对应的几个表,差不多,只是多一些字段)

 

阅读(408) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~