You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.8 KiB
4.8 KiB
role_menu_permissions 表文档
表概述
表名: role_menu_permissions
功能: 角色菜单权限关联表,用于管理系统中角色与菜单之间的权限关联关系,实现基于角色的访问控制(RBAC),支持细粒度的菜单权限管理和动态权限分配,为系统安全和权限控制提供核心数据支持
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int NULL NO PRI NULL auto_increment select,insert,update,references
role_id int NULL NO MUL NULL select,insert,update,references 角色ID
menu_id int NULL NO MUL NULL select,insert,update,references 菜单ID
is_enabled tinyint(1) NULL YES 1 select,insert,update,references 是否启用
created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references
updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references
功能用途
主要功能
- 角色菜单权限关联: 建立角色与菜单之间的权限关联关系
- 权限控制: 控制不同角色对系统菜单的访问权限
- 权限启用管理: 通过is_enabled字段控制权限的启用和禁用
- 细粒度权限: 实现菜单级别的精细化权限控制
- 权限继承: 支持角色权限的继承和覆盖机制
- 动态权限: 支持运行时动态调整角色菜单权限
- 权限审计: 记录权限分配的时间和变更历史
- 批量权限: 支持批量分配和回收角色权限
- 权限模板: 为角色权限分配提供模板支持
业务场景
- 权限分配: 为新创建的角色分配菜单访问权限
- 权限调整: 根据业务需要调整角色的菜单权限
- 权限回收: 回收离职人员或角色变更的菜单权限
- 权限审核: 定期审核和清理不必要的权限分配
- 功能上线: 新功能菜单上线时的权限分配
- 权限继承: 角色层级变化时的权限继承处理
- 临时权限: 临时授予特定角色某些菜单权限
- 权限模板: 基于角色模板快速分配权限
- 合规检查: 满足权限管理的合规性要求
关联关系
主要关联表
school_sys_role: 系统角色表 (role_id外键关联)school_sys_menu: 系统菜单表 (menu_id外键关联)school_personnel: 人员信息表 (通过角色关联用户)sys_log: 系统日志表 (权限变更日志)school_sys_config: 系统配置表 (权限相关配置)school_campus: 校区信息表 (数据权限范围)
关联说明
- 角色关联: role_id关联school_sys_role表,确定权限归属角色
- 菜单关联: menu_id关联school_sys_menu表,确定可访问的菜单
- 用户关联: 通过角色间接关联用户,实现用户菜单权限控制
- 日志关联: 权限变更操作记录到系统日志中
- 配置关联: 权限相关的系统配置参数
- 数据权限: 结合校区等信息实现数据级权限控制
- 层级关联: 支持菜单层级权限的继承和控制
索引建议
- 主键索引: id (已存在)
- 外键索引:
- role_id (角色权限查询)
- menu_id (菜单权限查询)
- 业务索引:
- is_enabled (启用状态查询)
- 复合索引:
- (role_id, menu_id) (角色菜单权限唯一性)
- (role_id, is_enabled) (角色启用权限查询)
- (menu_id, is_enabled) (菜单启用权限查询)
- (role_id, menu_id, is_enabled) (完整权限查询)
- 时间索引:
- created_at (创建时间查询)
- updated_at (更新时间查询)
注意事项
- 权限唯一性: (role_id, menu_id)组合应保证唯一性,避免重复权限记录
- 外键完整性: role_id和menu_id必须在对应的表中存在
- 权限一致性: 权限变更时需要同步更新相关缓存和会话
- 启用状态: is_enabled字段变更需要实时生效到用户权限
- 权限继承: 角色层级变化时需要重新计算权限继承关系
- 批量操作: 批量权限分配时需要保证事务一致性
- 权限验证: 菜单访问时需要验证对应的权限记录
- 软删除: 建议使用软删除而非物理删除权限记录
- 权限缓存: 频繁访问的权限信息建议使用缓存机制
- 审计日志: 权限变更操作需要记录详细的审计日志
- 默认权限: 新角色创建时需要分配默认的基础权限
- 权限回收: 角色删除时需要同步清理相关权限记录
- 数据完整性: 删除角色或菜单时需要检查权限依赖关系
- 权限模板: 建议建立权限模板机制简化权限分配
- 最小权限: 遵循最小权限原则,只分配必要的菜单权限
- 权限监控: 建立权限使用监控,及时发现异常权限访问
- 时效性: 权限变更需要及时生效,避免权限延迟