使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:
1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。
2.用set password语句来修改用户的密码,三个步骤,先“mysql -u root”登陆数据库系统,然后“mysql> update mysql.user set password=password(’newpwd’)”,最后执行“flush privileges”就可以了。
3.需要提防的攻击有,防偷听、篡改、回放、拒绝服务等,不涉及可用性和容错方面。对所有的连接、查询、其他操作使用基于ACL即访问控制列表的安全措施来完成。也有一些对SSL连接的支持。
4.除了root用户外的其他任何用户不允许访问MySQL主数据库中的user表;
加密后存放在user表中的加密后的用户密码一旦泄露,其他人可以随意用该用户名/密码相应的数据库;
5.用grant和revoke语句来进行用户访问控制的工作;
6.不使用明文密码,而是使用md5()和sha1()等单向的哈系函数来设置密码;
7.不选用字典中的字来做密码;
8.采用防火墙来去掉50%的外部危险,让数据库系统躲在防火墙后面工作,或放置在DMZ区域中;
9.从因特网上用nmap来扫描3306端口,也可用telnet server_host 3306的方法测试,不能允许从非信任网络中访问数据库服务器的3306号TCP端口,因此需要在防火墙或路由器上做设定;
10.为了防止被恶意传入非法参数,例如where ID=234,别人却输入where ID=234 OR 1=1导致全部显示,所以在web的表单中使用”或”"来用字符串,在动态URL中加入%22代表双引号、%23代表井号、%27代表单引号;传递未检 查过的值给mysql数据库是非常危险的;
11.在传递数据给MySQL时检查一下大小;
12.应用程序需要连接到数据库应该使用一般的用户帐号,只开放少数必要的权限给该用户;
13.在各编程接口(C C++ PHP Perl Java JDBC等)中使用特定‘逃脱字符’函数;
在因特网上使用mysql数据库时一定少用传输明文的数据,而用SSL和SSH的加密方式数据来传输;
14.学会使用tcpdump和strings工具来查看传输数据的安全性,例如tcpdump -l -i eth0 -w -src or dst port 3306 | strings。以普通用户来启动mysql数据库服务;
15.不使用到表的联结符号,选用的参数 –skip-symbolic-links;
16.确信在mysql目录中只有启动数据库服务的用户才可以对文件有读和写的权限;
17.不许将process或super权限付给非管理用户,该mysqladmin processlist可以列举出当前执行的查询文本;super权限可用于切断客户端连接、改变服务器运行参数状态、控制拷贝复制数据库的服务器;
18.file权限不付给管理员以外的用户,防止出现load data ‘/etc/passwd’到表中再用select 显示出来的问题;
19.如果不相信DNS服务公司的服务,可以在主机名称允许表中只设置IP数字地址;
20.使用max_user_connections变量来使mysqld服务进程,对一个指定帐户限定连接数;
21.grant语句也支持资源控制选项;
22.启动mysqld服务进程的安全选项开关,–local-infile=0 或1 若是0则客户端程序就无法使用local load data了,赋权的一个例子grant insert(user) on mysql.user to ‘user_name’@'host_name’;若使用–skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制;默认情况是show databases语句对所有用户开放,可以用–skip-show-databases来关闭掉。
23.碰到Error 1045(28000) Access Denied for user ‘root’@'localhost’ (Using password:NO)错误时,你需要重新设置密码,具体方法是:先用–skip-grant-tables参数启动mysqld,然后执行 mysql -u root mysql,mysql>update user set password=password(’newpassword’) where user=’root’;mysql>Flush privileges;,最后重新启动mysql就可以了。
分享到:
相关推荐
注意事项 * 在使用 mysqldump 命令时,需要指定数据库用户名和密码。 * 在使用 mysql 命令时,需要指定数据库用户名和密码。 * 在使用直接拷贝方法时,需要注意文件的属主和权限设置。 * 在使用 phpMyAdmin 工具时...
开发mysql数据库项目的注意事项
PgSQL 到 MySQL 数据库迁移步骤和注意事项 数据库迁移是数据库管理中最重要的一步骤,PgSQL 到 MySQL 数据库迁移是一种常见的迁移方式。本文档将详细介绍PgSQL 到 MySQL 数据库迁移的步骤和注意事项。 Step 1: ...
### 在Windows系统下安装两个MySQL数据库的步骤与配置 #### 安装背景及目的 在实际的应用场景中,有时我们可能需要在同一台Windows主机上安装并运行多个MySQL实例,例如进行开发测试环境分离或者实现不同项目的...
【说明.txt】这个文件可能是数据库的使用指南或者包含了一些关于数据字段、数据来源、导入步骤、注意事项等的详细说明。用户在使用数据库之前,应该先查阅这个文件,以确保正确理解和操作数据。 总结来说,"美国...
### 把MySQL数据库中的数据导入到Oracle数据库中的详细步骤与注意事项 #### 一、环境配置与需求概述 本文档旨在详细介绍如何将MySQL数据库中的数据迁移到Oracle数据库中,包括具体的环境配置、迁移流程以及可能...
总结起来,正确配置Linux下MySQL数据库的coredump涉及三个主要方面:确保coredump目录的可写性,处理seteuid()和setegid()导致的权限问题,以及设置合适的core文件大小限制。这些步骤有助于在MySQL出现问题时,获取...
本教程将详细讲解如何设置MySQL数据库的自动定时备份,包括步骤、所需工具以及注意事项。 首先,你需要了解MySQL的数据备份类型。主要有两种备份方式:全备和增量/差异备份。全备备份是指完全复制数据库的所有内容...
在安装之前,用户应当仔细阅读官方提供的文档,了解安装前的系统要求和安装过程中的注意事项。 在使用MySQL数据库时,还需要掌握基本的数据库管理知识,如SQL语法、索引优化、事务处理、数据库备份与恢复等。这些都...
本文将详细介绍MySQL数据库间共享的基本概念、配置步骤以及注意事项。 ### 基本概念 #### 复制机制 MySQL的复制机制是一种数据同步方式,允许在一个服务器(主服务器)上的数据更改被自动复制到一个或多个其他...
#### 四、注意事项 1. **异常处理**:在进行数据库操作时,必须妥善处理可能出现的`SQLException`等异常,避免程序崩溃。 2. **资源管理**:确保及时关闭所有的数据库资源,避免内存泄漏或数据库连接耗尽。 3. **...
#### 二、MySQL数据库安装前准备 在安装MySQL数据库之前,确保您的系统符合以下条件: - 操作系统:Windows 10及以上版本。 - 硬件配置:至少2GB内存,推荐4GB或以上;硬盘空间至少有5GB可用空间。 - 其他软件:确保...
- 新建一个MySQL数据库。 - 注意数据库编码的一致性,通常情况下建议使用UTF-8编码。 3. **通过ODBC进行数据迁移** - 在Navicat中右键点击新建的MySQL数据库中的表->“导入向导”。 - 选择ODBC作为数据来源。 ...
MySQL数据库访问控件是开发人员在使用Delphi或C++Builder等IDE时,与MySQL数据库进行交互的重要组件。这些控件使得程序员无需依赖BDE(Borland Database Engine)或ODBC(Open Database Connectivity),就能方便地...
Oracle 到 MySQL 的迁移步骤及各种注意事项 Oracle 到 MySQL 的迁移是一项复杂的任务,需要考虑到各种因素,例如存储过程的迁移、数据类型的转换、异常处理等。在本文中,我们将讨论 Oracle 到 MySQL 的迁移步骤及...