8、权限模型RABC建表SQL

oracle用户管理 第二章 Oracle用户管理   【目标】 1. 掌握用户的创建、删除、修改 2. 掌握基本的权限管理 3. 了解数据字典及基本操作   【内容】 一、       用户的创建、删除、修改 u 创建用户 语法:createuser 用户名 identified by 密码; 注:在oracle中创建用户只能由管理员或者具有管理员的权限的用户创建。 案例:新建用户abc 阅读详情

8、权限模型RABC建表SQL

1、用户表

用户、角色、权限、菜单、用户角色、角色权限、角色菜单

create table user
(
    id                   bigint auto_increment comment 'id'
        primary key,
    birthday             date                                  null comment '生日',
    gender               varchar(1)                            null comment '性别',
    username             varchar(32)                           not null comment '用户名',
    password             varchar(256)                          not null comment '密码',
    remark               varchar(32)                           null comment '描述',
    mobile               varchar(11)                           null,
    name                 varchar(32)                           null comment '姓名',
    is_insurer           varchar(1)                            null comment '是否保司:1-是,0-否',
    identity_type        bigint                                null,
    identity             varchar(25)                           null,
    state                varchar(1)  default '1'               null comment '状态',
    operator             varchar(50) default ''                not null comment '操作人',
    is_delete            varchar(1)  default '0'               not null comment '逻辑删除',
    create_time          datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time          datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    manufacturer_id      bigint                                not null comment '组织id',
    data_isolation       tinyint(2)  default 0                 null comment '是否数据隔离',
    distribute_clue      tinyint(2)  default 0                 null comment '是否分配线索',
    constraint user_username
        unique (username)
)
    comment '用户表';

create index idx_name
    on user (name)
    comment '姓名';

2、角色表

