Kiedyś zadałem podobne pytanie, ale w innym kontekście i zabrakło odpowiedzi.
Piszę sobie aplikację webową przeznaczoną dla firm i ich pracowników, która będzie korzystać z wielu baz danych (każda firma == niezależna baza danych). Wszystkie bazy będą jednak w obrębie jednego serwera baz danych.
Każda baza danych (firma) będzie miała "właściciela", który będzie nadawał dostępy do tej firmy innym użytkownikom.
Użytkownik może nie mieć dostępu do żadnej firmy (ktoś założył sobie jedynie konto na platformie i nie dostał uprawnień do żadnej firmy) lub mieć dostęp do jednej lub wielu firm (w zależności które firmy nadały mu dostęp).
User, który dostał dostęp do firmy A nie może mieć dostępu do danych firmy B (to chyba oczywiste).
Informacje o użytkownikach, dostępach, uprawnieniach, rolach etc. będą przechowywane w niezależnej bazie konfiguracyjnej (być może na niezależnym serwerze).
Przy zalogowaniu się do aplikacji user wybiera firmę do której chce się zalogować (do której ma dostęp) i otrzymuje JWT m.in. z informacją o ID/nazwie bazy do której ma dostęp.
Gdy chce pobrać jakieś dane do wyświetlenia to nazwa bazy danych pobierana jest z JWT i API zwraca odpowiednie dane.
Pytanie: czy jest sens niezależnie robić dla każdego użytkownika niezależne konto w bazie danych czyli każde połączenie z bazą danych byłoby z niezależnego konta użytkownika. Dzięki temu można dodatkowo zrobić zabezpieczenie, aby dany user miał dostęp tylko do wybranych baz danych.
Jednak będzie to wymagać dodatkowego nakładu pracy oraz w samej bazie danych (serwerze bazy danych) będę miał zdublowaną informację o userach.
Pytanie czy jest sens i czy to jest praktykowane?
A może zamiast robić konto na serwerze baz danych dla każdego użytkownika robić konto dla każdej firmy z dostępem tylko do tej firmy. Czyli jak mam dwie firmy A i B oraz 3 userów to na serwerze baz danych utworzę dwóch userów do łączenia się z każdą firmą niezależnie (jednego dla firmy A a drugiego dla firmy B) i user, który chce się połączyć z firmą A będzie logował się z konta dla tej firmy.
Dzięki temu będę miał mniej kont na serwerze.
Co o tym myślicie? Jakie jest wasze zdanie i podejście?