многопользовательская структура с узлом и секвестированием - PullRequest
0 голосов
/ 05 мая 2018

Я планирую многопользовательское приложение с nodejs и sequelize (диалект mysql). У меня будет одно приложение и несколько баз данных для каждого клиента. Мне нужно подключиться к клиентской базе данных после аутентификации (с помощью passport.js). Таким образом, существует классическая основная база данных с информацией о клиентах и ​​пользователем базы данных, хостом и pwd, а затем после успешного входа приложение подключается к определенной клиентской базе данных. Как я мог сделать что-то подобное? Я думал об использовании сессий ... может быть, промежуточное программное обеспечение, которое для каждого запроса извлекает сессию и затем передает данные для секвелирования объекта конфигурации? Может ли кто-нибудь поделиться со мной, как ему / ей удается сделать что-то подобное? Я застрял в логической ловушке! Спасибо

1 Ответ

0 голосов
/ 05 мая 2018

Ты очень близко.

Когда вы ищите пользователя в своей главной базе данных, для проверки имени пользователя / пароля вы также будете искать строку подключения к пользовательской базе данных. Затем вы можете создать простую функцию промежуточного программного обеспечения, чтобы открывать определенное соединение в начале каждого запроса.

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

Но , то, что вы предлагаете, это не классическая многопользовательская аренда. Multitenancy создает единую базу данных, в которой в разных таблицах есть столбцы, в которых указано, для какого пользователя они предназначены. Затем, как только паспорт сообщит вам идентификатор пользователя, вы можете указать его в своих запросах (например, SELECT .... WHERE user_id = <<value>> AND ....

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

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