Я также работаю в компании, которая разрабатывает продукт SaaS в течение многих лет.
Ваш образ мышления правильный.
Пока данные логически разделены соответствующим уникальным идентификатором, который принадлежит конкретному пользователю, вы находитесь на правильном пути.
Вы можете отделить данные, создав отдельную базу данных / схему для каждого из ваших клиентов, изолируя их друг от друга.
Если вы действительно обеспокоены тем, что ваши серверы взломаны, вы можете попытаться разделить деликатные данные на нескольких серверах, чтобы у вас не было всех данных в одном месте. Это потребует более сложных процедур обслуживания, при которых необходимо обновлять каждый сервер для каждого обновления системы, даже не говоря о стоимости такой архитектуры.
Вы всегда можете расширить и создать физическое разделение, когда определенные данные могут находиться на другом сервере базы данных, но я думаю, что виртуальное разделение данных в большинстве случаев более чем нормально - если все сделано правильно.