在MySQL中阻止UPDATE, DELETE 语句的执行,在没有添加WHERE条件

2019-03-13 09:45:26

sql_safe_updates 貌似就能禁止删除和更新操作

如果在生产环境中使用UPDATE,DELETE语句操作数据,此时如果忘记携带本应该添加的WHERE条件,后果可能不堪设想。在正常的业务情况,也不会更新或者删除所有的记录


1. 阻止update设置(sql_safe_updates)


sql_safe_updates这个MySQL自带的参数就可以完美的解决我们的问题,并且该参数是可以在线变更的哦~当该参数开启的情况下,你必须要在UPDATE语句后携带WHERE条件,否则就会报出ERROR。。


# sql_safe_updates=0,即未开启

root@127.0.0.1 : test 07:58:34> set sql_safe_updates=0;

Query OK, 0 rows affected (0.00 sec)

 

root@127.0.0.1 : test 07:58:43> show variables like 'sql_safe_updates';

+------------------+-------+

| Variable_name    | Value |

+------------------+-------+

| sql_safe_updates | OFF   |

+------------------+-------+

1 row in set (0.00 sec)

 

# sql_safe_updates=1,即开启

root@127.0.0.1 : test 08:00:00> set sql_safe_updates=1;

Query OK, 0 rows affected (0.00 sec)

 

root@127.0.0.1 : test 08:00:11> show variables like 'sql_safe_updates';

+------------------+-------+

| Variable_name    | Value |

+------------------+-------+

| sql_safe_updates | ON    |

+------------------+-------+

1 row in set (0.00 sec)

root@127.0.0.1 : test 08:00:27> update t set aaa='aaa';

ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

如上属的例子所示,当参数sql_safe_updates开启的时候,UPDATE语句不携带WHERE条件将会爆出一个错误。




2. 阻止delete设置


直接限制mysql删除

启动MySQL的时候加上参数 -U

-U, --safe-updates  Only allow UPDATE and DELETE that uses keys.

他的作用是防止执行delete的时候没带有条件语句,如果没加上where则语句不执行。

--------------------- 

作者:shgh_2004 

来源:CSDN 

原文:https://blog.csdn.net/shgh_2004/article/details/53150276 

版权声明:本文为博主原创文章,转载请附上博文链接!


  • 2018-04-10 14:59:59

    JS实现数组去重方法总结(六种方法)

    这篇文章给大家总结下JS实现数组去重方法(六种方法),面试中也经常会遇到这个问题。文中给大家引申的还有合并数组并去重的方法,感兴趣的朋友跟随脚本之家小编一起学习吧

  • 2018-04-13 17:28:33

    jsoup 使用总结4--高级用法之 script js 脚本

    大部分时候,我们使用jsoup解析网页的时候,都是直接找到某一类元素,或者按某种selector查询;具体使用方法可以参考jsoup官网文档 那么你有没有实际操作过,查找script js 脚本呢,因为很多时候页面的内容是根据js动态生成的,或者数据是动态变更;那么这个时候,我们只是获取html页面中script js脚本之间的内容。

  • 2018-04-15 12:56:05

    WebView控件之WebSettings各种配置方法源码总结

    WebSettings用于管理WebView状态配置,当WebView第一次被创建时,WebView包含着一个默认的配置,这些默认的配置将通过get方法返回,通过WebView中的getSettings方法获得一个WebSettings对象,如果一个WebView被销毁,在WebSettings中所有回调方法将抛出IllegalStateException异常。

  • 2018-04-16 07:28:10

    android点击事件,第一次无效,第二次才响应的问题

    今天碰到的问题,android的标题栏一个回退button,每次进入的时候第一次点击无效,一直到第二次点击时才响应,然后把代码copy到系统的回退按钮里面,结果每次都能响应,后面想了想,应该跟焦点有关系

  • 2018-04-18 15:56:00

    linux下如何实现mysql数据库每天自动备份定时备份

    备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!

  • 2018-04-18 20:44:19

    $(...).live is not a function

    jquery中的live()方法在jquery1.9及以上的版本中已被废弃了,如果使用,会抛出TypeError: $(...).live is not a function错误。