MySQL是一种开放源代码的关系型数据库管理系统,也是一种非常容易管理的数据库。对于Mysql数据库,应当怎样防止破解呢?我们首先要知道当你连接一个mysql服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。
为了使一个mysql系统安全,我们可以考虑以下的建议:对所有mysql用户使用口令。记住,如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑mysql_install_db脚本改变所有用户的口令,或仅仅mysql root的口令,象这样:
不要作为unix的root用户运行mysql守护进程。mysqld能以任何用户运行,你也可以创造一个新的unix用户mysql使一切更安全。如果你作为其它unix用户运行mysqld,你不需要改变在user表中的root用户名,因为mysql用户名与unix 用户名没关系。你可以作为其它unix用户编辑mysql.server启动脚本mysqld。通常这用su命令完成。对于更多的细节,见18.8 怎样作为一个一般用户运行mysql。
如果你把一个unix root用户口令放在mysql.server脚本中,确保这个脚本只能对root是可读的。检查那个运行mysqld的unix用户是唯一的在数据库目录下有读/写权限的用户。
不要把process权限给所有用户。mysqladmin processlist的输出显示出当前执行的查询正文,如果另外的用户发出一个update user set password=password("not_secure")查询,被允许执行那个命令的任何用户可能看得到。mysqld为有process权限的用户保留一个额外的连接, 以便一个mysql root用户能登录并检查,即使所有的正常连接在使用。不要把file权限给所有的用户。