46 lines
1.4 KiB
MySQL
46 lines
1.4 KiB
MySQL
|
|
-- 为超级管理员(roleId=1)分配所有菜单权限
|
|||
|
|
-- 这将解决操作权限管理界面中超级管理员权限未全部打开的问题
|
|||
|
|
|
|||
|
|
-- 1. 查询当前超级管理员已有的权限
|
|||
|
|
SELECT rm.role_id, r.name as role_name, rm.menu_id, m.name as menu_name, m.authority
|
|||
|
|
FROM sys_role_menu rm
|
|||
|
|
LEFT JOIN sys_role r ON rm.role_id = r.id
|
|||
|
|
LEFT JOIN sys_menu m ON rm.menu_id = m.id
|
|||
|
|
WHERE rm.role_id = 1 AND m.is_delete = 0
|
|||
|
|
ORDER BY m.sort;
|
|||
|
|
|
|||
|
|
-- 2. 为超级管理员角色分配所有菜单权限
|
|||
|
|
-- 使用 INSERT ... ON DUPLICATE KEY UPDATE 避免重复插入
|
|||
|
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
|||
|
|
SELECT 1, id FROM sys_menu WHERE is_delete = 0
|
|||
|
|
ON DUPLICATE KEY UPDATE role_id = role_id;
|
|||
|
|
|
|||
|
|
-- 3. 验证分配结果
|
|||
|
|
SELECT
|
|||
|
|
rm.role_id,
|
|||
|
|
r.name as role_name,
|
|||
|
|
COUNT(rm.menu_id) as menu_count
|
|||
|
|
FROM sys_role_menu rm
|
|||
|
|
LEFT JOIN sys_role r ON rm.role_id = r.id
|
|||
|
|
WHERE rm.role_id = 1
|
|||
|
|
GROUP BY rm.role_id, r.name;
|
|||
|
|
|
|||
|
|
-- 4. 查询总菜单数
|
|||
|
|
SELECT COUNT(*) as total_menus FROM sys_menu WHERE is_delete = 0;
|
|||
|
|
|
|||
|
|
-- 5. 查询超级管理员所有权限详情
|
|||
|
|
SELECT
|
|||
|
|
rm.role_id,
|
|||
|
|
r.name as role_name,
|
|||
|
|
m.id as menu_id,
|
|||
|
|
m.name as menu_name,
|
|||
|
|
m.type,
|
|||
|
|
m.authority,
|
|||
|
|
m.page_url
|
|||
|
|
FROM sys_role_menu rm
|
|||
|
|
LEFT JOIN sys_role r ON rm.role_id = r.id
|
|||
|
|
LEFT JOIN sys_menu m ON rm.menu_id = m.id
|
|||
|
|
WHERE rm.role_id = 1 AND m.is_delete = 0
|
|||
|
|
ORDER BY m.parent_id, m.sort;
|
|||
|
|
|