
jeecg数据权限
从 从 从 从 Final
发布日期:2021-05-12 13:49:27
浏览次数:22
分类:精选文章
本文共 2249 字,大约阅读时间需要 7 分钟。
角色管理与权限配置
在一个典型的后台管理系统中,用户权限管理通常涉及多个数据库表的关系和关联。以下是角色管理、菜单创建及用户权限配置的详细说明。
1. 新建角色
首先,我们需要使用sys_role
表来创建新的角色。该表包含以下字段:
- id:角色标识符,自动递增。
- role_name:角色名称。
- role_code:角色编码,通常为唯一且有特定含义的字符串。
- description:角色说明或备注。
- create_by:创建该角色的人员。
- create_time:记录创建时间。
创建新角色时,通常需要执行以下SQL语句:
INSERT INTO sys_role (id, role_name, role_code, description, create_by, create_time) VALUES (?, ?, ?, ?, ?, ?)
其中,?
表示待传递的参数,如角色名称和编码等。数据库会自动生成唯一的id
,并记录创建时间和操作人。
2. 新建菜单
菜单管理模块使用sys_menu
表来记录系统菜单项。这表包含字段:
- id:菜单标识符。
- parent_id:菜单的父类ID,用于树状结构。
- menu_name:菜单名称。
- display_name:显示在UI中的名称,允许修改。
- menu_type:菜单类型(如按钮、链接等)。
- sort_no:菜单排序顺序。
- icon:显示的图标。
- url:菜单链接。
- 状态:是否可用(默认为可用)。
创建新菜单时,使用以下查询:
INSERT INTO sys_menu (parent_id, menu_name, display_name, menu_type, sort_no, icon, url) VALUES (?, ?, ?, ?, ?, ?, ?)
3. 向角色中添加显示的菜单
在完成新菜单创建后,需要将这些菜单分配给特定角色。这一过程使用sys_role_permission
表,它记录角色的菜单权限。该表包含以下字段:
- id:记录唯一标识符。
- role_id:对应
sys_role
表的id
。 - permission_id:对应
sys_menu
表的id
。
将菜单分配给角色时,执行以下插入语句:
INSERT INTO sys_role_permission (id, role_id, permission_id) VALUES (?, ?, ?)
4. 新建用户
用户管理流程涉及两张表:sys_user
和sys_user_role
。sys_user
表用于记录用户信息,字段包括:
- id:用户唯一标识符。
- username:用户登录名。
- realname:用户实际名字。
- password:用户密码。
- salt:用于加密的随机字符串。
- birthday:用户生日。
- sex:用户性别。
- status:用户状态(确认或不可用)。
- del_flag:是否删除账户。
- create_by:创建用户的人员。
- create_time:记录创建时间。
创建用户时,执行以下查询:
INSERT INTO sys_user (id, username, realname, password, salt, birthday, sex, status, del_flag, create_by, create_time, activiti_sync) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
5. 为角色分配用户
创建用户后,需要将其分配到指定的角色中。使用sys_user_role
表,字段包括:
- id:主键。
- user_id:对应
sys_user
表的id
。 - role_id:对应
sys_role
表的id
。
分配用户与角色的代码如下:
INSERT INTO sys_user_role (id, user_id, role_id) VALUES (?, ?, ?)
6. 关联和关联查询解释
了解完基本操作后,我们需要理解用户权限的相关查询。系统管理中常见的查询包括获取特定用户的权限。以下是一个复杂查询的简要说明:
SELECT p.* FROM sys_permission pWHERE EXISTS ( SELECT a.id FROM sys_role_permission a JOIN sys_role b ON a.role_id = b.id JOIN sys_user_role c ON c.role_id = b.id JOIN sys_user d ON d.id = c.user_id WHERE p.id = a.permission_id AND d.username = 'admin') AND p.del_flag = 0ORDER BY p.sort_no ASC
这个查询实现了多级关联:
sys_user
表获取管理员账户(d.username = 'admin'
)。sys_user_role
表获取该管理员关联的角色ID。sys_role
表获取特定角色的信息。sys_role_permission
表获取该角色被赋予的权限ID。sys_permission
表获取所有相关权限,并按排序字段排列。通过这样的查询,可以清楚地看到用户权限的全貌,有助于进行权限管理和查看。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年05月02日 06时06分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LVS--NAT模型介绍及模型实现
2025-04-11
LVS-DR工作原理图文详解
2025-04-11
LVS-DR模型实现调度
2025-04-11
LVS-负载均衡
2025-04-11
LVS基本介绍
2025-04-11
LVS精益价值管理系统 DownLoad.aspx 任意文件读取漏洞复现
2025-04-11
LVS精益价值管理系统 LVS.Web.ashx SQL注入漏洞复现
2025-04-11
LVS负载均衡
2025-04-11
lxc(2):lxc命令
2025-04-11
lykchat信息发送系统
2025-04-11
Lync Server单前端无边缘的外部访问思考
2025-04-11
Lync 小技巧-17-查询Lync 2013聊天记录
2025-04-11
Lync 小技巧-52-Lync 2013-不加域-客户端-2-导入-证书-信任链
2025-04-11
LZ4 1.10 压缩算法发布!具有多线程功能,压缩速度显著提高达 8 倍
2025-04-11
lz4_flex 项目教程
2025-04-11
lzg_ad:打印机需要的组件支持
2025-04-11
M2 BPI升级 开源开发板,单片机
2025-04-11
M2 Postmortem
2025-04-11
mabatis 中出现< 以及> 代表什么意思?
2025-04-11