数据库表设计1:用户权限管理

article/2025/10/25 3:15:42

前言:权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同用户访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。

1、RBAC简介

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

对于通常的系统而言,存在多个用户具有相同的权限,在分配的时候,要为指定的用户分配相关的权限,修改的时候也要依次的对这几个用户的权限进行修改,有了角色这个权限,在修改权限的时候,只需要对角色进行修改,就可以实现相关的权限的修改。这样做增加了效率,减少了权限漏洞的发生。

2、什么是权限

权限是资源的集合,这里的资源指的是软件中的所有的内容,即,对页面的操作权限,对页面的访问权限,对数据的增删查改的权限。举个栗子。对于下图中的系统而言,

图片

拥有计划管理,客户管理,合同管理,出入库通知单管理,粮食安全追溯,粮食统计查询,设备管理这几个页面,对这几个页面的访问,以及是否能够访问到菜单,还有相关操作都属于权限。

3、用户组的使用

对于用户组来说,是把众多的用户划分为一组,进行批量授予角色,即,批量授予权限。举个栗子,对于部门来说,一个部门拥有一万多个员工,这些员工都拥有相同的角色,如果没有用户组,可能需要一个个的授予相关的角色,在拥有了用户组以后,只需要,把这些用户全部划分为一组,然后对该组设置授予角色,就等同于对这些用户授予角色。

优点:减少工作量,便于理解,增加多级管理等。

4、实体间的关系

现在有三个实体:用户、角色、权限,首先我们搞清楚他们之间的关系是什么

假设

用户有:张三、李四、王五

角色有:超管、普管、会员

权限有:删帖、看帖、

用户与角色多对多:张三可以既是超管又是普管;张三、李四都可以是普管;

角色与权限多对多:超管既可以删帖又可以看帖;超管、普管、会员都可以看帖。

需要维护的表

由上可知,为了维护这三个实体(用户、角色、权限),另外还要维护两个多对多的关系,我们便有了五张表:

用户表                      user_info

用户角色关系表        user_role_info

角色表                      role_info

角色权限关系表        role_permission_info

权限表                      permission_info

5、RBAC经典五张表

大致用到5张表:三张主表,两张从表

主表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)

从表:用户角色表(UserRole)、角色菜单表(RoleMenu)。

  各表的大体表结构如下:

  ①、用户表(UserInfo):Id、UserName、UserPwd

  ②、角色表(RoleInfo):Id、RoleName

  ③、权限表(PermissionInfo):Id、PermissionName

  ④、用户角色表(UserRole):Id、UserId、RoleId

  ⑤、角色权限表(RolePermission):Id、RoleId、PermissionId


http://chatgpt.dhexx.cn/article/sUL0Uq2y.shtml

相关文章

用户、角色、权限表的关系(mysql)

一,各个表格 1、用户表 CREATE TABLE t_user ( id varchar(40) NOT NULL, username varchar(20) NOT NULL, PRIMARY KEY (id) ) 2、角色表 CREATE TABLE t_role ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) NOT NULL, description varchar(255) DEFAUL…

MySQL 权限管理表设计

阅读目录 MySQL 权限管理表设计创建三张主表三张表添加数据创建两张关系表两张表添加数据关联查询1 查询刘德华的角色2 查询苹果游客这个角色对应的用户是谁?3 查询总管理员的权限有哪些?4 查询苹果浏览权限对应的角色有哪些?5 查询刘德华的权限有哪些?6 查询杨幂的权限有哪…

权限管理数据表设计

