【发布时间】:2012-05-23 08:32:53
【问题描述】:
我在 postgresql 中有两个用户,其中一个名为 migration,在 Rails 在生产服务器上运行迁移时使用。该用户拥有生产数据库。我还有production 用户,该用户应该只有以下权限:生产数据库上的SELECT, INSERT, UPDATE, DELETE。
问题是,每次创建新表时,我都必须在 psql 中手动运行:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO production;
-- next line is needed for each new table which has an auto incrementing field, in this case - table `users`
GRANT USAGE, SELECT ON SEQUENCE users_id_seq TO production;
因为production 用户对新创建的表的权限不会自动设置。运行迁移时自动执行此操作的最佳方法是什么?任何可用于 Rails/Capistrano 的脚本?
【问题讨论】:
-
默认权限对您有用吗?我有一个非常相似的问题,除了它与我的备份软件有关。每次创建新表时,备份用户都无法读取它...但是我正在使用默认权限,从 \ddp 可以清楚地看到。
标签: ruby-on-rails postgresql privileges rails-migrations