为什么建议为 mysql 用户 root@localhost 提供密码?

为什么建议为 mysql 用户 root@localhost 提供密码?

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

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

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

谢谢

答案1

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

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

远程未授权用户
任何恶意用户只需利用“任意命令执行”漏洞即可完全控制您的 MySQL 实例。请查看CVE-2009-1151看看这到底有多么简单。通过这种方式,他们可以控制www、、或任何用户,并授予自己一个本地帐户。然后只需键入即可以 root 用户身份登录 MySQL 实例。httpdapachemysql -u root

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

答案2

不仅 root 可以使用 root@localhost mysql 登录,任何本地用户都可以。

Mysql 有自己的帐户,所以 mysql 的 root 与系统 root 不同,如果 root@localhost 没有密码,则允许任何来自 localhost 的用户以 root 身份登录 mysql,因为没有密码。

答案3

盒子上的任何人都可以运行

mysql -u 根目录

然后进去。

相关内容