Mysql安全加固手册


0x00 Mysql的基本操作

这里mysql版本为mysql 5.5.56 win7 SP1系统为例

1.服务启动:net start mysql
2.登录数据库:mysql - u 用户名 -p密码
3.创建数据库:create database 数据库名;
4.查看数据库:show databases;
5.进入数据库:use 数据库名;
6.新建表:create table 表名(字段名1 类型(长度) 约束条件,字段名2 类型(长度) 约束条件);creat table stu(id int(10) DEFAULT NULL,name char(20));
7.查看表:show tables;
8.insert表中插入数据:insert into 表名 values(12,"hsyy");
9.update更新表中数据:update 表明 set -name=”字段名“ where id=12;
10.查询数据:select * from 表名 where id=12;
11.删除数据:delete from 表名 where id=12;
12.查询所有用户:select user from mysql.user;
13.添加本地登陆权限用户:create user'用户名'@’localhost‘identified by'密码';
14.查询本地用户权限:show grants for '用户名'@’localhost‘; 显示usage on:不具有任何操作权限
15.使用root赋予普通本地用户某个数据库表的id,username执行权限:grant select (id,username) on 库名.表名 to ’普通用户名‘@’localhost‘;
16.授予用户对某表所有权限:grant all on 表名. * to '用户名'@’localhost‘;
17.授予用户创建用户权限:grant create user on * .* to '用户名'@’localhost‘;
18.收回普通用户对某个表的执行权限:revoke all on 库名.表名 from ’用户名‘@'localhost';
19.修改用户名:rename user '原来名'@’localhost‘ to '新用户名'@'localhost';
20.修改用户密码:set password for ’用户名‘@'localhost' =password('新密码');
21.删除用户:drop user ’用户名‘@'localhost';

0x01 Mysql加固实例步骤

为了保证数据库的安全,一般需要对数据库进行安全加固操作。Mysql数据库安全加固属主要涉及用户、权限、日志、远程等方面。常用的安全加固方法有以下几种。

(1)删除空用户:某些版本的MySQL系统会默认创建一个无用户名无密码的匿名(AnonymousAccount),也叫空用户。这使得数据库服务器存在无需密码便可以登录的风险。为消除此类安全隐患,应当删除空用户。

(2)防止文件注入:mysql对本地文件的存取主要通过LoadDATA LOCAL
INFILE等SQL语句实现,因此能够通过禁用该功能来防止黑客通过SQL注入的方式获取系统核心文件。

(3)日志输出:Mysql默认有error日志文件输出,默认在data文件夹。若想获得更高的安全性,则可以增加查询日志、二进制日志、更新日志和慢查询日志文件输出。

(4)关闭远程连接:防止远程连接操作数据库

删除空用户名:
delete from mysql.user where user=’’;

防止注入:按照mysql路径在配置my.ini文件末尾加上local_infile=0表示不允许文件注入,保存。
local_infile=0

配置日志输出策略:
在文件底部添上如下内容,使MySQL新增了日志输出。(目录地址即为复制的data目录地址,注意:输入地址时请使用”/“隔开每一级目录)。
log:查询日志;
log-error:错误日志,
log-bin:二进制日志;
log-slow-queries:慢查询日志。

修改配置文件后需要重启MySQL服务。先关闭MySQL。重新启动MySQL后打开data文件夹,发现多了四个文件,这四个文件就是之前设置的日志文件:在出现问题可以有效的参考日志文件

关闭远程连接:

use mysql                #打开mysql数据库
#将host设置为localhost表示只能本地连接mysql
update user set host='localhost' where user='root';
flush privileges;        #刷新权限表,使配置生效

出现报错说明root用户的localhost访问的权限已经有了,使用下列方法:

将修改权限时的host改成172.0.0.1。
mysql> use mysql;
mysql> update user set host = "127.0.0.1" where user = "root" and host = "%";
mysql> flush privileges;


总结到这,其他的加固还有还有很多,也可以考虑添加waf等设备

交流学习:
博客:http://www.kxsy.work
CSND社区用户名:告白热


文章作者: 告白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 告白 !
  目录