防止人为误操作MySQL数据库技巧一例
(本题来自老男孩培训内部学生问题,属于数据库安全技巧)
在若干年前,老男孩亲自遇到一个“命案”,老大登录数据库update一个记录,结果忘了加where,于是悲剧发生了,这使得我对MySQL的增量恢复熟练度远超过其他的知识点,同时也很在意对内的数据库安全,并且每次讲课讲到此处,都会给学生讲这个领导的故事。
1、mysql帮助说明
[oldboy_c64 ~]# mysql --help|grep dummy
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
i-am-a-dummy FALSE
在mysql命令加上选项-U后,当发出没有WHERE或LIMIT关键字的UPDATE或DELETE时,mysql程序就会拒绝执行
2、指定-U登录测试
[oldboy_c64 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -U
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.5.32-log MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> delete from oldboy.student;
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
mysql> quit
Bye
提示:不加条件无法删除,目的达到。
3、做成别名防止老大和DBA误操作
[oldboy_c64 ~]# alias mysql='mysql -U'
[oldboy_c64 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.5.32-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> delete from oldboy.student;
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
mysql> delete from oldboy.student where Sno=5;
Query OK, 1 row affected (0.02 sec)
mysql> quit
Bye
[oldboy_c64 ~]# echo "alias mysql='mysql -U'" >>/etc/profile
[oldboy_c64 ~]# . /etc/profile
[oldboy_c64 ~]# tail -1 /etc/profile
alias mysql='mysql -U'
结论:
在mysql命令加上选项-U后,当发出没有WHERE或LIMIT关键字的UPDATE或DELETE时,mysql程序拒绝执行
原文链接:http://oldboy.blog.51cto.com/2561410/1321061
http://www.sql8.net
分享到:
相关推荐
jsp操作mysql数据库 jsp操作mysql数据库 jsp操作mysql数据库 jsp操作mysql数据库 jsp操作mysql数据库
zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql...
现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。以Visual Studio 2012平台下的示例形式写下来,供以后查看。 一、新建一个Windows 窗体应用程序Test。 如下图所示: 二、...
本文就针对防止MySQL数据库误操作的方法做出如下详解: 1、mysql帮助说明 # mysql --help|grep dummy -U, --i-am-a-dummy Synonym for option --safe-updates, -U. i-am-a-dummy FALSE 在mysql命令加上选项-U后,...
主要介绍了flask 框架操作MySQL数据库,结合实例形式详细分析了flask框架操作MySQL数据库的连接、表格创建、数据增删改查等相关使用技巧,需要的朋友可以参考下
教程名称:MySQL数据库相关知识课程目录:【】mysql异地数据库备份实例代码【】MySQL数据库双机热备份如何实现【】MySQL...防止人为误操作MySQL数据库技巧 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
MySQL数据库使用技巧三例.pdf
现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。形成代码,以Visual Studio 2012平台下的示例形式写下来,供以后查看。同时实现了数据库查询,BindingSource绑定控件、...
C#操作mysql数据库的封装类,带注释,代码完整,适合企业级开发
jsp操作mysql数据库的blob字段,实现: 1、将磁盘文件存入mysql数据库; 2、将mysql数据库中存入的文件,读出来,输出给浏览器。
很详细很有用的PHP操作mysql数据库教程。
ASP.Net Core MVC 使用EF操作MySQL数据库完整实例。包含增删改查等完整功能,下载后创建一个MySQL数据库即可以使用
MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!
MySQL数据库操作.ppt MySQL数据库操作.ppt
C#winform操作mysql数据库的dll 引用后即可远程连接数据库增删改查
“MySQL数据库”课程教学难点分析——以数据库设计为例.pdf
MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库MySql数据库
linux下c语言操作mysql数据库,包括数据库的增删查找,使用mysql库进行操作
mysql数据库操作,增删改查都可以的,比较有用的,希望对你们有所帮助