12.2.3 用户权限
俗话说,知识就是力量。请确认你已经理解了MySQL的权限系统,以及授予特定权限的后果。请不要授予任何用户不必要的权限。应该查看grant表来确认这一点。
特别地,如果不是绝对需要,请不要将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程序。因为这是从命令行运行的,它是操作系统权限的问题。