create table role
(
    id           bigint auto_increment comment 'id'
        primary key,
    name         varchar(32)                           null comment '名称',
    keyword      varchar(64)                           null comment '关键字',
    description  varchar(128)                          null comment '描述',
    service_code varchar(32)                           not null comment '服务码',
    state        varchar(1)  default '1'               null comment '状态',
    operator     varchar(50) default ''                not null comment '操作人',
    is_delete    varchar(1)  default '0'               not null comment '逻辑删除',
    create_time  datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time  datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '角色表';

3、权限表

create table permission
(
    id          bigint auto_increment comment 'id'
        primary key,
    name        varchar(32)                           null comment '名称',
    keyword     varchar(64)                           null comment '关键字',
    description varchar(128)                          null comment '描述',
    state       varchar(1)  default '1'               null comment '状态',
    operator    varchar(50) default ''                not null comment '操作人',
    is_delete   varchar(1)  default '0'               not null comment '逻辑删除',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '权限表';

4、菜单表

create table menu
(
    id             bigint auto_increment comment 'id'
        primary key,
    name           varchar(128)                          null comment '名称',
    name_code      varchar(128)                          null comment '名称码',
    path           varchar(128)                          null comment '路径',
    priority       int                                   null comment '优先级',
    icon           varchar(64)                           null comment '按钮:add-添加,delete-删除,edit-编辑,query-查询',
    description    varchar(128)                          null comment '描述',
    parent_menu_id bigint                                null comment '父级id',
    level          int                                   null comment '等级',
    state          varchar(1)  default '1'               null comment '状态',
    operator       varchar(50) default ''                not null comment '操作人',
    is_delete      varchar(1)  default '0'               not null comment '逻辑删除',
    create_time    datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time    datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '菜单表';

5、用户角色表

create table user_role
(
    user_id     bigint                                not null comment '用户id',
    role_id     bigint                                not null comment '角色id',
    operator    varchar(50) default ''                not null comment '操作人',
    is_delete   varchar(1)  default '0'               not null comment '逻辑删除',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    primary key (user_id, role_id)
)
    comment '用户角色表';

6、角色权限表

create table role_permission
(
    role_id       bigint                                not null comment '角色id',
    permission_id bigint                                not null comment '权限id',
    operator      varchar(50) default ''                not null comment '操作人',
    is_delete     varchar(1)  default '0'               not null comment '逻辑删除',
    create_time   datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time   datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    primary key (role_id, permission_id)
)
    comment '角色权限表';

7、角色菜单表

create table role_menu
(
    role_id     bigint                                not null comment '角色id',
    menu_id     bigint                                not null comment '菜单id',
    operator    varchar(50) default ''                not null comment '操作人',
    is_delete   varchar(1)  default '0'               not null comment '逻辑删除',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    primary key (role_id, menu_id)
)
    comment '角色菜单表';

8、扩展表

8.1、地区表

create table area
(
    id         bigint auto_increment comment '城市id'
        primary key,
    name       varchar(100)            not null comment '城市名称',
    type       varchar(255)            not null comment '城市级别',
    short_code varchar(100) default '' null comment '本地车牌简码',
    pid        int                     null comment '父级Id',
    disabled   tinyint(1)              null comment '是否生效'
)
    comment '地区信息表,该表中的type(城市级别)信息依赖area_type表' charset = utf8;

create index FK_AREA_REF_AREA_TYPE
    on area (type);

8.2、用户地区表

create table user_area
(
    id          bigint auto_increment comment 'id'
        primary key,
    user_id     bigint                                not null comment '用户id',
    area_id     bigint                                not null comment '地区id',
    operator    varchar(50) default ''                not null comment '操作人',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '用户地区中间表';

create index user_area_index
    on user_area (user_id, area_id);

8.3、地区类型表

create table area_type
(
    id          bigint auto_increment
        primary key,
    name        varchar(45)   not null comment '级别名称',
    description varchar(2000) null comment '级别描述',
    disabled    tinyint(1)    not null
)
    charset = utf8;

8.4、组织机构表

create table organization
(
    id          bigint auto_increment comment 'id'
        primary key,
    name        varchar(100) default ''                not null comment '名称',
    code        varchar(45)  default ''                null comment '编码',
    short_code  varchar(20)                            null comment '顶级机构简称',
    short_name  varchar(45)  default ''                not null comment '简称',
    level       int                                    null comment '层级',
    parent_code varchar(45)  default '0'               not null comment '机构code',
    province_id bigint                                 not null comment '所在省',
    city_id     bigint                                 not null comment '所在市',
    area_id     bigint       default 0                 null comment '所在区',
    status      tinyint(1)   default 1                 not null comment '状态 1-启用,2-禁用',
    type        int                                    null comment '机构属性',
    third_code  varchar(20)                            null comment '组织机构提供的code',
    operator    varchar(50)  default ''                not null comment '操作人',
    create_time datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    constraint uniq_short_name
        unique (short_name)
)
    comment '组织机构表';
RBAC权限模型实战全解:从RABC0到数据权限与框架选型 在业务系统设计中,权限模型是决定系统安全性与可扩展性的地基。RBAC(基于角色的访问控制)通过引入“角色”这一中间层,将用户与权限解耦,从而高效应对组织架构的动态调整。从RBAC0基础模型到角色继承、互斥约束,再到数据权限(行级权限)的落地,权限设计的深度直接决定了生产环境的稳定性。在技术选型上,Spring Security与Apache Shiro各有适用场景,前者适合复杂授权与微服务架构,后者轻量易上手。对于使用快速开发平台的团队,权限能力是选型的第一硬指标,需重点评估数据权限、后端接口校验、权限变更 阅读详情

相关推荐

RBAC-基于角色权限的模型

我们开发一个系统,必然面临权限控制的问题,即不同的用户具有不同的访问、操作、数据权限。形成理论的权限控制模型有:自主访问控制(DAC: Discretionary Access Control)、强制访问控制(MAC: Mandatory Access Control)、基于属性的权限验证(ABAC: Attribute-Based Access Control)等。最常被开发者使用也是相对易用、通用的就是RBAC权限模型(Role-Based Access Control),本文就将向大家介绍该权限模型。

weixin_46038850的博客 1026

如何设计一个权限系统

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

qianshanding0708的博客 1847

RBAC 权限控制模型

目录1.简介1.1 Why?为什么要进行权限控制1.2 What?什么是权限控制1.3 How?如何进行权限控制1.3.1 定义资源1.3.2 创建权限1.3.3 创建角色1.3.4 管理用户2. 多对多关联关系在数据库中的表示2.1 没有中间表的情况2.2 有中间表2.3 中间表的主键生成方式2.3.1 方式一:另外设置字段作为主键3. RBAC 权限模型3.1 概念3.2 RBAC0~RBAC33.2.1 RBAC03.2.2 RBAC13.2.3 RBAC2 1.简介 1.1 Why?为什么要进行权限

Criven的博客 546

动态菜单/RBAC标准完整权限管理系统的实现,通用角色权限控制系统五张表逻辑关联设计实现

序言: 众所周知,权限系统是每个系统里面必备的最基本的系统,然而权限系统设计有时挺麻烦的,,现在整理了下,给正在开发此模块的朋友一个思路!   设计基础:用户、角色、权限三大核心表,加上用户角色、角色权限两个映射表(用于给用户表关联上权限表)。这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。   大致用到5张表:用户表(s_user)、角色表(s_role)、菜单表(s_menu)、用户角色表(s_user_role)、角色菜单表(s_role_menu)<注:表前加前缀s代表这

wh445306 8639

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法

强化学习经典算法笔记(九):LSTM加持的PolicyGradient算法 在上文《强化学习经典算法笔记(八):LSTM加持的A2C算法解决POMDP问题》的基础上,实现了LSTM+MLP的Policy Gradient算法。 实现过程如下: import argparse, math, os, sys import numpy as np import gym from gym import wrappers import matplotlib.pyplot as plt import torch fr

hhy_csdn的博客 5636

短信验证码接收平台完整搭建教程(超详细版,附完整源码)

在网站注册、用户登录、找回密码等功能中,验证码(特别是短信验证码)已成为验证用户身份的常见方式。本教程将详细介绍如何从零搭建一个短信验证码接收平台,用于保存、展示并管理来自短信网关或中间转发程序提交的验证码数据。✅ 教程适合有基本 Python/HTML 基础的开发者🚫 禁止用于任何违法用途,仅供学习参考✅ 支持通过 POST 接口接收短信验证码✅ 支持通过网页实时查看验证码历史记录✅ 验证码信息保存在 SQLite 数据库✅ 支持时间戳排序、查询最新验证码。

weixin_52548902的博客 4571

索引和sql优化

索引和SQL优化

QLZXing的博客 374

Cadence Allegro16.6怎么导出器件引脚信息的报告

当我们需要用到器件的引脚相关信息时,可以利用allegro中的reports这个功能导出器件的相关信息。下面是具体的操作步骤。

suyucheng66的博客 5775

数据库(简单的RBAC权限设计表结构)

1、用户表(主要用来存储后台管理员用户的基本信息,并关联于角色表,可以做成单用户多角色)2、侧边导航栏表(存储方式可以通过控制接口或者控制显示方式来显示菜单权限)3、角色管理表(配置管理员各种身份的表,主要用于关联权限表)4、侧边栏整理遍历父子级代码。

simplexiaobo的博客 3548

深入瑞芯微ISP生态:手把手配置RK3588上的RKAIQ Server并与Windows端RKISP Tuner联调

本文详细介绍了如何在RK3588平台上配置RKAIQ Server并与Windows端的RKISP Tuner进行联调,以实现高效的ISP调优。从环境准备、服务部署到实战调试,涵盖了IMX415相机适配等关键步骤,帮助开发者快速掌握瑞芯微ISP生态的核心技术。

weixin_32447969的博客 670

使用trae自动生成前后端分离的web应用程序

使用ai自动生成前后端分离的web应用程序

一介书生 2530

若依权限剖析

dataScope(数据范围):1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限。2. 角色-权限分配(Role-Permission Assignment, PA):定义哪些角色拥有哪些权限。4. 角色-会话分配(Role-Session Assignment, RS):定义会话中可以激活哪些角色。1. 用户-角色分配(User-Role Assignment, UA):定义哪些用户被分配到哪些角色。用户(User):实际使用系统的人员。

qq_45936359的博客 1518

电源完整性之Cadence Sigrity Power DC_IR_Drop仿真

之前和大家分享过电源完整性之仿真设计原理链接: link.今天接着上一篇文章总结一下电源直流压降的的仿真操作流程及一些simulation中的设置参数,用到的时候Cadence Sigrity 中的Power DC组件,下面开始享受仿真的快乐吧: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的Power DC组件,然后先择licence,最后就可以打开我们之前转化好的.SPD文件。操作如下图: 2.设置层叠信息和过孔焊盘参数 层叠信息:每层的介质厚度、材料、介电常数、介质损耗角等,如

刘小同学的博客 1万+

基于RABC的权限控制设计

本文提出了一套可扩展的权限系统设计方案,通过用户-用户组-角色-权限-资源的完整模型,解决了企业级权限管理的痛点问题。系统支持批量授权和精细授权两种模式,既能给部门100人统一分配角色,也能单独为某个员工增加特殊权限而不影响其他人。设计采用资源分组机制,区分开发环境和线上环境权限,并支持临时授权功能。数据库设计包含11张表,采用雪花ID、冗余字段和逻辑删除等策略,既保证了查询效率又便于数据迁移。该方案通过灵活的关联关系设计,实现了权限管理的扩展性和实用性,特别适合需要处理复杂权限场景的企业应用。

记录 分享 成就 435

ComfyUI Impact Pack实战:如何用三大检测器打造高效人脸修复工作流(附2025最新模板)

本文详细解析了如何利用ComfyUI Impact Pack中的BBOX、Segm和SAM三大检测器构建高效人脸修复工作流。通过技术选型、参数优化和实战案例,帮助用户掌握从精准定位到细节修复的全流程技巧,特别适用于商业摄影和影视制作场景。文章还提供了2025年最新模板和性能优化方案,显著提升人脸精修效率。

weixin_29040367的博客 246

基于Claude Code的 规范驱动开发(SDD)指南

传统的AI辅助开发,如同手工作坊,我们向AI描述想法,它给我们零散的部件,我们再手动打磨、组装。这个过程充满了不确定性、信息损耗和重复劳动。本指南将尝试引领您进入软件开发的“工业时代”。在这里,

形上得其象,形下合于数;阴阳自济,玄理自明。 2750

RBAC经典角色权限系统设计五张表及拓展应用

大家都知道,权限系统是每个系统里面必备的最基本的系统,然而权限系统设计有时挺麻烦的,现在整理了下,给正在开发此模块的朋友提供一个思路! 设计基础:用户、角色、权限三大核心表,加上用户角色、角色权限两个映射表(用于给用户表联系上权限表)。这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。 大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。 各表的大体表结构如下: 1、用户表(User

qq_39352237的博客 7580

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

登陆认证&权限控制(2)—— 基于Spring security 安全框架的权限管理 & 注解式权限控制 & RABC模型

本篇博客介绍Spring Security的使用,结合MySQL,Redis实现基于JWT的注解式的权限认证,并且可以实现给不同的用户显示不同的前端页面。

Arya的博客,专注后端领域 753

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

spring boot集成mybatis和springsecurity实现权限控制功能

上一篇已经实现了登录认证功能,这一篇继续实现权限控制功能,文中代码只贴出来和上一篇不一样的修改的地方,完整代码可结合上一篇一起整理。

sinat_36005594的博客 1076

rabc SQL 参考

-- ---------------------------- -- Table structure for `joy_permission` 权限表 -- ---------------------------- DROP TABLE IF EXISTS `joy_permission`; CREATE TABLE `joy_permission` ( `id` int(11) NO...

qq_27084325的博客 225

用户、角色和权限,多表查询(RBAC系统)

一,各个表格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, `n...

超超超超哥的博客 6100

【vue2.7.16系列】手把手教你搭建后台系统__rabc权限(13)

身份管理表,菜单表。下面是建表SQL,导入到数据库中。后面需要动态加载路由及菜单。由此可以发现,管理员有身份,身份有相应权限。因此我们先把重点放到菜单管理列表中。可以看出,到现在终于需要身份管理表登场了。下面连身份表和菜单表一起建好。然后点击菜单【管理员列表】查看信息。接口流程同管理员列表类似,在此不在赘述。

胡西风的博客 547

使用cookie和session实现用户的认证和授权(原生方式,不使用安全框架)

在学习springsecurity和shiro等安全框架之前可以使用原生的方式,基于cookie和session实现原生的认证,有利于加强对框架学习的理解,也有助于清晰的理解认证和授权的流程,也有助于对cookie和session作用的理解。 对cookie和session的概念不清楚的可以参考:cookie和session 一般的管理系统都是基于RABC授权,也即基于角色授权,RABC授权模式最简单的就是利用5张表:用户表,角色表,权限表,用户角色中间表,角色权限中间表,这里就基于这5张表进行讲解。 案例

weixin_43266529的博客 7386

springboot基于RBAC模型的权限管理实现详解

在现代企业级应用中,权限管理是确保系统安全性和数据完整性的核心模块之一。通过权限管理,系统可以为不同的用户分配不同的权限,从而实现对系统资源的精细控制。本文将详细介绍一个基于Spring Boot和RBAC(Role-Based Access Control,基于角色的访问控制)模型的权限管理模块的实现过程,涵盖用户、角色、权限的管理以及它们之间的关系。RBAC(Role-Based Access Control)是一种常见的权限管理模型,它将权限分配给角色,然后将角色分配给用户。

几许的博客 1222

oa系统的权限管理(RBAC基于角色的访问控制权限的基本模型)

版权声明:本文为优快云博主「郭老师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/weixin_41174072/article/details/83387223 (一)基本概念 1.定义 RBAC(Role-Based Access Control),也就是所谓的**“基于角色的访问控制权限”**。 2.优势 在RBAC中,用户不再直接与权限相连,而是通过“角色”这一属性来间接的被赋予权限,用户通过成为适当的.

晚星的博客 1334
上一篇: 7、Spring Security过滤器及加载过程
下一篇: 9、SpringSecurity+JWT+RSA分布式版实战
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

小白de成长之路

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

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

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

打赏作者

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

抵扣说明:

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

余额充值