Files
cattleTransportation/tradeCattle/grant_all_permissions_to_super_admin.sql
2025-10-27 17:38:20 +08:00

46 lines
1.4 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 为超级管理员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;