TE社区 > 数据库
客服QQ:1206116161

关于加强MYSQL安全的几点建议

u014585511 于 2018-04-06 00:01:05 创建话题
(25)
(0)
举报

通常我们在连接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低权限运行)。这也不会对系统造成任何影响,因为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主机应该已经相对比较安全,不是那么轻松就会让人攻陷的。

扫码关注TE官方微博 扫码关注TE官方微博
举报X