为什么建议给 mysql 用户 root@localhost 一个密码?

Tom*_*Tom 3 mysql security

当我安装 MySQL 服务器 RPM 时,我收到以下消息:

请记住为 MySQL 根用户设置密码!

如果我只能使用来自本地主机的 mysql root 用户(即通过 SSH 登录后),密码如何提供任何额外的安全优势?例如,如果我已经是 root 用户,我可以删除 mysql 数据目录...

谢谢

Sco*_*ack 12

MySQLroot用户是专门用于MySQL实例的管理用户。虽然它与 Linux 系统上的默认管理员用户共享一个名称,但除了功能之外,它们没有任何共同点。然而,它是 MySQL 实例管理员这一事实重要的部分,也是它需要受到保护的原因。考虑以下情况:

本地授权用户
任何被授予 ssh 访问您的系统的人都能够以 root 用户身份登录 MySQL 实例,只需键入mysql -u root. 再次重新阅读该行,以确保它沉入其中。

远程未授权用户
任何恶意用户都可以通过利用“任意命令执行”漏洞来完全控制您的 MySQL 实例。看看CVE-2009-1151,看看这到底有多容易。这样,他们可以采取的控制wwwhttpdapache,或任何用户用户,并授予他们自己的本地帐户。然后只需键入mysql -u root.

正是出于这样的原因,信息安全的核心租户之一是“深度防御”。也就是说,永远不要相信一个控制来保护你。在这种情况下,为您的 MySQL 实例的 root 用户提供一个强密码。