目前,我正在 Docker 中使用 MySQL,并问自己如何处理(root)密码。该容器无法从外部访问(没有端口转发到主机),只能从 Docker 网络内部访问(Docker Compose)。
从我目前的角度来看,我只能使用默认/简单的密码,因为除了从 Docker 内部之外无法访问 mysql 服务器,并且任何有权访问 Docker 的人都是 root(至少是类似 root 的)(因此可以访问无论如何,例如通过直接访问文件)。这是正确的还是我错过了什么?
最佳答案
我不会依赖它!例如,如果您稍后安装了一个网络服务器,使用它来提供像 e 这样的应用程序。 G。 phpMyAdmin,很容易攻击你的数据库。
在大多数情况下,攻击媒介不是服务本身,而是使用它的其他应用程序,从而暴露了该服务,在我看来,phpMyAdmin 就是一个很好的例子。另一个例子是 SQL 注入(inject),如果攻击者获得对您的 MySQL root 帐户的访问权限,他就可以访问您的文件系统。关于这一点,我建议您看看MySQL Security Guidelines 。因此,您应该始终使用安全密码,特别是对于拥有 GRANT
、FILE
或 PROCESS
权限的用户。
如果您安装了 Debian 或其他基于 Debian 的操作系统,您可以使用 debian-sys-maint
用户轻松访问 shell 上的数据库,如下所示:
# mysql --defaults-file=/etc/mysql/debian.cnf
它为您提供 root 访问权限,而不会提示您输入密码。
我希望这会有所帮助,请确保其安全!
关于mysql - Docker中MySQL默认密码的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53556530/