如何保护database.yml中存在的数据库凭据

时间:2012-01-16 11:05:34

标签: ruby-on-rails security password-protection

如何保护config/database.yml中使用的连接凭据。如何保护我的数据库设置的用户名,密码和主机信息。

local: &local
  adapter: mysql2
  encoding: utf8
  reconnect: false
  username: foo
  password: bar
  host: localhost

1 个答案:

答案 0 :(得分:6)

你没有。在某些时候你必须把这些东西放进去,它必须是纯文本。

在部署期间,这通常是一个问题,您不希望任何对存储库具有读访问权限的人看到您的部署服务器数据库配置。

我通过自定义capistrano任务来解决这个问题,该任务将database.yml从服务器的主目录复制(或符号链接)到应用程序中。 (所以在我的repo中有一个空白的database.yml,每当我通过服务器上已经存在的秘密版本发布新版本时它就会被覆盖)

我在这里写到: http://www.tigraine.at/2011/09/25/securely-managing-database-yml-when-deploying-with-capistrano/

至于在开发过程中不共享它:简单地将database.yml放入你的.gitignore并且它不会被提交