权限管理数据表的设计 需要五张表,分别为(此处以MySQL为例) 用户表 t_user 角色表t_role权限表t_permission用户角色表t_user_rolet角色权限表t_role_permission 用户拥有什么角色,这个角色拥有什么权限 用户表(t_u…

用户权限设置5张表

--权限表(资源和权限合并) CREATE TABLE sys_permission ( id number(20) PRIMARY KEY NOT NULL,-- COMMENT 主键, name varchar2(128) NOT NULL , --COMMENT 资源名称, type varchar2(32) NOT NULL, -- COMMENT 资源类型:men…

MySQL权限表

一、权限系统概述 安装MySQL时自动安装一个名为mysql的数据库。mysql数据库下面存储的都是权限表。 用户登录以后,MySQL数据库系统会根据这些权限表的内容为每个用户赋予相应的权限。这些权限表中最重要的是user表、db表和host表,除此之外,还…

权限管理用到的表

前言: 一个成熟的系统系统是离不开权限管理的,说权限管理就必须要说下权限管理经典的五张表了,无论是自定义的权限管理框架,还是流行的Shiro、SpringSecurity等权限管理框架都是离不开这五张表的,哪五张表呢&#xff0…

表设计之权限管理

分析 权限管理需要设计三张主表和两张关系表主表包括:用户表,角色表,权限表关系表:用户-角色关系表,角色权限关系表 建表准备数据 创建三张主表: 用户表, 角色表,权限表 create table user(id int primary key auto_increment, name varchar(20));create table role(id int p…

表设计----用户表,角色表,权限表

基于角色的访问控制:(java Web 编程口诀) 用户表角色表,用户角色中间表。 角色表权限表,角色权限中间表。 一个用户可有多个角色,一个角色又可有多个权限。这就是用户-角色-权限授权的模型。 为何不直接让…

用户·角色·权限·表

一.引言 因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。 权限系统一直以来是我们应用系统不可缺少的一个部分,若每个应用系统都重新对系统的权限进行设…

用户·角色·权限·表的设计

设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据&am…

MySQL - 权限表

目录 User表 1.范围列(或用户列) host : 表示连接类型 user : 表示用户名,同一用户通过不同方式链接的权限是不一样的。 password : 密码 2.权限列 Grant_priv Shutdown_priv Super_priv Execut…

基于matlab的自适应PSO优化算法仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解, 通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。…

标准PSO辨识NARMAX模型源码程序

% 用标准PSO辨识NARMAX模型 % y[-0.4 0.2 0.4 0.8 0.2 0.3]*... % [y0(k-1) y0(k-2)*y0(k-3) y0(k-4) u(k-1)^3 y0(k-2)^2 u(k-3)] % e(k) % function [iter,Xgbest,fgbest]sPso(err,var,Nc_max) clc,clear,format long %--------------------------------------------------…

粒子群算法PSO

文章目录 粒子群算法PSO1. 简介1.1 简介和背景 2. 算法2.1 参数介绍2.2 流程速度更新公式位置更新公式 2.3 应用 3. 代码3.1 matlab一维的二维的 3.2 python 粒子群算法PSO 1. 简介 1.1 简介和背景 起源:1995年,受到鸟群觅食行为的规律性启发&#xf…

运动控制器PSO位置同步输出(二):PSO模式详解

本节我们主要去讲解一下多种PSO模式原理和使用的讲解,用户可根据实际需求灵活选择触发模式。 一.硬件说明 硬件选型的首要要求是支持PSO功能,再分析PSO的应用场合和轴数等选择具体的型号。本例以ZMC460N双总线运动控制器为例展开介绍。 PSO功能用于控制…

进化算法之粒子群算法介绍附代码——PSO

粒子群算法PSO 背景介绍算法介绍鸟群觅食算法&鸟群重点 算法介绍简单概念大致流程核心流程 核心公式公式拆解 算法的伪代码PSO的应用场景 背景介绍 算法介绍 粒子群算法,英文全称为Partricle Swarm Optimization,所以简称为PSO算法,它是…

粒子群算法PSO求解最大值和最小值案例(超详细注释)

目录 前言 1.粒子群算法简介和难点理解 1.1概念理解 ①非劣解集和支配 ②个体极值和群体极值 ③个体适应度值和群体适应度值 1.2 算法流程和理解 1.3 速度和位置更新公式 1.4 rand、randn、rands、randi函数说明 2. 粒子群算法求解最大值问题 2.1 常数惯性权重因子求…

PSO简介

粒子群优化算法(Particle Swarm Optimization,PSO) PSO算法对每个粒子的要求 所有粒子都在一个D维空间中进行搜索所有粒子都由一个适应函数确定适应值以判断目前位置的好坏每个粒子都有记忆功能,可以记住寻找到的最佳位置每个粒子有一个速度和飞行方向 粒子群优化…

PSO优化问题

PSO import matplotlib.pyplot as plt import numpy as np import random as rd np.set_printoptions(precision3,suppressTrue)class PSO():"""用于求解最小值"""def __init__(self,pop_scale,dim,maxV,pop_bnd,maxiter):self.pop_scale pop_…

利用PSO求解TSP问题

简介 PSO(粒子群算法)是群智能算法的一种,其他的群智能算法还有蚁群算法,遗传算法等。其他的智能算法还有模拟退火。之前看过一段时间的PSO,商务智能课程最后的大作业便想用一下,刚好在github上看到有人用模拟退火解决TSP…