首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何保护database.yml?

如何保护database.yml?
EN

Stack Overflow用户
提问于 2008-08-20 16:12:47
回答 6查看 21.7K关注 0票数 50

在Ruby on Rails应用程序中,database.yml是一个存储数据库凭据的纯文本文件。

当我部署Rails应用程序时,在我的Capistrano方法中有一个after deploy回调函数,它在应用程序的/config目录中创建一个指向database.yml文件的符号链接。文件本身存储在一个独立的目录中,该目录位于标准Capistrano /releases目录结构之外。我用chmod400修改了这个文件,所以只有创建它的用户才能读取它。

  • 这是否足以锁定它?如果没有,你还会做什么?
  • 有人在加密他们的database.yml文件吗?
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-08-20 16:41:15

您还需要确保您的SSH系统受到良好的保护,以防止他人以Capistrano bot的身份登录。我建议限制对受密码保护的密钥对的访问。

加密服务器上的.yml文件是无用的,因为您必须将密钥提供给机器人,该密钥将被存储。。。在同一服务器上。在你的机器上加密它可能是一个好主意。Capistrano可以在发送前将其解密。

票数 12
EN

Stack Overflow用户

发布于 2009-06-16 13:29:02

我解决这个问题的方法是将数据库密码放在一个只对运行应用程序的用户具有读取权限的文件中。然后,在database.yml中,我使用ERB读取文件:

代码语言:javascript
复制
production:
  adapter: mysql
  database: my_db
  username: db_user
  password: <%= begin IO.read("/home/my_deploy_user/.db") rescue "" end %>

这是一种享受。

票数 39
EN

Stack Overflow用户

发布于 2010-08-10 04:38:11

看看这个github解决方案:https://github.com/NUBIC/bcdatabase。bcdatabase提供了一个加密的存储,其中可以将密码与yaml文件分开保存。

bcdatabase数据库

bcdatabase是一个库和实用程序,它为Ruby on Rails应用程序提供数据库配置参数管理。它提供了一种简单的机制,将数据库配置属性从应用程序源代码中分离出来,这样就不会有将密码签入版本控制系统的诱惑。它集中了单个服务器的参数,以便可以在多个应用程序之间轻松共享这些参数,并由单个管理员轻松更新这些参数。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档