SELECT id, username, role_code FROM sys_user WHERE role_code = 'SUPER_ADMIN';
INSERT INTO sys_user (username, role_code) VALUES ('ops_zhang', 'OPS_ADMIN');
-- 记录 X-Forwarded-For 原始值 不要只存网关地址
生产后台的超级管理员只有一个 admin,运维和研发 12 个人都在用。上周有人把短信模板全删了,审计日志里 12 条记录的操作人全是 admin,来源 IP 也只有网关那一个。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,超管被当成共享账号使用,权限没有拆分成具体的管理动作,也没有绑定到个人。审计只记了账号名,请求经过网关后真实来源被覆盖,等于没有可追溯信息。
围绕「超管账号共用」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。改完隔一天再看一次,当场正常不代表能稳住。
处理上按这个顺序:每人一个实名账号 超管只保留授权动作 日常运维走普通角色;把删除类动作拆成高危权限 需要二次确认;审计补上操作人 来源 IP 和变更前后的值。
改完只确认一件事:高危操作日志里能按人筛出具体账号和来源 IP,admin 账号的登录次数降到个位数。
