2012-01-16 118 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