5

Heroku “强烈建议在开发过程中使用 PostgreSQL”,这就是我过去几个月一直在做的事情。我正在使用 rails 3.2.8,在 Daniel Kehoe 的优秀Rails Heroku 教程和 Ryan Bates 关于迁移到 PostgreSQL的 railscast 之间,我已经能够让应用程序运行和部署。我的问题是 postgreSQL 在幕后做了很多我不了解的事情(包括角色、用户、超级用户等)。我特别担心我一直在本地和部署中使用“信任”身份验证这一事实。这是否意味着随机的人可以以某种方式访问​​我的应用程序的数据库?

时不时地在 rails/github 互联网上,我会遇到将应用程序的 config/database.yml 文件保留在 github(可能只有公共或共享存储库)之外的引用,因为该文件包含密码信息。我总是看着那个文件并挠头。我没有把密码信息放在那里。这是该文件在开发、测试和生产中的样子(注意,为了简洁起见,我只展示了三个中的一个,因为它们都是相同的代码。):

[development, test or production]:
  adapter: postgresql
  encoding: unicode
  database: [myapp]_[development, test or production]
  pool: 5
  username: [myapp]
  password:

我害怕知道我应该怎么做才能正确设置 postgreSQL 并将其安全地部署在我的 rails 应用程序中。提前感谢您的任何想法。你会让世界变得更安全!

4

1 回答 1

6

当您将 rails 应用程序部署到 heroku 时,您根本不必担心 postgres 配置:我们为每个应用程序提供一组新的凭据,这些凭据仅有权访问您自己的数据,并且我们通过覆盖数据库使您的应用程序使用这些凭据。 yml 每次部署。

您可以通过以下方式验证这一点:

heroku run bash --app your-app
$ less app/config/database.yml

的确,没有人应该将生产凭证放在源代码控制中(但您没有这样做)。

于 2012-08-19T20:40:25.540 回答