2012-01-16 122 views
4

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

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

回答

6

你不知道。在某些时候,你必须把这些东西放进去,而且必须是明文形式的。

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

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

我写的这个位置: http://www.tigraine.at/2011/09/25/securely-managing-database-yml-when-deploying-with-capistrano/

至于在开发时没有分享这个:只需将database.yml放到你的.gitignore中,它就不会被提交

+0

不会将配置文件符号化为更好的解决方案,然后每次都复制它们吗? – 2012-01-16 11:17:29

+0

是的好点。 – Tigraine 2012-01-16 11:18:58