RBAC权限模型
Role-Based Access Control,中文意思是:基于角色(Role)的访问控制。这是一种广泛应用于计算机系统和网络安全领域的访问控制模型。
简单来说,就是通过将权限分配给➡角色,再将角色分配给➡用户,来实现对系统资源的访问控制。一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系
具体概念可以查看RBAC——基于角色权限的模型
这里我只演示如何在Mybatis中实现RBAC权限模型的查询
现在有四张表
CREATE TABLE `user`
(
`username` varchar(50) NOT NULL,
`password` varchar(200) NOT NULL,
`name` varchar(50),
PRIMARY KEY (`username`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
-- 创建角色表
CREATE TABLE `role`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50),
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
-- 创建用户角色表
CREATE TABLE `user_role`
(
`username` varchar(50),
`role_id` int(11),
PRIMARY KEY (`username`, `role_id`),
FOREIGN KEY (`role_id`) REFERENCES `role` (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;
-- 创建菜单表
CREATE TABLE `menu`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50),
`parent_id` int(11),
PRIMARY KEY (`id`),
FOREIGN KEY (`parent_id`) REFERENCES `menu` (`id`)
) ENGINE = InnoDB
DEFAULT