2012-01-16 2 views
4

Как защитить учетные данные подключения, которые используются в config/database.yml. Как защитить имя пользователя, пароль, информацию о хосте для настроек моего db.Как защитить учетные данные базы данных, имеющиеся в базе данных.yml

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

ответ

6

У вас нет. В какой-то момент вам нужно вставить этот материал, и он должен быть в открытом виде.

Это обычно является проблемой во время развертывания, когда вы не хотите, чтобы кто-либо, у которого есть доступ для чтения к репозиторию, видел конфигурацию db для серверов развертывания.

Я работал вокруг этого, имея специальную задачу capistrano, которая копирует (или символизирует) базу данных.yml из домашнего каталога сервера в приложение. (Таким образом, в моем репо есть пустой database.yml и она будет переопределена всякий раз, когда я публикую новую версию секретной версии, которая уже присутствует на сервере)

Я писал об этом здесь: http://www.tigraine.at/2011/09/25/securely-managing-database-yml-when-deploying-with-capistrano/

Что касается не совместного использования этого при разработке: просто поместите database.yml в ваш .gitignore, и он не будет зафиксирован.

+0

Не будет ли символическое создание конфигурационных файлов лучшим решением, а затем копировать их каждый раз? –

+0

Да, хорошая точка. – Tigraine

Смежные вопросы