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

默认安装的mysql服务不安全因素涉及的内容有:
一.mysql默认的授权表
二.缺乏日志能力
三.my.ini文件泄露口令
四.服务默认被绑定全部的网络接口上
五.默认安装路径下的mysql目录权限
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一.mysql默认的授权表
由于mysql对身份验证是基于mysql这个数据库的,也叫授权表。所有的权限设置都在这里了。
我们只讨论最为重要的一个表 user表。它控制的是接受或拒绝连接。
先看一下
select host,user,password,Delete_priv from user;
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
| % | root | | Y |
| localhost | | | Y |
| % | | | N |
+-----------+------+------------------+-------------+
现在新的版本,安装完毕都会出现一个快速设置窗口,用于设置口令。
以上,就是user表里的内容(略了点)看看有什么问题?
我们知道mysql的验证方式是比较特殊的,它基于两个2个信息来进行的
1.从那里连接
2.用户名
第一条没什么问题,当然口令必须是安全的。
第二条从任何主机,以用户root,不需要口令都可以连接,权限为所有的权限。(注:这里的权限是全局权限)
第三条从本地主机,任何用户名(注:user为空白,不表示不需要用户名),不需要口令,都可以连接,所有的权限
第四条从任何主机,任何用户名,不需要口令,都可以连接,无任何权限。
可以看出,2\3\4都是不安全的,如何攻击这里就不说了,请参看资料文库。
如果你mysql只允许本地连接,删除host的%和user中的nul(表示空)
delete from user where host='% ';
delete from host where user=' ';
最后的user表,看起来因该是这个样子
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
+-----------+------+------------------+-------------+
最后需要刷新授权表,使其立刻生效
flush privileges;
如果你的mysql需要被远程使用,需要为%段中的root帐号,加上一个安全的密码
update user set password=password(‘youpass‘) where host=‘%‘;
其中youpass,就是口令
mysql> select host,user,password,Delete_priv from user;
+-----------+------+------------------+-------------+
| host | user | password | Delete_priv |
+-----------+------+------------------+-------------+
| localhost | root | 67457e226a1a15bd | Y |
| % | root | 77c590fa148bc9fb | Y |
+-----------+------+------------------+-------------+

当前1/2页 12下一页阅读全文

(0)

相关推荐

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

    默认安装的mysql服务不安全因素涉及的内容有: 一.mysql默认的授权表 二.缺乏日志能力 三.my.ini文件泄露口令 四.服务默认被绑定全部的网络接口上 五.默认安装路径下的mysql目录权限 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一.mysql默认的授权表 由于mysql对身份验证是基于mysql这个数据库的,也叫授权表.所有的权限设置都在这里了. 我们只讨论最为重要的一个表 user表.它控制的是接受或拒绝连接. 先看一下 se

  • MySQL中文乱码问题的解决第1/2页

    转自:http://www.phpchina.cn/viewarticle.php?id=1584 下面要写的是一篇非常无聊的东西,充斥了大量各式各样的编码.转换.客户端.服务器端.连接--呃,我自己都不愿意去看它,但想一想,写下来还是有点意义的,原因有四: MySQL 4.1 对多语言的支持有了很大变化 (这导致了问题的出现): 尽管大部分的地方 (包括个人使用和主机提供商),MySQL 3 仍然占主导地位:但 MySQL 4.1 是 MySQL 官方推荐的数据库,已经有主机提供商开始提供并将

  • 深入Mysql字符集设置分析

    基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding).例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码: • 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set).例如,给定字符列表为{'A','B'}时,{'A'=>0, 'B'=>1}就是一个字符集: •

  • 基于vue.js仿淘宝收货地址并设置默认地址的案例分析

    这个案例主要是渲染地址列表,然后设置默认地址,与淘宝的收货地址功能一样,具体自行查看自己的淘宝收货地址: 效果图: html结构 <!--the-address--> <div class="the-address"> <div class="adr-tent" id="vue-address"> <table class="adr-table"> <thead class

  • mysql时间字段默认设置为当前时间实例代码

    目录 mysql时间字段默认为当前时间 附:mysql 字段 default 默认赋值 当前系统时间 总结 mysql时间字段默认为当前时间 1.直接在创建表时添加该列并声明默认值,如下: CREATE TABLE `table1` ( `id` int(11) NOT NULL, `createtime` timestamp NULL default CURRENT_TIMESTAMP, `updatetime` timestamp NULL default CURRENT_TIMESTAMP

  • MySQL默认字符集设置详情

    目录 查看各版本默认字符集 修改MySQL5中的默认字符集 已有库&表字符集的变更 各级别的字符集 字符集与比较规则 utf8 与 utf8mb4 比较规则 请求到响应过程中字符集的变化 SQL大小写规范 Windows和Linux平台区别 SQL编写建议 sql_mode的合理设置 宽松模式 严格模式 查看各版本默认字符集 在MySQL 8.0版本之前,默认字符集为latin1 ,utf8字符集指向的是utf8mb3 .网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集.如果遗忘修

  • mysql实现设置定时任务的方法分析

    本文实例讲述了mysql实现设置定时任务的方法.分享给大家供大家参考,具体如下: 今天遇到了个需要每天定时执行的任务,在mysql数据库里面提供了这样的功能,正好整理下分享出来. 1.首先检查是否开启了定时任务 查看event是否开启 : SHOW VARIABLES LIKE '%event_sche%'; 将事件计划开启 : SET GLOBAL event_scheduler = 1; 将事件计划关闭 : SET GLOBAL event_scheduler = 0; 关闭事件任务 : A

  • MySQL锁机制与用法分析

    本文实例讲述了MySQL锁机制与用法.分享给大家供大家参考,具体如下: MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁:BDB存储引擎采用的是页面锁,但也支持表级锁:InnoDB存储引擎既支持行级锁,也支持表级锁,但默认情况下采用行级锁. MySQL这3种锁的特性可大致归纳如下: (1)表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. (2)行级锁:开销大,加锁慢:会出现死锁:

  • MySQL服务器 IO 100%的分析与优化方案

    前言 压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等查看CPU.内存使用情况,然后在排查IO问题,例如网络IO.磁盘IO的问题. 如果是磁盘IO问题,一般问题是SQL语法问题.MYSQL参数配置问题.服务器自身硬件瓶颈导致IOPS吞吐率问题. 本文主要给大家介绍的是关于MySQL服务器 IO 100%的分析与优化方案,下面话不多说了,来一起看看详细的

  • 总结12个MySQL慢查询的原因分析

    目录 1. SQL 没加索引 2. SQL 索引不生效 2.1 隐式的类型转换,索引失效 2.2 查询条件包含 or,可能导致索引失效 2.3. like 通配符可能导致索引失效 2.5 在索引列上使用 mysql 的内置函数 2.6 对索引进行列运算(如,+.-.*./), 索引不生效 2.7 索引字段上使用(!= 或者 < >),索引可能失效 2.8 索引字段上使用 is null, is not null,索引可能失效 2.9 左右连接,关联的字段编码格式不一样 2.10 优化器选错了索

随机推荐