共计 2271 个字符,预计需要花费 6 分钟才能阅读完成。
数据库的安全是平时安全运维中的重中之重,所以在平时需要做防火墙安全策略,以及主从复制实时热备以及相应的灾容备份措施等等,当然无论是编译安装的还是二进制包部署好 MySQL 后往往会忽略一些安全隐患,在这里就简要的说一下在 MySQL 在部署好后所必要删减以及调整。(mysql_X86_64 二进制部署可参看:http://www.linuxidc.com/Linux/2017-03/142362.htm)
一、删除 mysql 的说明文件以及重要 my.cnf 配置文件的降权及重要库文件的权限修改
在 mysql 部署好后在环境路径下会有一些说明文件,在实际生产环境中不需要保留,在这里应该删除
[root@bogon mysql]# ls |grep -E ‘[A-Z]’
COPYING
INSTALL-BINARY
README
[root@bogon mysql]# ls |grep -E ‘[A-Z]’ |xargs rm -f;
my.cnf 是 mysqld 的配置文件,平时的 my.cnf 一般是从 support-files 文件夹下复制修改或者是自己平时写好的文件那它的初始权限就太高了,默认 mysqld 读取配置文件的顺序可以通过查看环境目录下的 mysqld 工具查看
[root@bogon bin]# ./mysqld –help –verbose | head -15
···略···
Usage: ./mysqld [OPTIONS]
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-5.5
The following options may be given as the first argument:
[root@bogon etc]# ls -al|grep my.cnf
-rw-r–r– 1 root root 5050 10-22 15:05 my.cnf
[root@bogon etc]# chmod 600 my.cnf
[root@bogon etc]# ls -al|grep my.cnf
-rw——- 1 root root 5050 10-22 15:05 my.cnf
[root@localhost etc]# cd /data/mysqldata/# 进入 datadir 目录
[root@localhost mysqldata]# chown mysql:root mysql
[root@localhost mysqldata]# chown mysql:root performance_schema
# 这 2 个重要的库应该改成 root 属组的
[root@localhost mysqldata]# chown mysql:root /usr/local/mysql/
#mysql 的 basedir 目录下的权限也要改一下
二、删除 mysql 的匿名用户以及 test 库
mysql 的用户信息都在 mysql.user 表中,查找匿名用户即 User 字段为空
mysql> select User,Host,Password from mysql.user;
+——+———–+———-+
| User | Host | Password |
+——+———–+———-+
| root | localhost | |
| root | bogon | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | bogon | |
+——+———–+———-+
6 rows in set (0.00 sec)
mysql> drop user ”@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ”@bogon;
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ‘root’@’::1′;
Query OK, 0 rows affected (0.00 sec)
test 库是 mysql 的安全隐患,在没有必要时需要删除
12345678910111213 mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
4 rows in set (0.00 sec)
mysql> drop database test;
Query OK, 0 rows affected (0.01 sec)
最后在有做好防火墙的基础上给 mysql 的 root 用户添加密码,默认安装好后的 mysql 是没有密码的,添加密码可以用 mysqladmin 工具或者是直接修改 mysql.user 表,这个比较简单,在这里就不再赘述了。如此在此基础上在做相应的 mysql 灾容备份等措施,以保障 mysql 数据库的数据安全。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142362.htm