首页 > 数据库 >从数据库查询权限信息 准备工作

从数据库查询权限信息 准备工作

时间:2023-04-24 16:25:05浏览次数:35  
标签:COMMENT NULL DEFAULT 数据库 查询 sys role 权限 id

 RBAC权限模型(Role-Based Access Control)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型

 准备工作

创建数据库表

CREATE TABLE `sys_menu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`menu_name` varchar(64) NOT NULL DEFAULT 'NULL' COMMENT '菜单名',
`path` varchar(200) DEFAULT NULL COMMENT '路由地址',
`component` varchar(255) DEFAULT NULL COMMENT '组件路径',
`visible` char(1) DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',
`status` char(1) DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
`perms` varchar(100) DEFAULT NULL COMMENT '权限标识',
`icon` varchar(100) DEFAULT '#' COMMENT '菜单图标',
`create_by` bigint(20) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_by` bigint(20) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`del_flag` int(11) DEFAULT '0' COMMENT '是否删除(0未删除 1已删除)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';

/*Table structure for table `sys_role` */

DROP TABLE IF EXISTS `sys_role`;

CREATE TABLE `sys_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(128) DEFAULT NULL,
`role_key` varchar(100) DEFAULT NULL COMMENT '角色权限字符串',
`status` char(1) DEFAULT '0' COMMENT '角色状态(0正常 1停用)',
`del_flag` int(1) DEFAULT '0' COMMENT 'del_flag',
`create_by` bigint(200) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_by` bigint(200) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='角色表';

/*Table structure for table `sys_role_menu` */

DROP TABLE IF EXISTS `sys_role_menu`;

CREATE TABLE `sys_role_menu` (
`role_id` bigint(200) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
`menu_id` bigint(200) NOT NULL DEFAULT '0' COMMENT '菜单id',
PRIMARY KEY (`role_id`,`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

/*Table structure for table `sys_user` */

DROP TABLE IF EXISTS `sys_user`;

CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`user_name` varchar(64) NOT NULL DEFAULT 'NULL' COMMENT '用户名',
`nick_name` varchar(64) NOT NULL DEFAULT 'NULL' COMMENT '昵称',
`password` varchar(64) NOT NULL DEFAULT 'NULL' COMMENT '密码',
`status` char(1) DEFAULT '0' COMMENT '账号状态(0正常 1停用)',
`email` varchar(64) DEFAULT NULL COMMENT '邮箱',
`phonenumber` varchar(32) DEFAULT NULL COMMENT '手机号',
`sex` char(1) DEFAULT NULL COMMENT '用户性别(0男,1女,2未知)',
`avatar` varchar(128) DEFAULT NULL COMMENT '头像',
`user_type` char(1) NOT NULL DEFAULT '1' COMMENT '用户类型(0管理员,1普通用户)',
`create_by` bigint(20) DEFAULT NULL COMMENT '创建人的用户id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint(20) DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` int(11) DEFAULT '0' COMMENT '删除标志(0代表未删除,1代表已删除)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

/*Table structure for table `sys_user_role` */

DROP TABLE IF EXISTS `sys_user_role`;

CREATE TABLE `sys_user_role` (
`user_id` bigint(200) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`role_id` bigint(200) NOT NULL DEFAULT '0' COMMENT '角色id',
PRIMARY KEY (`user_id`,`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


查询权限SQL

SELECT
DISTINCT m.`perms`
FROM
sys_user_role ur
LEFT JOIN `sys_role` r ON ur.`role_id` = r.`id`
LEFT JOIN `sys_role_menu` rm ON ur.`role_id` = rm.`role_id`
LEFT JOIN `sys_menu` m ON m.`id` = rm.`menu_id`
WHERE
user_id = 2
AND r.`status` = 0
AND m.`status` = 0

实体类

 

标签:COMMENT,NULL,DEFAULT,数据库,查询,sys,role,权限,id
From: https://www.cnblogs.com/NanFangDaGua/p/17349878.html

相关文章

  • SQL 跨服务器 -查询 修改
    update[Business_TasksAffirm]SETdriver_name=b.driver_name,PictureId=b.PictureId,iJsDoneState=1,iSIncluded=1,iSWages=1,UserId=b.UserId,UserName=b.UserName,AuditTime=b.AuditTime,cExDescription=b.cExDescriptionfrom[表]aleftjoinopenrowset('SQ......
  • FIT2094 数据库设计
    FIT2094DatabasesNormalisationandLogicalDatabaseDesign-CleanUpInc(CUI)FACULTYOFINFORMATIONTECHNOLOGYGiventheprovidedcasestudyfromassignment1A,andadditionalforms/documentsrelatedtothecasestudy,studentswillbeaskedtotrans......
  • 医院核心数据库一体化建设实践
     建设背景 “以数据为核心资源的数字化时代,正在成为引领和推动新一轮科技革命的核心力量,将会深刻影响卫生健康行业。”这是四月份发布的《公立医院运营管理信息化功能指引》中对数据重要性的描述。数据库作为数据的载体,支撑着整个业务系统,发挥着非常重要的作用,被喻为“IT的心......
  • sqlsever收缩数据库日志操作
    1、备份事务日志--->备份到其他盘;备份类型->事务日志 2、数据库---->数据库收缩---->文件类型:日志 ......
  • mysql查询上个季度数据
    mysql查询上季度数据个人博客地址:https://note.raokun.top拥抱ChatGPT,国内访问网站:https://www.playchat.top最近接口需要统计上个季度的数据统计,补一下sql季度函数:QUARTER(date)函数返回给定日期值(1到4之间的数字)的一年中的季度语法:QUARTER(date)参数描述......
  • 数据库系统概论—标准语言SQL
    数据库系统概论—基础篇(2)三、关系数据库标准语言SQL1、数据定义1.1基本表的定义、删除与修改定义基本表#建立学生表CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)UNIQUE,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20));修......
  • Nginx命令(查询nginx配置文件)
    Nginx命令(查询nginx配置文件)个人博客地址:https://note.raokun.top拥抱ChatGPT,国内访问网站:https://www.playchat.topNginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发......
  • MySQL查询某字段在哪些表中
    https://blog.csdn.net/qq_45722267/article/details/126350980?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-126350980-blog-123066515.235%5Ev31%5Epc_relevant_default_base3&depth_1-utm_source......
  • 自定义权限校验方法、基于配置的权限控制、CSRF
    自定义权限校验方法我们也可以定义自己的权限校验方法。在@PreAuthorize注解中使用我们的方法。创建expression包,在该包下创建SGEexpression类@Component("ex")publicclassSGEexpression{publicbooleanhasAuthority(Stringauthority){//获取当前用户......
  • Sql树形结构(多级菜单)查询设计方案
    MySql树形结构(多级菜单)查询设计方案 背景又很久没更新了,很幸运地新冠引发了严重的上呼吸道感染,大家羊过后注意休息和防护工作中(尤其是传统项目中)经常遇到这种需要,就是树形结构的查询(多级查询),常见的场景有:组织架构(用户部门)查询和多级菜单查询比如,菜单分为三级,一级菜单、......