幸好,MySQL提供了一个使用方便的命令,这个命令对于加强安装的MySQL的安全大有帮助。单单这个命令具有下列功能:
·更新密码插件;
·为根帐户设置密码(如果已经有了一个密码,你可以选择保留密码或更改密码);
·删除可以从本地主机外面访问的根帐户;
·删除匿名用户帐户
·删除测试数据库和允许任何人访问名称以 test_开头的数据库的权限。
虽然上述任务并不过于复杂,但是它们很容易被忽视,如果你有许多数据库,很耗费时间。
我们不妨加固安装的MySQL服务器的安全。
运行命令
开始加固过程的命令如下:
sudo mysql_secure_installation
一旦运行该命令,会提示你输入MySQL管理员命令。一旦成功输入了密码,加固过程就会开始。然后会要求你同意或不考虑下列操作(见图A)。
1. 更新密码插件(在键盘上按Y代表“确定”,并按回车键)。
2. 选择你想要启用的密码验证政策级别(0 = 弱,1 = 中等,2 = 强)。重要说明:在文章的后面,我给出了关于这个政策级别的警示细节。
3. 更改根密码(若不考虑该选项,按N,那样该工具就不会更改MySQL的管理员密码)。
4. 删除匿名用户(按Y即可删除)。
5. 不允许远程根登录(按Y即可禁止)。
6. 删除测试数据库(按Y即可删除)
图A
运行一系列简单的问题,即可加固你安装的MySQL。
回答上述问题后,会提示你按Y,重新装入权限表。就是这样—你安装的MySQL数据库服务器变得更安全了。可以使用mysql -u root -p命令,登录进入到MySQL外壳,然后运行命令SHOW DATABASES,即可看到测试数据库已被删除。
关于密码验证政策的重要说明
选择密码验证政策的级别时要慎重,因为这可能会给已经创建的任何用户带来问题,比如使用WordPress等运行中服务的数据库用户。如果这带来了问题,你得为遇到问题的那个服务/用户更改数据库用户密码。为此,运行下列命令(USER是用户名,NEWPASSWORD是所要使用的新密码):
mysqladmin -u USER -p password NEWPASSWORD
会提示你输入最新的用户密码。一旦身份验证成功,密码就会被更改。
为了测试根用户的远程访问,你将不得不设置MySQL服务器以便接受远程连接;我们会在以后介绍MySQL的远程连接。
可以使用更安全的MySQL数据库了
恭喜你!你安装的MySQL变得更安全了。只要你的主机平台很可靠,又经常确保操作系统及各服务器是最新版本,应该可以比较放心:你的数据比较安全,远离攻击。
原文标题:How to harden MySQL security with a single command,作者:Jack Wallen