漫画 | 如何教女朋友“删库跑路”?

新闻
最近几年,经常会出现各种删库跑路的事件发生,前几天还有报道说思科离职5个月的程序员,为了报复公司,删虚拟机跑路了。

  

在 DBA 圈子有这样一个段子:

最近几年,经常会出现各种删库跑路的事件发生,前几天还有报道说思科离职5个月的程序员,为了报复公司,删虚拟机跑路了。

这位思科的离职员工,仅凭一己之力,删掉了思科 456 台虚拟机,导致思科损失 240 万美元,相当于人民币 1650 万。

对于这些事件,程序员之所以会删库跑路无外乎两个原因,第一种可能是真的手误;那第二种可能就是蓄谋的了。

 

 

怎么删库的?

所谓"删库跑路"其实只是一种戏谑的说法,而其中的"删库"具体做法可能是删除了服务器上面的文件、清空了数据库里面的内容、删除了数据库表等。

删除不同的数据,使用的方式也不尽相同。

①删除服务器文件

Linux 服务器的文件删除主要是 rm 命令,rm 命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。

在 Linux 上,使用 rm 命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。

rm 命令的语法是 rm [选项][参数],所以,在使用 rm 的时候,一定要高度注意[选项][参数]的正确性。

其中选项比较危险的有:

  1. -f:强制删除文件或目录; 
  2. -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; 

这两个是比较危险的,可能会造成非预期的无法挽回的后果。

另外,参数也值得注意,有的人习惯使用 rm * 来删除文件,这其实是非常危险的,因为*代表所有文件,这就很容误删。

最危险的就是在服务器上执行:rm -rf *,当然,比这更更更更更危险的是:sudo rm -rf /。

特别声明☞:本图内容不要相信,否则后果自负!

②删除数据库

除了删除服务器上面的文件外,也有些案例是删除了数据库。这里的删除数据库包括了数据库以及表的删除。

Dorp :drop 属于数据库定义语言 DDL,表示删除表, 也可以用来删除数据库,删除表格中的索引。

使用 drop 删除表的语法是:drop table 表名,删除数据库的语法是:drop database 数据库名。

Truncate:truncate 属于数据库定义语言 DDL,表示删除表中所有数据,DDL 操作是隐性提交的!不能 rollback。

使用 truncate 删除表的语法是:truncate from 表名,特别要注意的是:使用 truncate 删除的数据是不能恢复的。

 

③清空表内容

除了对数据库和表结构的操作以外,还有一种破坏的方式就是清空数据库中的内容。

通常使用 delte 语句,delete 属于数据库操纵语言 DML,表示删除表中的数据,delete 删除过程是每次从表中删除一行,并把该行删除操作作为事务记录在日志中保存。

使用 delete 的时候可以全部删除,也可以按条件删除:

  • 使用 delete 删除表中全部数据:delete from 表名。
  • 使用 delete 按条件删除 :delete from 表名 where 条件。

 

如何避免误删?

首先,对于操作者来说,最重要就是在进行删除操作的时候,一定要加倍小心,仔细检查确认无误后再执行。

对于公司管理者来说,更好的手段就是做好权限管控,将不该授予的权限全部回收,避免有人误操作或者恶意操作。

还有一点至关重要,那就是及时备份!!!冷备、热备双管齐下!!!

[[347473]]

最后,奉劝广大程序员、DBA、运维工程师们,莫要冲动,删库跑路一时爽,入狱坐牢菊花痒。

 

 

来源:漫话编程,是一个通过漫画+音频的形式讲解枯燥的编程知识的公众号。致力于让编程变得更有乐趣。

 

责任编辑:武晓燕 来源: 漫话编程
相关推荐

2015-08-26 10:17:29

程序员女朋友

2020-10-19 13:01:31

删库程序员思科

2015-08-21 09:48:11

女朋友编程学习编程

2020-12-14 07:08:37

MSL网络Linux

2017-09-11 10:09:59

删库DBA淘汰

2019-08-20 14:20:19

MySQL数据恢复数据库

2020-03-03 17:28:39

CIO删库微盟

2020-08-05 11:50:47

删库MySQL数据库

2018-10-24 16:25:24

数据库MySQLxtraback

2018-09-25 09:11:59

2020-03-23 12:57:20

撞库脱库洗库

2019-03-12 09:43:14

反向代理正向代理服务器

2018-09-21 11:34:42

灾备

2022-01-10 21:48:37

删库跑路开发代码

2020-11-27 14:45:57

开发服务器代码

2022-06-02 16:56:46

删库删库跑路

2020-02-27 16:10:53

数据库程序员MySQL

2019-04-09 09:40:23

2020-03-16 14:08:59

线程熔断限流

2018-12-11 15:00:37

点赞
收藏

51CTO技术栈公众号