保护MySQLDump的备份凭据

时间:2013-07-24 09:08:26

标签: mysql mysqldump database-backups

我想使用MySQLDump每周使用cron作业备份数据库。 我不想在shell脚本中硬编码凭据。 MySQL db版本是5.1,因此mysql-config-editor不可用。 我知道选项文件,我可以使用600的linux文件权限保护。 有没有办法加密凭证并使其不可读?

2 个答案:

答案 0 :(得分:1)

  

有没有办法加密凭据并使其无法读取?

问问自己,您希望保护文件的对象以及为什么加密除了正常的文件权限之外还有帮助。

如果要加密包含密码的文件,则必须确保合法备份进程可以访问加密密钥,以便可以从文件中读取密码。然后,您必须确保所有其他进程无法访问这些密钥。

由于这会使事情变得更加复杂,这会增加泄漏风险,而不会在基本文件系统安全模型之上增加太多安全性。所以我建议在.my.cnf文件中坚持正确的所有权和文件权限。

进一步阅读:http://benlog.com/articles/2012/04/30/encryption-is-not-gravy/

我个人每天以root身份通过cron运行mysqldump。为了打破这种局面,攻击者需要先破解基本文件系统权限才能访问/root/.my.cnf(模式为600并由root拥有)。如果攻击者能够做到这一点,他可能也可以直接访问数据库文件,因此加密的密码文件在这里没有帮助。

只要〜/ .my.cnf上的模式为600并且所有权设置为该系统用户,您也可以设置专用系统用户,仅用于运行mysqldump。

PS。这是我每天在我的机器上运行的mysql备份脚本: https://gist.github.com/timkuijsten/6067107

答案 1 :(得分:0)

最新版本的MySQL 5.6解决了这个问题。 您现在可以使用mysql_config_editor

加密命令行登录的密码