阿里巴巴开发手册的1个奇葩规定,源自于一位删库的新手程序员

程序员的最后威胁是删库,而跟在删库后面的一般就是跑路了,这是什么原因呢?先跟大家普及一下删库是什么意思,有什么后果?

数据库简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。也可以理解为按照数据结构来组织、存储和管理数据的仓库。是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,一旦数据被删除,后果十分严重。

我自己是一名高级python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。送给正在学习python的小伙伴!这里是python学习者聚集地,欢迎初学和进阶中的小伙伴!

关注微信公众号:速学Python,后台回复:简书,即可拿Python学习资料

顺丰工程师误删库“被”跑路

顺丰工程师删库:在接到改需求的消息后,按照操作流程登陆上了生产数据库跳转机,通过navicat-mysql客户端管理工具,连入SHIVA-OMCS的RUSS库进行操作。在操作过程中,该运维发现选错了RUSS 数据库,打算删除执行的sql。结果操作失误,鼠标跳回到了russ库,在未确认所选情况的时候,直接delete了。还忽视了弹窗的提示,直接一个回车,russ库被删除。导致系统故障,无法使用并持续约590分钟。该程序员也因为操作问题被“跑路”了。

荷兰程序员删库跑路

荷兰海牙的一家云主机商 也遭遇过被删库的经历,一名前任管理员删光了该公司所有客户的数据,并且擦除了大多数服务器上面的内容,导致用户数据全部丢失,网络服务瘫痪一周,程序员跑的再快也没用。

阿里巴巴程序员差点删库

阿里巴巴作为大厂,人员的技术应该都是大牛级别的,但在《阿里巴巴JAVA开发手册》中,Mysql中有两条与此事件相关:

禁止使用存储过程,存储过程难以调试和扩展,更没有移植性;

数据订正(特别是删除、修改记录操作)时,要先select,避免出现误删除,确认无误才能更新语句。这两点很多程序员搞不懂,原因就是一个新入职的阿里巴巴员工。

当时的阿里巴巴数据库可以直接用bash进行后台的增删操作,各种监管和操作日志机制都不是很完善。新入职的程序员在使用存储过程进行update极度重要的表的时候,没有加where条件就直接潇洒了敲了一下回车键。还好当时他没有跑路,而是用颤抖的手给DBA打了电话,还好oracle在没有保存前回滚是有效果的,没有造成太大的后果。

如何防止数据被程序删除呢?

1、通常,架构设计上需要注意,重要数据永远不要直接删除,标记为“删除”状态。不能给程序的用户all privileges。Insert、delete、update各类命令的权限单独赋予。

2、应用的网络进行分层设计。接入层,应用层,数据层。数据层只对固定的应用服务器开放。数据库永远只放在内网。

3、周密的备份,即使管理员跑路也不怕

猜你喜欢

转载自blog.csdn.net/qq_40196321/article/details/88977175