关于加强MYSQL安全的几点建议

通常我们在连接MySQL的服务器时,要使用到口令。这个口令在网络上传输的时候是加过密的。可是其它的内容都是以明文的方式来进行传输的。

当然如果担心这个不安全的话,可以使用压缩协议(MySQL3.22和以上版本),这样可以让其它的内容不那么容易就被看到。甚至为了让它更加安全,可以考虑下安装ssh。装上它之后,你就能在MySQL服务器与MySQL客户之间,搭建一条加密的TCP/IP连接。
为了使你的MySQL系统更安全,强烈建议考虑以下建议:

1.为每个MySQL用户使用口令。如果你不加设口令的话,其他人可以通过mysql --user other_user database的方式访问你的数据库,在使用MySQL进行检测的时候系统也会给你相应的警告信息。

2.通过mysql_install_db脚本建立mySQL的授权表,你可以通过mysql -u root进行测试,正确的情况下应该不会发生错误。更改root的密码:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD( ew_password)
WHERE user= root;
mysql> FLUSH PRIVILEGES;

3.不要用root方式启动MySQL服务。MySQL可以以任何用户启动。你可以通过添加一个新用户的方式来启动数据库服务(也就是mysql低权限运行)。这也不会对系统造成任何影响,因为MySQL的用户和Unix的用户根本来说就使不同的。

4.如果你把Unix root用户口令放在了mysql.server脚本中,那么必须确保这个脚本只对root是可读的。检查那个运行mysqld的用户,确保这个用户是唯一在数据库目录下有读/写权限的用户。

5.不要把process权限给任何人。mysqladmin processlist的输出会显示出当前正在执行的查询正文,这时如果有另外的用户发出一个UPDATE user SET password=PASSWORD( ot_secure)查询,则会被有process权限的用户看得到查询。mysqld为有process权限的用户保留一个额外的连接, 以便一个MySQL root用户能登录并检查,即使所有的正常连接在使用。

6.不要把file权限给所有的用户。有这权限的用户能在拥有mysqld守护进程权限的文件系统那里写一个文件! file权限也可以被用来读取任何作为运行服务器的Unix用户可存取的文件。这可能被利用,例如,通过使用LOAD DATA装载"/etc/passwd"进一个数据库表,然后它能用SELECT被读入。

7. 如果你不信任你的DNS,你应当使用IP来取代主机名。在任何情况下,你应该非常小心地使用包含通配符的主机名!
相信通过以上的设置过后,你的Mysql主机应该已经相对比较安全,不是那么轻松就会让人攻陷的。

(0)

