这是The Register的每周一的栏目WHO,ME,是周一小天地。在这里分享读者们并不像想象中那么聪明的故事。本次的故事是关于一个初入职场的DBA所遇到的事,数据库安全真的非常重要,再怎么小心都不为过。
本周的主角是“Leopoldo”,几十年前,他在一家不知名的国家航空公司担任DBA(数据库管理员)。这是他作为 DBA 的第一份工作,因此老好人 Leo 自然不指望被委以重任,他获得了一个不错的初级职位,当然,还有在工作中学习的机会。
他被分配去跟高级 DBA 学了几个星期,看起来还不错。然后他被告知,在入职期结束后,他将接替高级 DBA 的职责,因为该高级DBA将离开航空公司。Leo为他的职业生涯做着准备。
第一天还算顺利。他四处观察高级 DBA 的工作并做记录。数据库拥有数百万条记录,记录了每一个预订、每一个航班、每一个乘客的详细情况,所有这些。
当然,数据库有两个实例:一个是生产实例,这家全球性航空公司的所有预订、取消、更改等都在生产实例上进行;另一个是开发实例,任何后端更改都在开发实例上进行,同时还要对不必要的记录进行维护。
目前一切顺利。
第二天,前辈决定让 Leopoldo “反向跟踪”他。这意味着他要跟在 Leo 身边,告诉他该做什么,然后看着他做。
于是,高级 DBA 告诉 Leo 打开一个数据库,定义一组记录,然后删除。Leo 接着敲入必要的命令,按下回车键,然后等待。
然后等待。
Leo感到动荡加剧,他大声问道,是否应该花这么长时间。前辈回答说,不,在开发数据库上做这样的改动应该很快。“等等,”前辈迟疑了一下问道,“你刚才在哪个实例中?”
查看最后输入的命令证实了他们最担心的事情:Leopoldo刚刚转储了一大块生产数据库。
就在这时,电话铃响了。在全球每个机场的每个航站楼,航空公司突然无法创建、检查或取消机票。经理冲了进来,要求知道出了什么问题,并坚持立即恢复全部运行。
就在这时,惊恐的一幕出现了:作为即将离职的高级 DBA 的职责之一,备份服务器已经几周没有运行了。
幸运的是,周围还有一些最近导出的数据库,经过 12 个小时的努力,航空公司终于恢复了接近完全运行的状态。但这也够尴尬的。
不过,别为Leopoldo哭泣。第二天,当他回到公司上班时,他满以为自己在航空公司的工作还没开始就已经结束了。经理告诉他,他知道这不是他的错。他责怪高级 DBA 监督不力,更不用说后备人员的严重失职,并让 Leo 继续工作。
你有没有发现自己处于 Leo 的位置,因为上级领导是个笨蛋而做了错事?