`

防止人为误操作MySQL数据库技巧一例

阅读更多
防止人为误操作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数据库 jsp操作mysql数据库

    PHP中基于MYSQLI类操作MYSQL数据库的实现.pdf

    PHP 中基于 MYSQLI 类操作 MYSQL 数据库的实现 ...在实践中,使用 MYSQLI 类操作 MYSQL 数据库可能会遇到一些问题,例如,如何处理查询结果、如何防止 SQL 注入漏洞等。开发者需要注意这些问题,并采取相应的解决方案。

    C++操作mysql数据库封装

    zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql数据库C++操作代码 zynq平台mysql...

    C#实现Mysql数据库操作实例(含源码)

    创建数据库连接是操作MySQL的第一步。在C#中,我们需要一个包含数据库连接信息的连接字符串,如服务器地址、数据库名、用户名和密码。例如: ```csharp string connectionString = "Server=localhost;Database=...

    C#连接操作MySQL数据库进行添加、修改、删除、查询等操作的演示

    现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。以Visual Studio 2012平台下的示例形式写下来,供以后查看。 一、新建一个Windows 窗体应用程序Test。 如下图所示: 二、...

    C#操作mysql数据库的封装类

    C#操作mysql数据库的封装类,带注释,代码完整,适合企业级开发

    MySQL数据库防止人为误操作的实例讲解

    本文就针对防止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后,...

    MySQL数据库相关知识

    教程名称:MySQL数据库相关知识课程目录:【】mysql异地数据库备份实例代码【】MySQL数据库双机热备份如何实现【】MySQL...防止人为误操作MySQL数据库技巧 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    c#操作MySQL数据库封装类

    这个"c#操作MySQL数据库封装类"很可能是为了简化数据库交互,提供一个易于使用的接口,以提高代码的可读性和可维护性。下面我们将详细讨论如何在C#中封装MySQL数据库操作类以及涉及的关键知识点。 1. **数据库连接*...

    C#连接操作MySQL数据库进行添加、修改、删除、查询、批量导入、异步处理等操作的演示代码

    现本着学习的目的,将c#访问操作MySQL数据库进行添加、删除、修改、显示等操作进行梳理。形成代码,以Visual Studio 2012平台下的示例形式写下来,供以后查看。同时实现了数据库查询,BindingSource绑定控件、...

    MYSQL数据库修复程序

    `navicat8lite_mysql_cs.exe` 文件是Navicat Lite版本的一个安装程序,特别针对MySQL数据库,并且可能包含了简体中文界面,便于中文用户操作。 在MySQL数据库中,表是存储数据的基本单元,它们可能由于多种原因而...

    h2数据导入mysql数据库(看评论酌情下载)

    h2 数据库导入 MySQL 数据库 h2 数据库导入 MySQL 数据库是指将 h2 数据库中的数据导入到 MySQL 数据库中,以便更好地存储和...h2 数据库导入 MySQL 数据库需要通过一步步的操作,以确保数据的一致性和类型的兼容性。

    “MySQL数据库”课程教学难点分析——以数据库设计为例.pdf

    本文主要讨论了 MySQL 数据库教学中的难点和解决方案,以数据库设计为例,探讨了 MySQL 数据库教学中存在的问题和挑战,旨在提高教学效率和学生学习兴趣。 一、 MySQL 服务器环境配置 MySQL 配置工具内容十分复杂...

    ASP.Net Core MVC 使用EF操作MySQL数据库完整实例

    在这个实例中,我们将深入探讨如何使用Entity Framework (EF) Core来操作MySQL数据库,这是一个强大的ORM(对象关系映射)工具,允许开发者使用C#代码来处理数据库操作,而无需编写SQL语句。 首先,`Startup.cs`是...

    MySQL数据库应用形考实验1-4全答案.zip

    MySQL数据库是一种广泛应用于Web开发和企业级数据存储的开源关系型数据库管理系统。在这个"MySQL数据库应用形考实验1-4全答案.zip"压缩包中,包含了四个关于MySQL基础操作的实验训练,涵盖了从数据库和表的创建,到...

    MySQL数据库表导出Word工具,生成数据库说明文档

    "MySQL数据库表导出Word工具"提供了一种便捷的方式,将数据库结构和内容转换为易于理解的Word文档,这对于开发、运维以及非技术背景的团队成员都非常有帮助。 首先,这个工具的主要功能是将MySQL数据库中的表结构和...

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    MYSQL数据库大进级,是非常全面的MYSQL数据库进阶学习资料!

    VB6.0连接MySQL数据库

    在信息技术领域,VB6.0(Visual Basic 6.0)是一个经典的编程语言版本,而MySQL则是一个流行的开源关系数据库管理系统。在编写应用程序时,经常会涉及到数据库的操作,比如查询、更新、删除和插入等。本文将详细地...

    浅析数据库之效能——MYSQL数据库作用与技巧.pdf

    概述:本文档旨在对MySQL数据库的效能和技巧进行浅析,涵盖了 MySQL 数据库的基本概念、数据类型、数据表、数据操作、系统管理命令等方面的知识点。 一、MySQL数据库概述 MySQL数据库是一种关系型数据库管理系统...

Global site tag (gtag.js) - Google Analytics