在脚本中使用密码备份远程服务器的数据库是否安全?

在脚本中使用密码备份远程服务器的数据库是否安全?

目前,我使用一个小脚本自动备份我的数据库(网络服务器的数据库)。为了备份数据库,我创建了一个只有读取和锁定权限的用户帐户。该脚本将使用此用户备份服务器。因此,该脚本有用户的密码。

问题是,我正在将数据库移动到远程服务器。如果我这样做,在这样的脚本中使用密码会存在安全风险吗?有没有更好的解决方案?

答案1

我要做的是将备份脚本存储在远程数据库服务器上并将其转储到标准输出。例如:

#!/bin/sh
mysqldump -h12.23.34.45 -ubob -pacmeco -Dmysql

然后使用基于密钥的身份验证通过 ssh 调用脚本并在本地写入响应,如下所示:

ssh user@server /path/to/backup/script.sh > databasebackup.sql

我假设您正在通过互联网执行此备份(我可能错了),但您永远不应该这样做,因为默认情况下连接未加密。使用 SSH 方法,它会将所有身份验证凭据保留在服务器上并确保通信通道受到保护。

此外,您不应该在未先锁定数据库服务器的情况下将其暴露在互联网上。

相关内容