RBAC权限管理设置-涉及到的几张表

RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的访问控制机制,用于管理系统中的用户权限。RBAC通过将用户分配给角色,并将权限授予角色,从而控制用户对资源的访问。

基于RBAC实现的权限管理通常需要涉及以下几张表:

  1. 用户表(user):记录系统中的所有用户,包括用户ID、用户名、密码等信息。

  2. 角色表(role):记录系统中的所有角色,包括角色ID、角色名等信息。

  3. 用户角色关联表(user_role):记录用户和角色之间的关联关系,包括用户ID、角色ID等信息

  4. 权限表(permission):记录系统中的所有权限,包括权限ID、权限名、权限类型等信息。

  5. 角色权限关联表(role_permission):记录角色和权限之间的关联关系,包括角色ID、权限ID等信息。

在这里插入图片描述

-- 创建角色表
CREATE TABLE roles (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  description VARCHAR(255),
  PRIMARY KEY (id)

);


-- 创建资源表
CREATE TABLE resources (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  description VARCHAR(255)
);

-- 创建用户表
CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL
);
-- 创建权限表
CREATE TABLE permissions (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  description VARCHAR(255),
  resource_id INT NOT NULL,
  FOREIGN KEY (resource_id) REFERENCES resources(id)
);

-- 创建角色-权限关联表
CREATE TABLE role_permissions (
  role_id INT,
  permission_id INT,
  FOREIGN KEY (role_id) REFERENCES roles(id),
  FOREIGN KEY (permission_id) REFERENCES permissions(id),
  PRIMARY KEY (role_id, permission_id)
);

-- 创建用户-角色关联表
CREATE TABLE user_roles (
  user_id INT,
  role_id INT,
  FOREIGN KEY (user_id) REFERENCES users(id),
  FOREIGN KEY (role_id) REFERENCES roles(id),
  PRIMARY KEY (user_id, role_id)
);

-- 插入角色数据
INSERT INTO roles (id, name, description) VALUES
(1, '管理员', '拥有系统管理的所有权限'),
(2, '编辑员', '拥有编辑内容的权限'),
(3, '访客', '只具备浏览内容的权限');

-- 插入资源数据
INSERT INTO resources (id, name, description) VALUES
(1, '文章', '存储网站的文章内容');

-- 插入权限数据
INSERT INTO permissions (id, name, description, resource_id) VALUES
(1, '创建文章', '允许创建新文章', 1),
(2, '编辑文章', '允许编辑已存在的文章', 1),
(3, '删除文章', '允许删除文章', 1);


-- 插入用户数据
INSERT INTO users (id, name) VALUES
(1, '张一'),
(2, '张二'),
(3, '张三');

-- 插入角色-权限关联数据
INSERT INTO role_permissions (role_id, permission_id) VALUES
(1, 1),
(1, 2),
(1, 3),
(2, 2),
(3, 1);

-- 插入用户-角色关联数据
INSERT INTO user_roles (user_id, role_id) VALUES
(1, 1),
(2, 2),
插入用户-角色关联数据
INSERT INTO user_roles (user_id, role_id) VALUES
(1, 1),
(2, 2),
(3, 3);

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RBAC(基于角色的访问控制)是一种常见的权限管理模型,在该模型中,权限被配给各个角色,而用户则被配给一个或多个角色。在实现RBAC权限管理时,后端数据库(如MySQL)通常使用多关联来处理各种实体之间的关系。 在MySQL中,我们可以使用多个示不同的实体,比如用户、角色和权限。用户用于存储用户信息,角色用于存储不同角色的名称和描述,权限用于存储各种权限的信息。 为了建立这些之间的关联,我们可以使用外键约束来指定之间的关系。例如,用户可以包含一个角色ID列,该列作为外键指向角色中的主键。这样,每个用户就可以被配给一个或多个角色。 另外,为了实现权限的细粒度管理,我们可能需要使用一个或多个关联示角色与权限之间的关系。例如,我们可以创建一个用户角色关联,该存储每个用户所拥有的角色。同样,我们可以创建一个角色权限关联,该存储每个角色所拥有的权限。 通过使用多关联,我们可以在后端数据库中实现RBAC权限管理。首先,我们可以通过查询用户和角色,确定特定用户的角色。然后,通过查询角色和权限,确定特定角色的权限。最后,我们可以根据用户所拥有的权限来限制其对特定资源的访问。 总之,通过在后端数据库中使用多关联,我们可以有效地实现RBAC权限管理。这种方法可以帮助我们灵活地控制用户的权限,保护敏感信息并确保系统的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值