-- 为客户 / Admin 角色批量追加小红书权限(幂等,可重复执行) -- RBAC 库执行 -- ⚠️ 本环境 role_permission.CreateUserId 为 CHAR(36) GUID,不可写整数 0(登录会报 Guid: 0) SET @ADMIN_USER_ID = ( SELECT `Id` FROM `user` WHERE `Account` = 'admin' AND (`IsDeleted` = 0 OR `IsDeleted` IS NULL) LIMIT 1 ); SET @ADMIN_USER_ID = IFNULL( @ADMIN_USER_ID, '00000000-0000-0000-0000-000000000001' ); INSERT INTO `role_permission` (`Id`, `RoleId`, `PermissionCode`, `CreateUserId`, `CreateTime`) SELECT UUID(), r.`Id`, p.`Code`, @ADMIN_USER_ID, NOW() FROM `role` r CROSS JOIN ( SELECT 'Xhs.Agent.Query' AS `Code` UNION ALL SELECT 'Xhs.Agent.Control' UNION ALL SELECT 'Xhs.Analysis.Use' UNION ALL SELECT 'Xhs.Creation.Use' UNION ALL SELECT 'Xhs.Publish.Query' UNION ALL SELECT 'Xhs.Publish.Cancel' UNION ALL SELECT 'Xhs.Skills.Query' UNION ALL SELECT 'Xhs.Skills.Save' UNION ALL SELECT 'Xhs.Skills.Run' UNION ALL SELECT 'Xhs.HumanSettings.Save' UNION ALL SELECT 'Xhs.Ai.Use' UNION ALL SELECT 'Xhs.Ai.Save' ) p WHERE r.`Code` = 'Customer' AND NOT EXISTS ( SELECT 1 FROM `role_permission` rp WHERE rp.`RoleId` = r.`Id` AND rp.`PermissionCode` = p.`Code` ); INSERT INTO `role_permission` (`Id`, `RoleId`, `PermissionCode`, `CreateUserId`, `CreateTime`) SELECT UUID(), r.`Id`, p.`Code`, @ADMIN_USER_ID, NOW() FROM `role` r CROSS JOIN ( SELECT 'Xhs.Agent.Query' AS `Code` UNION ALL SELECT 'Xhs.Agent.Control' UNION ALL SELECT 'Xhs.Analysis.Use' UNION ALL SELECT 'Xhs.Creation.Use' UNION ALL SELECT 'Xhs.Publish.Query' UNION ALL SELECT 'Xhs.Publish.Cancel' UNION ALL SELECT 'Xhs.Skills.Query' UNION ALL SELECT 'Xhs.Skills.Save' UNION ALL SELECT 'Xhs.Skills.Run' UNION ALL SELECT 'Xhs.HumanSettings.Save' UNION ALL SELECT 'Xhs.Ai.Use' UNION ALL SELECT 'Xhs.Ai.Save' ) p WHERE r.`Code` = 'Admin' AND NOT EXISTS ( SELECT 1 FROM `role_permission` rp WHERE rp.`RoleId` = r.`Id` AND rp.`PermissionCode` = p.`Code` ); -- 若曾用 CreateUserId=0 插入过,执行 fix_rbac_bad_guids.sql 修复脏行