Один пользователь на базу данных против одного пользователя для всех баз данных - PullRequest
6 голосов
/ 05 июня 2011

Я работаю над SaaS-приложением, которое использует одну БД для каждой модели клиента.Он также имеет общую базу данных «учетных записей», в которой хранится некоторая базовая информация об учетной записи, а также предоставляет функции входа в систему.

Мой вопрос - стоит ли создавать нового пользователя базы данных для каждой клиентской базы данных, которая имеет разрешения только наэта база данных или один пользователь базы данных, имеющий доступ ко всем клиентским базам данных, имеет больше смысла (то есть "account\_%. *")?

Ответы [ 3 ]

4 голосов
/ 05 июня 2011

Если проблема в безопасности, то для каждого пользователя лучше всего использовать базу данных.

2 голосов
/ 05 июня 2011

Легко думать о создании всех этих баз данных.

Но, пожалуйста, подумайте о , как вы собираетесь поддерживать их всех в долгосрочной перспективе .

  • Придется ли вам запускать сценарии базы данных для постоянно растущего числа баз данных?
  • У вас будет сценарий для запуска при добавлении новой клиентской базы данных, и это будетдолжны постоянно обновляться.

Я не говорю, не создавайте несколько баз данных.Я просто предлагаю вам подумать о последствиях.

2 голосов
/ 05 июня 2011

Я бы создал новые базы данных, но это зависит.В основном все, что плавает на вашей лодке :)

одна база данных на пользователя:
+ безопасность проще
+ асинхронные параллельные запросы (если ваш сервер может это обработать)
- немного тяжелее на диске

одна база данных:
+ один файл для обработки вместо набора (если это даже +)
+ немного больше места для экономии
- медленно, когда объем данных достигает больших значений
-никакие одновременные соединения не означают, что тяжелый SQL-запрос от одного пользователя будет делать все остальные

...