TP5.0实现RBAC权限设计
导语:
在开发管理后台时,常常需要针对某类用户,赋予某种操作的权限,而RBAC模型通过构建“用户-角色-权限-资源”的授权模型,解决了给用户操作分配权限的问题。
RBAC模型
概述
- 基本模型RBAC0
- 角色分层模型RBAC1
- 角色限制模型RBAC2
- 统一模型RBAC3
表结构设计
- 用户表
CREATE TABLE user(
userid int(10) PRIMARY KEY,
username VARCHAR2(30),
gender NUMBER(1),
birthday DATE,
createtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
- 权限表
CREATE TABLE rule(
id int(10) PRIMARY KEY,
rule_name VARCHAR2(30),
createtime timestamp DEFAULT CURRENT_TIMESTAMP,
updatetime timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
);
- 角色表
CREATE TABLE role(
id int(10) PRIMARY KEY,
role_name VARCHAR2(30),
createtime timestamp DEFAULT CURRENT_TIMESTAMP,
updatetime timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
);
- 用户权限关系表
CREATE TABLE user_rule(
userid int(10) NOT NULL,
roleid int(10) NOT NULL ,
createtime timestamp DEFAULT CURRENT_TIMESTAMP,
updatetime timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
);
- 角色权限关系表
CREATE TABLE role_rule(
roleid int(10) NOT NULL,
ruleid int(10) NOT NULL ,
createtime timestamp DEFAULT CURRENT_TIMESTAMP,
updatetime timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
);
Thinkphp实现RBAC
未完待续。。。