46 lines
1.4 KiB
SQL
46 lines
1.4 KiB
SQL
-- 为超级管理员(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;
|
||
|