1.0.528.verify.sql 1.1 KB

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