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