首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

非 996 删库跑路,发生在 update 上的悲剧

昨天,我们公司发生了一件“删库跑路”的事件,为此我花费了一整个通宵的时间来处理事故现场,进行数据恢复。 当我在群里讨论这件事的时候,很多程序员自黑到肯定是因为 996,其实并不是了。...事件的起因是这样的,最近有几个运营同事离职,4 月份大家都想换个环境,所以,老板就对部分运营同事的相关权限进行了回收。但是,意外发生了,老板不小心把在职的相关运营的同事的权限也回收了。...他竟然不小心,使用 update 更新 SQL 的时候,把所有数据都更新了。年前放假前 3 天的事故再现《泪奔,同事执行 update 语句没有添加 where 条件!》...关于为什么只要子查询中取的字段是 order_item 中的字段就不报错的原因,目前网上还没有这类的文章介绍。...但是我们可以通过我前面教的 EXPLAIN EXTENDED 和 SHOW WARNINGS; 来看看 MySQL 的子查询到底是如何执行的。 ?

55130

敖丙跟你聊聊MySQL安全的那些事

MySQL这么多章节了,前前后后20多篇了,我看了下自己本地的目录,已经可以说是很全了,但是有一点我发现很关键但是我还没提过,那就是安全。...,则任何具有FILE系统权限的用户都可以读写root用户下的文件,会造成严重的安全隐患,应该将软件目录属主设置成root用户,数据目录属主设置成mysql用户,使用mysql用户启动MySQL实例。...对外开放端口 对于MySQL数据库服务器,除了3306端口开发给指定的应用服务器访问外,其他的端口都应该禁用掉,例如ssh, ftp, telent服务端口。...,默认的登录用户(例如 server 用户)只有只读权限,不能做任何修改操作。...系统权限 mysql.user权限 除了MySQL root账号之外,其他任何账号对mysql.user的表有修改权限,会带来安全风险:账号密码被修改和认证插件修改。 修改账号密码 ?

