用户数据隔离失效,不同环境相同机构ID的数据被改动 update@20201212
线上问题
数据库环境切换错误,导致错误的数据更新
主要原因是调用者的数据处理范围不对,我的方法里又有一句实际无用的根据上游数据设置数据库环境的动作, 导致后续处理进入错误的数据环境。 错误已经很久,但是因为代码很多地方缺少验证,导致直到客户报了数据错误更新的问题我们才发现。
反思
- 从技术上来谈, 关键代码(此次事故里是设置数据库环境的代码)应当尽可能的放置于代码的最外层,便于检查,关键性的代码如果没有必要,应当删除, 尤其是自己根据调用者做的设置可能是不准确的。
- 技术上做好预防,在数据操作时做好必要的权限校验,守护好最后的关卡!
- 从责任来谈, 当在日志中发现异常情况时,即使觉得不是自己的责任,也应当驱动其他关联方去排查,否则真的出了事故,自己或多或少都难逃干系,甚至有可能被直接拉来背锅!