从用户权限角度谈谈如何提高MySQL数据库的安全性
俗话说,知识就是力量。请确认你已经了解了MySQL的权限系统,以及授予特定权限的后果。请不要授予任何用户不必要的权限。应该查看garnt表来确认这一点。
特别的,如果不是绝对需要,请不要将PROCESS、FILE、SHUTDOWN和RELOAD等权限授予任何非管理员的用户。PROCESS权限可观察其他用户正在做什么,输入了什么,包括他们输入的密码。FILE权限可以用来读写操作系统中的文件,例如,包括UNIX系统中的/etc/password。
GRANT权限也要在授予的时候非常小心,因为他们准许用户将自己的权限分享给其他用户。
请确认在建立用户的时候,只授予他们从当前连接的主机访问数据库权限。有一个名为jane@localhost的用户,这没有问题,但是简单的jane是非常常见的,他可能从任何地方进行登录--这个jane可能不是你想象中的jane。同样的原因,我们应该避免在主机名中使用通配符。
可以通过在host表中使用IP地址而不是域名来提高安全性能。这可以在DNS位置避免错误问题或者黑客入侵。可以通过启动MySQL后台程序--skip-name-resolve选项加强它,该选项的意思是所有主机列的值必须是IP地址或本地主机。
此外,还应该防止非管理员用户访问Web服务器中的mysqladmin程序。因为这是从命令行运行的,它是操作系统权限的问题。
限制远程访问MySQL服务器
对于大多数用户来说,不需要通过不安全的开放网络来访问MySQL服务器。你可以通过配置防火墙或硬件,或者迫使MySQL只听从localhost来限制主机。此外,需要SSH隧道才能进行远程访问。
如果你想仅仅从本地主机来限制用户建立连接,你需要在在配置文件中添加bind-address=127.0.0.1。
【相关推荐】
提高MySQL数据库的安全性(一)
提高MySQL数据库的安全性(二)
提高MySQL数据库的安全性(四)
以上是提高MySQL数据库的安全性(三)的详细内容。更多信息请关注PHP中文网其他相关文章!