Один пользователь на базу данных против одного пользователя для всех баз данных


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

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

3 6

3 ответа:

Если речь идет о безопасности, пользователь на базу данных-это путь.

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

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

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

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

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

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

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