相关推荐

  • MySQL数据库安全配置介绍第1/2页

    1.前言: MySQL数据库是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统.它具有功能强.使用简便.管理方便.运行速度快.安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,特别是与PHP更是黄金组合,运用十分广泛.MySQL数据库的安全配置也是很有必要的,现在的MySQL数据库中信息的安全性常常受到威胁,故安全配置必不可少. 由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进

  • MySQL的安全问题从安装开始说起

    当你安装 MySQL 完后.会有个提示: [root@localhost Desktop]# rpm -ivh MySQL-server-5.5.28-1.rhel5.i386.rpmPreparing... ########################################### [100%]1:MySQL-server ########################################### [100%] PLEASE REMEMBER TO SET A PASS

  • MySQL数据库安全设置与注意事项小结

    当你第一次在机器上安装MySQL时,mysql数据库中的授权表是这样初始化的: 你可以从本地主机(localhost)上以root连接而不指定口令.root用户拥有所有权限(包括管理权限) 并可做任何事情.(顺便说明,MySQL超级用户与Unix超级用户有相同的名字,他们彼此毫无关系.) 匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库.匿名用户可对数据库做任 何事情,但无管理权限. 从本地主机多服务器的连接是允许的,不管连接的用户使用一个localhost主机名或真

  • MySQL数据库中的安全设置方案

    随着网络的普及,基于网络的应用也越来越多.网络数据库就是其中之一.通过一台或几台服务器可以为很多客户提供服务,这种方式给人们带来了很多方 便,但也给不法分子造成了可乘之机.由于数据都是通过网络传输的,这就可以在传输的过程中被截获,或者通过非常手段进入数据库.由于以上原因,数据库安全 就显得十分重要.因此,本文就以上问题讨论了MySQL数据库在网络安全方面的一些功能. 帐户安全 帐户是MySQL最简单的安全措施.每一帐户都由用户名.密码以及位置(一般由服务器名.IP或通配符)组成.如用户john从

  • Win2003服务器安装及设置教程 MySQL安全设置图文教程

    为什么要将MySQL数据库必须运行在"普通用户"的状态下呢?与MSSQL SERVER一样,因为如果使用了"超级管理员"或者"本地系统用户"来运行"MySQL数据库",就会被黑客利用,利用SYSTEM用户权限入侵服务器.因此,为了服务器安全,务必将MySQL运行在"普通用户"的状态下.同时,要对硬盘的权限做好对应的权限设置MySQL才能正常运行. 建立普通用户:单击"开始"-"

  • 浅析MySQL的注入安全问题

    如果把用户输入到一个网页,将其插入到MySQL数据库,有机会离开了发生安全问题被称为SQL注入敞开.这一课将教如何帮助防止这种情况的发生,并帮助保护脚本和MySQL语句. 注入通常发生在处理一个用户输入,如他们的名字,而不是一个名字,他们给一个会在不知不觉中你的数据库上运行的MySQL语句. 永远不要信任用户提供的数据,只能验证后处理这些数据,作为一项规则,这是通过模式匹配.在下面的例子中,用户名被限制为字母数字字符加下划线的长度在8到20个字符之间 - 根据需要修改这些规则. if (preg

  • MySQL安全策略(MySQL安全注意事项)

    导读 MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全? 数据安全如果只靠MySQL应用层面显然是不够的,是需要在多个层面来保护的,包括网络.系统.逻辑应用层.数据库层等. 下面是我们可借鉴的一些安全策略. 1.网络.系统层面 在这个层面可以做很多的事情,我们可以把这些安全要求作为新系统安装时的标准要求,放到自动化装机方案中. 把运行MySQL的服务器放在内网中,不要启用公网: 迫不得已启用公网的话,修改sshd端口到10000以上: 设置防

  • Ubuntu上安装MySQL+问题处理+安全优化

    0.说明 当然,MySQL的安装方法多种多样,在Ubuntu上,你可以采用apt-get的方式安装,这样的好处是:快速方便.基本上,它会帮你解决所有的函数库依赖问题,正常情况下,只要apt-get执行完成,那么MySQL也就可以使用了. 但我更倾向于使用源码的方式来安装MySQL,原因也很简单:除了有详细的官方文档外,你还可以非常清楚地知道你自己在做什么,这点在以后MySQL运行出现问题时将会有很大的帮助! 但即便是按照官方文档来安装,你也会遇到各种各样的问题,这里,我将呈现一个完整的过程给大家

  • MySQL数据库安全之防止撰改的方法

    MySQL数据库可以通过触发器,使之无法修改某些字段的数据,同时又不会影响修改其他字段. DROP TRIGGER IF EXISTS `members`; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=''; DELIMITER // CREATE TRIGGER `members` BEFORE UPDATE ON `members` FOR EACH ROW BEGIN set new.name = old.name; set new.cellphone =

  • 新安装的MySQL数据库需要注意的安全知识

    在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权 表的mysql数据库和初始权限.在Windows上,运行分发中的Setup程序初始化数据目录和mysql数据库.假 定服务器也在运行. 当你第一次在机器上安装MySQL时,mysql数据库中的授权表是这样初始化的: 你可以从本地主机(localhost)上以root连接而不指定口令.root用户拥有所有权限(包括管理权限) 并可做任何事情.(顺便说明,MySQL超级用户与U

  • MySQL安全设置图文教程

    复制代码 代码如下: 解压mysql到d:\mysql,编辑my.ini [mysqld] port=3306 basedir="D:/mysql/" datadir="D:/mysql/Data/" tmpdir="d:/mysql/tmp/" default-character-set=utf8 default-storage-engine=MYISAM skip-bdb skip-innodb skip-locking key_buffer

随机推荐