rbac简介
来自百度百科:基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而 得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以 很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起 来以囊括更广泛的客观情况。
需求
权限管理系统中需要有这么几个角色:管理员、编辑、普通用户,并且管理员拥有所有权限,编辑拥有管理文章的权限,普通用户没有登录后台的权限
数据库设计
根据上面的需求,设计了以下数据库
说明:系统中有用户表(user)、角色表(role)、角色权限表(role_privilege)、权限表(privilege)、菜单表(menu_item) 每个用户对应一个角色,每个角色有多个权限,每个权限属于一个菜单项
初始化数据库
根据需求,整个rbac系统的后端分为以下几个模块:
-
用户管理:
用户查询
用户编辑
用户删除
用户添加
-
文章管理
文章查询
文章编辑
文章删除
文章添加
对于管理员用户:拥有用户管理和文章管理的权限
对于编辑用户:拥有文章管理的权限
对于普通用户:无进入后端管理的权限
根据以上需求,对数据库进行初始化
- 首先,插入菜单的数据库记录
- 插入权限数据库记录
- 插入角色记录
- 插入角色权限数据库记录
- 插入三条用户记录,分别是管理员、编辑和普通用户
数据库的设计到此为止,目前这个权限系统已经托管到了github上了,后续的程序实现思路会另外写一篇博文
github托管地址:rbac-codeigniter Demo地址:rbac demo(管理员帐号:admin,编辑:editor,普通用户:user,所有帐号的密码都是password)
本文出自 Charles的技术博客,转载时请注明出处及相应链接。
本文永久链接: http://www.oserror.com/database/96.html