可以在“config / database.yml”文件中存储生产环境的DB密码吗?或者有没有更正确的方法(可能是环境变量)?
提前致谢。
答案 0 :(得分:3)
这不是个好主意!一个主要原因是config/database.yml
文件可能会包含在某种源控件中,就像git存储库一样。即使回购目前是私人的,你也无法确定它将来会被公开,然后你就会遇到问题!
此外,如果有人获得了对您的应用程序文件的读取权限,或者仅获得了应用程序源代码的副本,那么他们现在拥有您的数据库密码。
一个典型的解决方案是设置一个像你建议的环境变量,然后在.yml文件中读取它:
password: <%= ENV['DATABASE_PASSWORD'] %>
如果你使用像Heroku这样的PaaS,这是做事的标准方法。但即使this isn't a perfect solution,也要仔细评估您的选择。