Моя компания создает приложение ASP.NET HR, и мы решили создать одну базу данных для каждого клиента. Это гарантирует, что клиенты не могут случайно просмотреть данные другого клиента, а также обеспечивает легкую масштабируемость (среди других преимуществ, которые уже обсуждались здесь ).
Мой вопрос - каков наилучший способ обеспечения безопасности и доступа к данным в таком сценарии? Мое намерение состоит в том, чтобы использовать общую базу данных для входа в систему / учетную запись, которая направит пользователя на правильный сервер / базу данных. Эта общая база данных также содержит функции приложения, к которым имеет доступ каждый пользователь / роль.
Я не планировал помещать какую-либо информацию о пользователях в каждую отдельную клиентскую базу данных, но другие члены моей команды считают, что отсутствие безопасности в каждой базе данных является огромной дырой (но они не могут сформулировать, насколько полезно дублирование логики общего доступа ).
Я что-то упустил? Должны ли мы добавить дополнительный уровень безопасности / аутентификации на уровне клиентской базы данных?
Обновление:
Одна из причин, по которой моя команда считала необходимым управление двумя пользователями, связана с контролем доступа. Все пользователи имеют роль по умолчанию (например, «Администратор», «Минимальный доступ», «Опытный пользователь» и т. Д.), Но администраторы клиента смогут уточнить разрешения для пользователей, имеющих доступ к своей базе данных. Мне все еще кажется возможным, чтобы это было в центральной базе данных, но моя команда не соглашается. Мысли?