-- 1.0.528.verify.sql — 每条 SELECT 都必须返回 1 -- ① 新菜单的授权角色集 == 父目录(S8 异常监控)的授权角色集,一个不多一个不少 SELECT (SELECT COUNT(*) FROM ( SELECT `RoleId` FROM `SysRoleMenu` WHERE `MenuId` = 1329008000020 UNION ALL SELECT `RoleId` FROM `SysRoleMenu` WHERE `MenuId` = 1329008000027 ) u GROUP BY `RoleId` HAVING COUNT(*) <> 2) IS NULL; -- ② 已实际授权(非 0 行) SELECT (SELECT COUNT(*) FROM `SysRoleMenu` WHERE `MenuId` = 1329008000027) > 0; -- ③ 无重复授权(幂等:重复执行不产生第二份) SELECT (SELECT COUNT(*) FROM ( SELECT `RoleId` FROM `SysRoleMenu` WHERE `MenuId` = 1329008000027 GROUP BY `RoleId` HAVING COUNT(*) > 1) d) = 0; -- ④ 未越界授权到父目录之外的角色 SELECT (SELECT COUNT(*) FROM `SysRoleMenu` a WHERE a.`MenuId` = 1329008000027 AND NOT EXISTS (SELECT 1 FROM (SELECT `RoleId` FROM `SysRoleMenu` WHERE `MenuId` = 1329008000020) b WHERE b.`RoleId` = a.`RoleId`)) = 0;