RoR / AR: советы по управлению различными разрешениями RDBMS в средах Rails - PullRequest
0 голосов
/ 01 марта 2011

Есть ли рекомендуемая практика для управления несколькими пользователями, использующими тестирование и производственную базу данных, в одном приложении Rails?У меня есть приложение Rails с четырьмя различными пользователями базы данных, связанными с ним:

  • владелец , пользователь БД, которому принадлежит схема приложенияРазрешения: почти все.(Это учетная запись обслуживания / миграции.)
  • app , учетная запись БД, которая обеспечивает работу веб-приложения.Разрешения: чтение большинства таблиц и представлений, запись в некоторые временные таблицы кэширования.
  • writer , учетная запись базы данных, которая передаетРазрешения: запись в несколько таблиц.
  • auditor , учетная запись БД, которая регистрирует операции записи в БДРазрешения: Владеет несколькими триггерами и функциями.

Сейчас мои файлы миграции содержат логику GRANT / REVOKE для этих конкретных именованных пользователей.Однако в среде «разработки» всем этим пользователям часто удобно иметь один и тот же аккаунт.Кроме того, жестко заданные имена этих пользователей могут конфликтовать с уже существующими именами пользователей БД в конечной производственной среде.

1 Ответ

1 голос
/ 02 марта 2011

Похоже, вам нужно будет управлять 2-мя различными подключениями к базе данных для каждого из классов пользователей, которые у вас есть (app / writer). Это часто достигается путем смешивания помощников, чтобы настроить их на разные классы Моделей, которым необходимо их использовать.

Нет причин, по которым вы не можете настроить это в своих средах разработки, но вы получите максимальную отдачу от использования промежуточной среды, которая в точности похожа на вашу производственную среду для подобных проблем, где вы можете сделать окончательный вариант Отказ от поведения до того, как что-то запущено.

...