某地一家电商公司出过这样一桩事:一名运维因为对绩效评定不满,在离职前远程连上生产库,跑了一段删除脚本,把核心交易系统的数据清空,线上服务整整停了三十多个小时,下游几十万笔订单没法处理。公司后来花了大代价才恢复,但这名运维面对的已经不是内部处分,而是刑事程序。这类事在技术圈其实不算稀奇,可不少同行直到出事才意识到,破坏计算机信息系统远不是一句删库跑路的玩笑。
深圳破坏计算机信息系统罪这一条,保护的正是系统本身的正常运行秩序。简单讲,对计算机信息系统功能做删除、修改、增加、干扰,造成系统不能正常运行,或者把系统里的数据、应用程序破坏掉,后果严重的,就要承担刑事责任。认定的核心不在你有没有恶搞的心情,而在造成的后果:系统瘫痪了多久、影响了多少用户、直接经济损耗有多大。金额和时长一旦过了门槛,性质就变了。
主观和客观要分开看。蓄意破坏当然重,但别以为手滑就能免责。同样是误执行了高危命令,如果单位有审批流程你 bypass 了复核自己硬上,和严格走流程仍因脚本 bug 出错,两者责任分量完全不同。我坐审判席那些年,这类案子常见的情况是:不少人明明是失误,却因为平时没留操作日志、事后又把终端记录清了,反倒被往故意上推。留痕不是监视你,是在保护你。
真正能自证清白的,是平日那几项习惯。生产环境的高危操作做双人复核,谁批的、为什么批,留一句话;变更放进窗口期,非窗口不碰生产,脚本先在灰度环境跑一遍;动数据之前确认有可用备份,操作完立刻验证能不能回滚;命令、时间、执行人全程有日志;一旦发现误删,马上上报并止损,比闷头遮盖强得多。这些动作单看都普通,真到被调查时,它们就是区分意外和故意的全部依据。
把权限收住还有几处容易漏。测试环境和生产环境别混用同一套账号,很多误删就是从测试连错了库开始的;自动化脚本里的删除命令加人工确认环节,别让定时任务悄悄把库清了;离职人员的运维权限当天回收,老账号还挂着高危权限,出事算在岗的。权限这件事,宁可麻烦一点,也别图省事。
从工程实践看,减少这类风险有效的不是制度喊话,而是把高危操作平台化。用数据库运维平台替代直连,每一条删除都有工单号和审批人;用堡垒机录下全程会话,事后能回放;定时任务的删除权限单独收口,默认关闭。工具替你把谁、什么时候、动了什么记下来,比指望个人自觉可靠。
给外部做运维服务的团队也要留意。很多外包人员用自己账号直连客户生产库,合同里又没写清楚操作范围和审批流程,一旦出事双方扯皮。把服务边界、操作白名单、审批节点写进服务约定,既是保护客户也是保护自己。模糊的服务范围,到头来往往变成说不清的责任。
万一已经被约谈、账号也被冻结,头两件事不能做:一是和同事串供对口径,二是急着格式化机器、删命令历史。正确做法是配合、如实说,同时把操作审批单、变更记录、监控日志整理出来。能证明操作有授权、有流程、有恢复预案,材料越早固定越主动。系统能不能区分过失和故意,几乎全看前期这些书证留得清不清。