One option is to set up another environment (development, test,
production, migration) with a separate entry in database.yml, and a db
user with increased privileges vs the production user. The capistrano
migrate task takes a parameter specifying the Rails environment.

I agree that you should also do IP restriction, though that solves a
different problem. The less-privileged production user makes sure a
bug *in the app* doesn't do something catastrophic. There are, of
course, backups, but downtime costs money. :)

Sarah

On Wed, Mar 11, 2009 at 11:50 AM, Ryan <rlmar...@gmail.com> wrote:
> I'm pretty new to Rails and Capistrano and am in the middle or
> deploying my first application.  I'm wondering about the database
> privileges the production user should have.  It seems to me that the
> db user should be locked down (only read/write to existing tables, no
> creating or dropping tables, etc.) when the Rails application is
> running.  But when the application is being deployed, the user must
> have those extended privileges to do the migration.  Everywhere I
> read, the database scripts create a db user will all privileges
> granted - which works for the deployment, but seems too insecure for
> everyday use.  Am I wrong in thinking this, and should I just grant
> all privileges and not worry about it?  Or is there something I'm
> missing in the Capistrano setup that grants the db user privileges at
> the beginning, then removes them at the end?  Thanks for any help.

--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to 
capistrano-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to