当前位置:Gxlcms > 数据库问题 > MySQL安装后的基本安全优化

MySQL安装后的基本安全优化

时间:2021-07-01 10:21:17 帮助过:29人阅读

MySQL5.6及以下的版本,安装后默认自带一个test的数据库,并且在MySQL5.6中,mysql.user用户表中带有用户名为空的用户,等等的默认设置,这些都是不安全的,容易给他人利用的机会。所以需要在安装MySQL后做些优化,加强MySQL数据库的安全性。
  • 1、操作系统与MySQL的基本环境信息:
          操作系统版本、操作系统内核版本:lsb_release -a、uname -r            技术分享        技术分享

   MySQL数据库版本:mysql> select version();

    技术分享

    MySQL数据库安装后默认的数据库列表:mysql> show databases;     技术分享      MySQL数据库安装后默认的用户列表:mysql> select user, host from mysql.user;    技术分享
  • 2、修正方法:
1)、删除 除 root@localhost 及 root@$hostname 外的其他账户: mysql> drop user ‘‘@‘localhost‘; mysql> drop user ‘‘@‘apptest‘; mysql> drop user ‘root‘@‘::1‘; # IPV6 mysql> drop user ‘root‘@‘apptest‘; mysql> select user, host from mysql.user; # 验证是否删除成功 2)、删除test数据库: mysql> drop database test; mysql> show databases; # 验证是否删除成功 3)、修改默认的root密码: mysql> set password for ‘root‘@‘localhost‘ = password("chiscdc"); # 最好是通过下面的mysqladmin交互命令进行重新设置root密码。 shell> mysqladmin -uroot -hlocalhost -p -S /application/mysql/3306/mysql.sock password shell> mysqladmin -uroot -h<hostname> -p -S /application/mysql/3306/mysql.sock password  
  • 3、平时对数据库用户的授权问题:
坚持最小化权限的原则,对一个库有只有一个专门的用户有操作权限;即在授权时,需要指定数据库名、主机名,且主机名中不要包含任何通配符“%”。 mysql> grant all privileges on jhmyTest.* to ‘test‘@‘192.168.231.9/255.255.255.0‘ identified by "chiscdc"; mysql> flush privileges; mysql> show grants for ‘test‘@‘192.168.231.9/255.255.255.0‘; # 查看用户权限  技术分享

 

4、其他安全注意事项,防止MySQL数据库密码的泄漏:

禁止在shell命令行中输入数据库密码:当在shell命令行中输入明文密码时,会被Linux记录到操作历史记录文件中(可以通过 history命令查看),从而导致密码泄漏。 1)、通过mysqladmin命令修改mysql用户密码: 错误做法,在pasword后直接跟密码字符串: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password "chiscdc"  技术分享 正确做法:不在password关键字后写任何字串,通过交互方式输入新的密码: shell> mysqladmin -uroot -p -S /application/mysql/3306/mysql.sock password 技术分享

2)、通过mysql命令登录mysql:

错误做法,在-p后直接跟密码字符串: shell> mysql -uroot -pchiscdc -S /application/mysql/3306/mysql.sock 技术分享

正确做法:不在-p后写任何字串,通过交互方式输入新的密码: shell> mysql -uroot -p -S /application/mysql/3306/mysql.sock

 技术分享

 

3)、通过mysqldump命令进行定时备份数据库: 错误做法,在备份脚本中写明数据库密码,在-p后直接跟密码字符串: #!/bin/bash # Backup the MySQL Database Scripts user="root" passwd="chiscdc" mysqldump -u${user} -p${passwd} DBname > Dbname.sql   正确做法【官方文档说是最安全的做法,点此查看官方文档说明】:通过mysql_config_editor命令行工具将MySQL用户名、密码、socket等写入单独的文件中(自动加密了),并且文件赋予只有该文件所属用户只读权限(400),然后在脚本mysqldump命令中通过--defults-file参数读取用户名密码: shell> mysql_config_editor set --login-path=client --user=root --host=localhost --socket=/application/mysql/3306/mysql.sock --password   shell> mysql_config_editor print --all 设置后,在上面指定的host服务器上登录mysql数据库,也不需要输入用户名、密码等。 技术分享

技术分享

 

新的备份脚本,也不需要指定主机名、用户名、密码等: #!/bin/bash # Backup the MySQL Database Scripts   mysqldump --all-databases > backup1.sql   # End Of File  

MySQL安装后的基本安全优化

标签:tps   命令行   version   主机名   bash   shel   安装   cat   backup   

人气教程排行