83310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL 云数据库测评——开发者的“数据小保姆”,给项目一个稳定的“家”

    对于我这种常常“误操作”的开发者来说,简直是救命稻草!  以前用本地数据库的时候,总会担心一不小心删错表、删错数据,真是天天提心吊胆。现在好了,有了自动备份功能,再也不怕“毁灭性失误”了!...用户数据、订单数据、商品查询统统拿捏得住,访问速度表现得相当稳!3. 灵活的弹性扩容——从小项目到大规模都能Hold住  我喜欢 MySQL 云数据库的另一个原因是它的弹性扩容功能。...创建数据库双十一购买后进入腾讯云控制台,选择创建 MySQL 实例,选择数据库版本和配置。创建完成后可以在控制台上设置访问权限,包括用户名和密码等。2....连接数据库MySQL 云数据库支持公网和内网访问,可以使用 MySQL Workbench 等客户端连接数据库。也可以通过 API 接口在应用中调用数据库,非常方便。...为保证安全,建议仅开启必要的访问权限,防止数据库被恶意访问。3. 管理与备份设置自动备份策略,可以选择每日或每周自动备份,还支持手动备份。

    21521

    【Linux】文件权限的理解

    3.4 有和没有权限是什么区别 例如我现在是一个文件的拥有者,但我当前是没有任何权限的,所以即便这个文件是我的,但是很遗憾,你无法读取这个文件,权限拒绝,因为权限就是来约束普通人的,除非你是一个root...譬如下面的wyn和wyn1的用户家目录只有user拥有rwx的权限,所属组和other没有任何权限。...,但现在我想要以wyn的身份向wyn1文件中写入一些东西时,这就不允许了,因为wyn1这个文件对other这样的角色,只开放了r权限,没有开放w和x权限,所以wyn是不可以写入的,正如bash返回给我们的指令...但是wyn现在很不爽,喵的你个wyn1文件就给你自己和root所有权限开放,我作为wyn只能读取这个文件,凭什么?然后一气之下,wyn直接删除了用户wyn1的文件,为什么能删呢?...public目录下像删除谁就删除 谁,无论是删自己的文件,还是删别人的文件,没有任何权限约束,想怎么删就怎么删。

    1.6K30

    谈谈删库跑路这点儿事

    以我的经验推测,一定是生产环境的主备数据库都被删库了!并且大概率应该是做了rm -rf类型的极端操作。不用怀疑就是传说中的删库跑路!当然影响是产生了,人肯定跑不了!...对这样的公司来说,责备团队没做好权限管理就是正确的废话。 (公众号回复 666,带你入圈) 02 防删库指南 除了微盟这次安全事故,关于删库跑路,一直是互联网的黑传说。...IT界有一个老梗,某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了…… 再假设一种情况,如果在服务器维护的时候不小心执行了 rm -rf 命令……现在整台服务器被删光了肿么办???...对于中小公司来说,想把权限做完善做复杂,基本没有可能!想依赖运维人员本身素质和心理状态,那就是靠天吃饭! 中小公司防删库真正的答案是:做好备份!做好最小程度权限管理!...我谈谈中小厂怎么做好最小程度权限管理。 数据库操作权限和备份权限分离 DBA负责日常主从库的管理和维护。运维负责备份数据的保存。采用全量和增量备份的方式。

    93410

    从微盟36小时故障,谈谈数据安全这点事

    以我的经验推测,一定是生产环境的主备数据库都被删库了!并且大概率应该是做了rm -rf类型的极端操作。不用怀疑就是传说中的删库跑路!当然影响是产生了,人肯定跑不了!...对这样的公司来说,责备团队没做好权限管理就是正确的废话。 02 防删库指南 除了微盟这次安全事故,关于删库跑路,一直是互联网的黑传说。...IT界有一个老梗,某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了…… 再假设一种情况,如果在服务器维护的时候不小心执行了 rm -rf 命令……现在整台服务器被删光了肿么办???...对于中小公司来说,想把权限做完善做复杂,基本没有可能!想依赖运维人员本身素质和心理状态,那就是靠天吃饭! 中小公司防删库真正的答案是:做好备份!做好最小程度权限管理!...我谈谈中小厂怎么做好最小程度权限管理。 数据库操作权限和备份权限分离 DBA负责日常主从库的管理和维护。运维负责备份数据的保存。采用全量和增量备份的方式。

    57720

    从微盟36小时故障,谈谈数据安全这点事

    以我的经验推测,一定是生产环境的主备数据库都被删库了!并且大概率应该是做了rm -rf类型的极端操作。不用怀疑就是传说中的删库跑路!当然影响是产生了,人肯定跑不了!...对这样的公司来说,责备团队没做好权限管理就是正确的废话。 02 防删库指南 除了微盟这次安全事故,关于删库跑路,一直是互联网的黑传说。...IT界有一个老梗,某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了…… 再假设一种情况,如果在服务器维护的时候不小心执行了 rm -rf 命令……现在整台服务器被删光了肿么办???...对于中小公司来说,想把权限做完善做复杂,基本没有可能!想依赖运维人员本身素质和心理状态,那就是靠天吃饭! 中小公司防删库真正的答案是:做好备份!做好最小程度权限管理!...我谈谈中小厂怎么做好最小程度权限管理。 数据库操作权限和备份权限分离 DBA负责日常主从库的管理和维护。运维负责备份数据的保存。采用全量和增量备份的方式。

    69830

    浅谈MySQL数据库的Web安全问题 转

    比如通过防火墙控制,通过系统的用户控制,通过Web应用的控制等。 想说的是,任何一个节点都不是单独存在的。 场景 1、确保应用本身安全。 2、控制系统用户对数据库的访问权限。...3、控制数据库用户对数据库的访问权限。 4、确保数据库敏感数据的安全。 5、确保数据库整个数据的完整性。 6、规范日常运维操作 7、合理的划分业务。...权限:允许修改表结构,允许新增和修改表,不允许删除表,不允许删库。场景:产品要发布的时候才可以使用,通过升级sql方式执行。 4、..... 加密敏感信息 要使用md5,sha等算法加密。...保证数据的完整性 1、解决单点故障。主从,主主。 2、需要备份与还原。 规范日常操作 1、如果没有特殊需求,应该使用最小的用户。比如只使用查看的用户。...优化sql 这个也非常重要,往往就是因为不重要sql的优化,所以数据库对应的服务器资源吃满不提供服务。 验证方法 通过不同的账号操作,判断有没有对应的权限。

    88520

    我删库跑路失败了

    但是,即使养成了好习惯,有时候可能也会疏忽,不小心打出了 rm 命令,意外删除了文件。...trash 除了自己手动编写回收站脚本外,还可以使用现成的开源项目 trash,Mac 用户可以直接用一行命令安装,就可以愉快地使用了。...项目地址:https://github.com/ali-rantakari/trash 权限管理 以上的方式对于个人服务器用户来说,一般就足够了,但如果是团队开发,多人同时在一台服务器上操作,就很难说谁突然删文件跑路了对吧...修改文件权限 最直接的方式,直接用 chmod 命令修改指定文件的读、写、执行权限,比如下列命令: chmod 700 file.txt 作用是设置仅创建该文件的用户可读写,其他用户无权访问。...如果给了一个普通用户超级管理员的身份,他将能做任何事情,这是非常危险的啊! 所以可以使用 visudo 命令,修改普通用户使用 sudo 命令时的权限。

    1.1K51

    运维|MySQL 数据库被黑,心力交瘁

    前一阵有一个测试用的 MySQL 数据库被黑了,删库勒索的那种,这里记录一下事情经过,给自己也敲个警钟。...任何与付款无关的邮件都将被忽略! 事情没我想象的简单!能把库里的表都删了,数据库和服务器的权限怕是都被拿到了。...AK,删除了被创建的子账号,但服务器应该已经被渗透了; 然后就是数据库字段被篡改,估计是一方面把服务器资源作为肉鸡继续扩散攻击其它人,另一方面作为诱饵,监控处理动作; 最后就是删库勒索了。...整个服务器和数据库的权限应该都不安全了,所以我先采取了以下措施: 检查服务器安全组规则,发现被加入了允许公网访问 3306 和所有端口的记录,将其删除; 检查服务器上的用户,发现多了一个用户 guest...; 0x04 小结 以上的步骤的操作过程,远没有看起来那么简单,实际耗费了我挺长时间。

    31930

    员工写了个比删库更可怕的 Bug!

    大家好,我是鱼皮,今天是公司没破产的第 102 天。 想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。 可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!...一般这两件事情是同时执行的,由于我知道怎么能够判定哪些用户本来是 VIP(比如通过 VIP 信息)、而且程序又有详细的日志,所以第一时间是让员工先把 user 表的所有角色设置为普通用户权限,防止有人继续利用管理员权限去做一些不好的事情...有很多种恢复策略,我优先选择了逻辑最简单的策略:直接更新用户 updateTime > '2023-07-20 10:00:00' 的数据,根据 id 点对点覆盖除了 userRole 之外的数据列;如果没有对应的...之后,我这边又手动做了一次全量备份,并且思考了一下还有没有遗漏的问题,才恢复上线。...1)控制操作权限 为了防止用户执行 update、delete 操作时不小心漏掉了 where 条件、直接更新全量数据,企业中一般是会禁止不带 where 条件的修改操作的。

    38520

    我这几年踩过的十个坑,每一条都是血泪教训

    ” 我维护了60多台服务器,理论上,我把他们分成了多个组,每个组部署不同功能的程序。可是有一天,当我要找某个程序的时候,我发现它不在它应该在的那个组中的任何一台服务器上面。...三、随意给出不重要的数据库删除权限 “组员:老板,我刚刚不小心把 xx 表删了。我本来想删除我电脑上的测试环境,没注意到我在操作线上环境,不小心把线上环境的这个表给删了。...” 我一直认为,我们组的工程师都非常有职业道德,不会做出删库跑路的事情。而且这个环境保存的数据都是可以公开的,不怕被窃取。直到有一天一个下属来跟我说他不小心删了一个保存重要配置数据的表。...收紧权限,对于保存爬虫数据的库而言,即使里面的数据可以随意被组员查看,也不能随意给出删除权限给组员。现在我们的爬虫库只有增加、查询、更新的权限,没有删除权限。...MySQL 虽然死板,但是用数据库的机制来约束,可以保证 ETL 程序读到的数据,字段和格式始终如一。程序比人可靠。 五、大量报警 “一天收到几千封报警邮件。于是我一封都没有去看。

    88810

    Mycat - 实现数据库的读写分离与高可用

    前言   开心一刻     上语文课,不小心睡着了,坐在边上的同桌突然叫醒了我,并小声说道:“读课文第三段”。我立马起身大声读了起来。...mysql主从实现   Mycat不负责任何的数据同步问题,mysql的主从复制还得从mysql层面来实现;如果没有实现mysql的主从复制,后文就都成 ? 了。   ...,root:123456和user:user(在server.xml中),user账号只有只读权限。       ...示例中我手动的将slave中的王五改成了王五_1,是为了更好的展示查询请求是走的master还是slave,真实情况是不会出现这种情况的。     ...当切换完成之后,就可以正常操作mycat了,而我们的操作方式无需做任何改变(应用无需做任何变化,仍按之前的方式访问mycat即可)。

    81040

    10条Linux命令锦囊,防你牢底坐穿

    任何不保留此声明的转载都是抄袭。 每一年,都会有删库跑路的新闻。现实中,删库容易,跑路难,从业者充满了泪水。 这些动作里面,并不总是存在主观的恶意,而是这些命令太危险了。...另外,在脚本中,rm的坑也不小,比如: rm -rf ${p}/* 如果p变量没有设置,就会是灾难性的后果,命令等同于rm -rf /。...所以rm还有另外一条谨言:在脚本中执行rm的时候,请先判断相关的变量是否为空。 3. chmod命令 chmod是更改目录和文件权限用的,如果处理不当,会产生和rm一样的后果。...如果你想要向文件中追加 内容,会使用 cat >> file的方式,如果你不小心少输入了一个>,那么不好意思,你的文件内容就丢失了。...当发出没有WHERE或LIMIT关键字的UPDATE或DELETE时,mysql程序拒绝执行。

    47320

    静默错误:为什么看了那么多灾难,还是过不好备份这一关?

    即便没有任何错误,数据也需要定期进行读取,以确保数据无误,在几年前,我遇到过一起案例,Oracle 数据库莫名的发生了一定批量的数据损坏,存储上没有任何错误,但是数据库端大量的分裂块,存储没有检测到错误...AWS 用户中断31小时仅恢复6周数据) 2017-04-05,位于纽约的云服务商 Digital Ocean 遭遇了一次长达4小时56分钟的停机事故,事故的原因是主数据库被删除了(primary database...had been deleted),由于配置错误,本应指向测试环境的任务被指向了生产环境,测试任务包含的环境初始化过程删除了主生产数据库。...(不以规矩不成方圆:Digital Ocean也删除了他们的数据库) 2017年6月 位于荷兰海牙的一家云主机商 verelox.com, 一名前任管理员删光了该公司所有客户的数据,并且擦除了大多数服务器上面的内容...针对Oracle数据库,一套 ADG 环境是最简单的数据保障,备库加上备份,就能够防范硬件故障这个层面的灾难性数据损失,MySQL 通过主备同样可以实现类似的架构。

    1.2K40

    MySQL常见安全小贴士和一些安全注意点

    非授权用户能够以某种方式获得对特权用户账户(例如root) 的访问权限么,他们可以利用类似tcpdump的工具嗅探发往MySQL的网络流并过滤数据包。这些数据包是会包含查询和数据的。...其实,我并非提倡通过关闭用户权限来欺瞒你的客户,我所要阐释的是要对用户的工作模式加以正确的分析。有些事情可以通过简单的质量审计就可以非常轻易的完成。...4.除了root用户外的其他任何用户不允许访问mysql主数据库中的user表; 加密后存放在user表中的加密后的用户密码一旦泄露,其他人可以随意用该用户名/密码相应的数据库; 5.用grant和revoke...以普通用户来启动mysql数据库服务; 15.不使用到表的联结符号,选用的参数 --skip-symbolic-links; 16.确信在mysql目录中只有启动数据库服务的用户才可以对文件有读和写的权限...'@'host_name';若使用--skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用mysqladmin flush-privileges或mysqladmin reload

    62960

    记一次有趣的渗透测试

    本文作者:Damian 最近在做渗透测试的练习中遇到一个比较有意思的站点,在此记录下来,希望能给向我一样刚入安全圈不久的萌新提供一些基本思路吧。...这里解释一些,这个文件可能是网站管理员上传到服务器去检测 WebShell 后门的(在我发现的前一个星期上传的),估计忘记删除了。 直接试试快速扫描,发现是一个检测后门特征的扫描模式。 ?...好了,接下来,可以直接在管理员表添加用户了,并将权限设置为最高,也就是超级管理员权限。 进入后台 ?...在后面加上 php 的后缀名,成功解析,拿到 Webshell ? PS 简单的看了一下服务器的目录上,发现了几十家网站的源代码,管理员也太不小心了好吧。。...Webshell 已删 本篇文章就到此为止,希望自己以后多多记录,多多和大家分享。

    1.2K00

    静默错误:为什么看了那么多灾难,还是过不好备份这一关?

    即便没有任何错误,数据也需要定期进行读取,以确保数据无误,在几年前,我遇到过一起案例,Oracle 数据库莫名的发生了一定批量的数据损坏,存储上没有任何错误,但是数据库端大量的分裂块,存储没有检测到错误...AWS 用户中断31小时仅恢复6周数据) 2017-04-05,位于纽约的云服务商 Digital Ocean 遭遇了一次长达4小时56分钟的停机事故,事故的原因是主数据库被删除了(primary database...had been deleted),由于配置错误,本应指向测试环境的任务被指向了生产环境,测试任务包含的环境初始化过程删除了主生产数据库。...(不以规矩不成方圆:Digital Ocean也删除了他们的数据库) 2017年6月 位于荷兰海牙的一家云主机商 verelox.com, 一名前任管理员删光了该公司所有客户的数据,并且擦除了大多数服务器上面的内容...针对Oracle数据库,一套 ADG 环境是最简单的数据保障,备库加上备份,就能够防范硬件故障这个层面的灾难性数据损失,MySQL 通过主备同样可以实现类似的架构。

    2.1K10

    直播回顾 | 丁奇剖析数据库性能

    QA环节 Q1:讲讲微盟的删库事件? A1:我觉得只是微盟这次运气不好,碰到这个事情比较严重。说回我们在腾讯运营的服务过程中,经常碰到这种客户,需要回滚,恢复误删的数据。...其实实际上云会考虑更多的点,腾讯云这边假设你真的有操作数据库、生产库的权限,那么或者你可以把库删掉,但是备份是删不了的。...那我们在内部的工程师会不会有这样的权限?也没有。其实我们是分开的,可以管理生产服务器的工程师访问不了备份。...然后选主等就可以在底层自己做,实际上有在做像比如说目前在研发中的TDSQL3.0。我们现在在线上使用的TDSQL2.0其实就是标准的分库分表的方案。 Q6:可以教教调试MySQL?...A14:我每次说到这个就要特别讲一下,我们这个图里面,说的双主其实是,你在任何一个时刻一边都是Readonly的,状态1的时候B节点是Readonly然后状态2的时候A是Readonly,这种就是比较常见的做法

    75020

    Linux下的mysql用户管理,常用sql语句,mysql数据库备份恢复

    搭建一个网站时,后台的应用程序会连接mysql,连接mysql就需要一个用户密码,但是不能让它使用root用户,root用户的权限太高不安全,所以需要创建一个用户,并授予这个用户一些权限,你可以具体的授予这些用户的某些权限...常识:这种grant语句是不会记录到命令历史里的,因为不安全。 现在就创建好一个user1用户了,因为创建这个用户的时候是指定了来源IP的,所以在登录这个用户时需要使用-h指定IP: ?...我们再创建一个用户,给这个用户授予具体对某个库的操作权限: ? 现在我们查看一下user2的权限: ? 可以看到user2具体能执行的sql语句,和可以操作哪个库的哪些表。...谨记一点,drop和truncate、delete等语句尽量不要使用,如果需要使用的话记得提前备份数据,并且使用时万分小心看仔细了别删错数据了,如果不小心误操作把一个线上跑的数据库给删了的话,而且又没有备份可恢复...备份表,除了备份整个数据库之外,还能针对数据库中的某个表进行备份,指定库名和表名即可,语法如下: mysqldump -uroot -p123456 mysql user > /tmp/user.sql

    2.4K30
    领券