RBAC(Role-Based Access Control )基于角色的访问控制(TP3.23)

本文介绍了在ThinkPHP3.23框架下实现RBAC(基于角色的访问控制)的详细步骤,包括数据表设计、权限管理实现、获取角色与权限、展示权限菜单等关键部分。通过角色与权限的关联,构建“用户-角色-权限”模型,简化权限分配和管理。
摘要由CSDN通过智能技术生成

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般都是多对多的关系。

理论上的知识就不啰嗦了,本文章将要记录我在实现RBAC权限分配的主要思路和代码,注意,代码是使用thinkPHP3.23 框架编写!

数据表设计

在进行RBAC权限功能实现时,需要创建 3 个数据表,分别是管理员表、角色表、权限表。

管理员表(admin)结构如下:

CREATE TABLE `admin` (
`id`  int(10) NOT NULL AUTO_INCREMENT ,
`user`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`password`  char(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`roleid`  int(10) NOT NULL COMMENT '所属角色' ,
PRIMARY KEY (`id`)
)
;

角色表结构如下:

CREATE TABLE `role` (
`id`  int(10) NOT NULL AUTO_INCREMENT ,
`rolename`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`priid`  int(10) NOT NULL COMMENT '对应权限的id' ,
PRIMARY KEY (`id`)
)
;

最后一个,权限表如下:

CREATE TABLE `privilege` (`id`  int(10) NOT NULL AUTO_INCREMENT ,
`priname`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值