当前位置: 首页 > news >正文

网站管理文档怎么写晚上睡不着看点害羞的东西app

网站管理文档怎么写,晚上睡不着看点害羞的东西app,ppt模版模板免费网站,php python WordPress大家好,我是jstart千语。今天给大家介绍一下鉴权模型RBAC,传统的鉴权模式就是基于用户和权限之间的多对多关系。而RBAC就更加的精准,更好管理。 RBAC介绍 RBAC(Role-Based Access Control)是一种通过角色(…

        大家好,我是jstart千语。今天给大家介绍一下鉴权模型RBAC,传统的鉴权模式就是基于用户和权限之间的多对多关系。而RBAC就更加的精准,更好管理。

RBAC介绍

RBAC(Role-Based Access Control)是一种通过角色(Role)关联用户(User)和权限(Permission)的访问控制模型,核心思想是:用户→角色→权限

  • 用户(User):系统的实际使用者,拥有唯一标识。
  • 角色(Role):一组权限的集合,代表用户在系统中的职责(如管理员、普通用户)。
  • 权限(Permission):对系统资源的操作许可(如 “用户查看”、“订单删除”)。
  • 关联关系
    • 用户与角色:多对多(一个用户可拥有多个角色,一个角色可分配给多个用户)。
    • 角色与权限:多对多(一个角色可包含多个权限,一个权限可被多个角色拥有)。

优点:

  • 简化权限管理:通过角色统一管理权限,避免直接对用户逐个授权。
  • 灵活性:新增角色或修改角色权限时,无需逐个调整用户,只需关联角色即可。
  • 职责分离:符合现实中组织架构的职责划分(如财务角色、研发角色)。



库表设计

表名作用核心字段(主键、外键、索引)
sys_user用户表id(主键,自增)、username(唯一)、passwordemail
sys_role角色表id(主键,自增)、role_name(唯一,如 ROLE_ADMIN)、description
sys_permission权限表id(主键,自增)、permission_code(唯一,如 user:view)、permission_nametype(菜单 / 操作权限)
sys_user_role用户角色关联表user_id(外键,关联 sys_user.id)、role_id(外键,关联 sys_role.id)
sys_role_permission角色权限关联表role_id(外键,关联 sys_role.id)、permission_id(外键,关联 sys_permission.id)

 DDL 语句(MySQL 示例)

-- 创建用户表
CREATE TABLE sys_user (id BIGINT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名',password VARCHAR(100) NOT NULL COMMENT '密码(加密后)',email VARCHAR(100) COMMENT '邮箱',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT '用户表';-- 创建角色表
CREATE TABLE sys_role (id BIGINT AUTO_INCREMENT PRIMARY KEY,role_name VARCHAR(50) UNIQUE NOT NULL COMMENT '角色标识(如ROLE_ADMIN)',description VARCHAR(200) COMMENT '角色描述',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT '角色表';-- 创建权限表(包含菜单和操作权限)
CREATE TABLE sys_permission (id BIGINT AUTO_INCREMENT PRIMARY KEY,permission_code VARCHAR(100) UNIQUE NOT NULL COMMENT '权限标识(如user:view、order:delete)',permission_name VARCHAR(50) NOT NULL COMMENT '权限名称',type TINYINT NOT NULL DEFAULT 0 COMMENT '类型:0=菜单权限,1=操作权限',create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT '权限表';-- 创建用户角色关联表
CREATE TABLE sys_user_role (user_id BIGINT NOT NULL COMMENT '用户ID',role_id BIGINT NOT NULL COMMENT '角色ID',PRIMARY KEY (user_id, role_id),FOREIGN KEY (user_id) REFERENCES sys_user(id) ON DELETE CASCADE,FOREIGN KEY (role_id) REFERENCES sys_role(id) ON DELETE CASCADE
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT '用户角色关联表';-- 创建角色权限关联表
CREATE TABLE sys_role_permission (role_id BIGINT NOT NULL COMMENT '角色ID',permission_id BIGINT NOT NULL COMMENT '权限ID',PRIMARY KEY (role_id, permission_id),FOREIGN KEY (role_id) REFERENCES sys_role(id) ON DELETE CASCADE,FOREIGN KEY (permission_id) REFERENCES sys_permission(id) ON DELETE CASCADE
) ENGINE=InnoDB CHARSET=utf8mb4 COMMENT '角色权限关联表';



扩展

RBAC - 1

RBAC - 1 在基本 RBAC 模型的基础上引入了角色层次结构的概念。即一个角色可以继承另一个角色的权限,形成类似于树状或有向无环图(DAG)的结构。例如,“高级管理员” 角色可能继承 “普通管理员” 角色的所有权限,并且还拥有额外的权限。这种层次结构使得权限管理更加灵活和高效,能够更好地反映现实组织中的职责和权力关系。


优势

  • 当一个新角色需要继承已有角色的大部分权限时,只需将其置于角色层次结构中合适的位置,而无需重新分配所有权限。
  • 角色层次结构可以确保权限的分配遵循一定的规则和逻辑,减少了权限分配的混乱和错误。
  • 能够准确地反映组织中不同职位之间的上下级关系和权限继承关系。


RBAC - 2(约束型 RBAC)

RBAC - 2 在基本 RBAC 模型基础上,添加了各种约束条件,以增强系统的安全性和合规性。这些约束可以限制用户、角色和权限之间的关系,防止不合理的权限分配和使用。

常见约束类型:

  • 互斥角色约束:某些角色不能同时被一个用户拥有。例如,在财务系统中,“审计员” 和 “财务管理员” 角色是互斥的,因为一个人不能同时既负责审计又负责财务管理,以防止利益冲突和欺诈行为。
  • 基数约束:对用户可拥有的角色数量、角色可分配的用户数量或权限可分配的角色数量进行限制。例如,规定每个项目只能有一个 “项目经理” 角色。
  • 先决条件约束:一个角色必须在用户拥有另一个角色之后才能被分配。比如,用户必须先拥有 “普通员工” 角色,才能被分配 “部门主管” 角色。

 优势

  • 增强安全性:约束条件可以有效防止用户滥用权限,减少内部人员违规操作的风险。
  • 满足合规要求:许多行业有严格的法规和合规要求,RBAC - 2 的约束机制有助于系统满足这些要求,如金融行业的监管要求。
  • 提高系统可靠性:通过约束条件,可以避免不合理的权限分配导致的系统故障和数据不一致问题。

http://www.dtcms.com/a/519450.html

相关文章:

  • uni-app 广告弹窗最佳实践:不扰民、可控制频次、含完整源码
  • 使用eNSP模拟器搭建网络拓扑结构(笔记2):从 0 到 1 掌握华为网络仿真
  • UniApp 多页面编译优化:编译时间从10分钟到1分钟
  • C++变量与函数命名规范技术指南 (基于华为编码规范与现代C++最佳实践)
  • ELK1——elasticsearch
  • 【图像卷积基础】卷积过程卷积实现通道扩充与压缩池化Pooling原理和可视化
  • 杭州公司网站设计外贸手工做兼职的网站
  • 深入浅出Langchain4j——构建Java大语言模型应用的新范式
  • Babylon.js学习之路《添加自定义摇杆控制相机》
  • 【JAVA 进阶】SpringBoot集成Sa-Token权限校验框架深度解析
  • 【CMakeLists.txt】Qt6 依赖配置详解
  • 用js做网站登录网页成品
  • 数据库安全网关:从“看得见访问”到“控得住风险”的关键一层
  • 对泊松过程的理解
  • 【数论】质数筛(埃氏筛、欧拉筛)
  • 扩展名网站兰州做网站一咨询兰州做网站公司
  • 华为OD-Java面经-21届考研
  • Excel拆分和合并优化版本
  • 智能网联汽车:当汽车遇上“智慧网络”
  • 常规点光源在工业视觉检测上的应用
  • C++新特性——正则表达式
  • 基于卷积神经网络的汽车类型识别系统,resnet50,vgg16,resnet34【pytorch框架,python代码】
  • 设计 企业网站电脑系统网站建设
  • 做网站业务的怎么找资源网站推广名片
  • FPGA强化- HDMI显示器驱动设计与验证
  • 【PPT-ungroup PPT解组合,python无水印】
  • Java 17 环境下 EasyPoi 反射访问异常分析与解决方案(ExcelImportUtil.importExcelMore)
  • SpringBoot+alibaba的easyexcel实现前端使用excel表格批量插入
  • 重大更新,LVGL有UI编辑器用了
  • 多场景 VR 教学编辑器:重构教学流程的场景化实践