deeee9bb017bb226cf83386eca375ca532352d2d
**发现**(由"给邮件端点加权限"这个任务引出来的):风控 service 层声明了四个权限码, 而 sys_permission 表里只有一个。 | 权限码 | 用途 | 原先状态 | |---|---|---| | risk:alert:read | 查询 / 研判 / 日报 / 通知 | 已存在,正常 | | risk:alert:write | 处置 / 证据归档 | **不存在** → 6 处调用全被拒 | | risk:alert:scan | 规则扫描 | **不存在** → 扫描端点调不了 | | risk:report:mail | 日报邮件 | **不存在**(本次新增) | 失效表现是 ForbiddenAgentError,而**只读查询一切正常** —— 所以很容易以为"风控能用", 直到去点处置按钮才发现。这与 risk:alert:read 当初缺失是同一类问题,只是面更广。 **改动**:把早先那个只建一条权限的脚本改造成覆盖四个,并授权给 risk_operator 与 admin (风控 Agent 的 allowed_roles 两个都声明了,只给其中一个会让另一个"声明了却用不了")。 data_scope 取 all —— 风控要处理全部客户的预警,且多个 service 按 context.data_scope == "all" 决定是否放行全量。脚本更名为 grant_risk_permissions.py。 **实测**(9002 risk_operator): - POST /risk/alerts/scan → **200**「规则扫描完成」(原先必被拒) - POST /risk/alerts/ALDEMO0002/acknowledgements → **409**「只有待处理预警可以确认接收」 —— 不是 403,说明**权限已通过**、卡在业务状态(该预警是"调查中"),属正当拒绝 - 对照组:customer 调扫描 → **403 缺少操作权限**,边界未放松 顺带发现:这个 409 复用了错误码 RUN_NOT_CANCELLABLE,语义不符 —— 属 docs/25 里已记的一项。
Description
番茄炒蛋组
18 MiB
Languages
Python
99.9%