Mysql默认设置的危险性分析第2/2页

 更新时间:2008年09月30日 21:49:04   作者:  
一.mysql默认的授权表二.缺乏日志能力 三.my.ini文件泄露口令 四.服务默认被绑定全部的网络接口上 五.默认安装路径下的mysql目录权限

更好的做法是,对远程主机的连接,指定为特定的
修改host中的%为允许连接的主机,比如:
192.168.0.% 允许一个特定的子网
www.jb51.net 允许一个特定的主机
帐号默认的名字也是担心的问题。有可能导致被暴力破解
update user set user=‘localadmin‘ where host=‘localhost‘;
update user set user=‘remoteadmin‘ where host=‘%‘;
最后的user表看起来像是这个样子
mysql> select host,user,password,Delete_priv from user;
+-----------+-------------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+-------------+------------------+-------------+
| localhost | localadmin | 67457e226a1a15bd | Y |
| % | remoteadmin | 77c590fa148bc9fb | Y |
+-----------+-------------+------------------+-------------+
更为详细的资料,请去参考晏子的《MySQL中文参考手册》。随便那都有下
二.缺乏日志能力
mysql安装完成以后,会在%SystemRoot%目录下产生my.ini的设置文件
默认的内容如下:
——————————————————————————————
basedir=C:/mysql
#bind-address=192.168.0.1
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-nt.exe
user=root
password=root
———————————————————————————————
注意log#=这个
它没有被定义,且被注销掉了。
更改为一个适合的路径,比如:
log=c:/mysql/logs/mysql.log
三.my.ini文件泄露口令
我们看到my.ini最后,有这两句
user=root
password=root
如果,你安装完成时,使用了mysql所提供的快速设置功能,(较新的版本)你的帐号和口令将被写到my.ini文件中。
这也是mysql写到启动组里的winmysqladmin.exe工具,运行时需要读取的。它提供的mysql服务
的一些监视功能。这样winmysqladmin.exe才能获得mysql服务的状态信息。
其实,这个也不算漏洞,我们看看my.ini默认的权限,它可以被user组用户读取。
从而导致口令被泄露
解决方法:
从新设定my.ini文件的权限.
从新设定帐号及口令
不使用快速设置
四.服务默认被绑定全部的网络接口上
服务被绑定到了所有的网络接口上,比如,你只需要一个运行在内网的mysql服务,但是你的机器有
外网的接口,mysql也会被绑定上,从而带来一些不必要的麻烦和威胁。
在my.ini里的这句
#bind-address=192.168.0.1
它默认被注销掉了
应该打开它
如果,只是本地使用,更改为
bind-address=127.0.0.1
如果是其它情况,应该选者一个合适的网络接口
五.默认安装路径下的mysql目录权限
mysql默认的安装路径为c:\mysql,基本上都难得改,要改的话也是麻烦,还要去改my.ini。
但,这样就有个问题
通常c:\的权限是everyone组-所有的权限。这是默认的,由于继承性,导致mysql下的data目录
也是everyone组-所有的权限。导致被随意访问、读取、删除,可能泄露和破坏数据。
更改mysql目录到一个合适,安全的访问权限。

相关文章

  • mysql中判断记录是否存在方法比较

    mysql中判断记录是否存在方法比较

    把数据写入到数据库的时,常常会碰到先要检测要插入的记录是否存在,然后决定是否要写入。
    2011-07-07
  • MySQL root密码忘记后更优雅的解决方法

    MySQL root密码忘记后更优雅的解决方法

    这篇文章主要给大家介绍了关于MySQL root密码忘记后更优雅的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • win2003服务器下配置 MySQL 群集(Cluster)的方法

    win2003服务器下配置 MySQL 群集(Cluster)的方法

    MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。
    2010-12-12
  • SQL更新与删除数据操作示例详解

    SQL更新与删除数据操作示例详解

    如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句,下面这篇文章主要给大家介绍了关于SQL查询语句更新和删除数据的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • MySQL批量修改表及表内字段排序规则举例详解

    MySQL批量修改表及表内字段排序规则举例详解

    在MySQL中字段排序规则(也称为字符集和排序规则)用于确定如何比较和排序字符串,下面这篇文章主要给大家介绍了关于MySQL批量修改表及表内字段排序规则的相关资料,需要的朋友可以参考下
    2024-05-05
  • 教你如何通过日志文件恢复MySQL数据

    教你如何通过日志文件恢复MySQL数据

    Binlog日志是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据,这篇文章主要给大家介绍了关于如何通过日志文件恢复MySQL数据的相关资料,需要的朋友可以参考下
    2022-02-02
  • mysql创建内存表的方法

    mysql创建内存表的方法

    这篇文章主要介绍了mysql创建内存表的方法,并为大家准备了一些注意事项,需要的朋友可以参考下
    2014-03-03
  • windows 64位下mysql8.0.25安装配置教程(最详细!)

    windows 64位下mysql8.0.25安装配置教程(最详细!)

    之前一直在用 5.7 版本,竟然一下子跳到 8.0了,下面这篇文章主要给大家介绍了关于在windows 64位下mysql8.0.25安装配置教程,文章通过图文介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • Fedora环境下装MySQL命令方法介绍

    Fedora环境下装MySQL命令方法介绍

    刚刚涉及mysql如果有不对的地方,请大家指正,希望自己的一点点经验,能够帮到大家
    2012-11-11
  • 聊聊MySQL事务的特性和隔离级别

    聊聊MySQL事务的特性和隔离级别

    这篇文章主要介绍了MySQL事务的特性和隔离级别的相关资料,帮助大家粗略的认识下MySQL 事务的相关知识,感兴趣的朋友可以了解下
    2020-09-09

最新评论