关于加强MYSQL安全的几点建议
通常我们在连接mysql的服务器时,要使用到口令。这个口令在网络上传输的时候是加过密的。可是其它的内容都是以明文的方式来进行传输的。
当然如果担心这个不安全的话,可以使用压缩协议(mysql3.22和以上版本),这样可以让其它的内容不那么容易就被看到。甚至为了让它更加安全,可以考虑下安装ssh。装上它之后,你就能在mysql服务器与mysql客户之间,搭建一条加密的tcp/ip连接。
为了使你的mysql系统更安全,强烈建议考虑以下建议:
1.为每个mysql用户使用口令。如果你不加设口令的话,其他人可以通过mysql --user other_user database的方式访问你的数据库,在使用mysql进行检测的时候系统也会给你相应的警告信息。
2.通过mysql_install_db脚本建立mysql的授权表,你可以通过mysql -u root进行测试,正确的情况下应该不会发生错误。更改root的密码:
shell> mysql -u root mysql
mysql> update user set password=password( ew_password)
where user= root;
mysql> flush privileges;
3.不要用root方式启动mysql服务。mysql可以以任何用户启动。你可以通过添加一个新用户的方式来启动数据库服务(也就是)。这也不会对系统造成任何影响,因为mysql的用户和unix的用户根本来说就使不同的。
4.如果你把unix root用户口令放在了mysql.server脚本中,那么必须确保这个脚本只对root是可读的。检查那个运行mysqld的用户,确保这个用户是唯一在数据库目录下有读/写权限的用户。
5.不要把process权限给任何人。mysqladmin processlist的输出会显示出当前正在执行的查询正文,这时如果有另外的用户发出一个update user set password=password( ot_secure)查询,则会被有process权限的用户看得到查询。mysqld为有process权限的用户保留一个额外的连接, 以便一个mysql root用户能登录并检查,即使所有的正常连接在使用。
6.不要把file权限给所有的用户。有这权限的用户能在拥有mysqld守护进程权限的文件系统那里写一个文件! file权限也可以被用来读取任何作为运行服务器的unix用户可存取的文件。这可能被利用,例如,通过使用load data装载"/etc/passwd"进一个数据库表,然后它能用select被读入。
7. 如果你不信任你的dns,你应当使用ip来取代主机名。在任何情况下,你应该非常小心地使用包含通配符的主机名!
相信通过以上的设置过后,你的mysql主机应该已经相对比较安全,不是那么轻松就会让人攻陷的。
下一篇: Java 浅复制和深复制的实例详解