Есть бд на postgresql(учебный проект). Также есть приложение на c#, которое позволяет взаимодействовать с данной бд(Просмотр/добавление/удаление И тд). В общем весь основной функционал.
Необходимо доработать. Абстрактный пример: бд сети магазинов. И необходимо чтобы работники каждого конкретного магазина видели в нескольких таблицах данной бд только те записи, которые принадлежат их магазину и взаимодействовали только с ними. А администратор из (например) главного офиса мог видеть и редактировать все записи.
Подскажите, пожалуйста, как оптимально это реализовать, и возможно ли(и если возможно, то как) реализовать это лишь на уровне бд, не переписывая само приложение для взаимодействия с бд(ну кроме минимальных правок: добавления авторизации)
Есть начальные знания в бд. Но куда копать чтобы реализовать такое - не уверен. Преподаватель сказал что знает как минимум 2 метода. Один проще, а другой сложнее.
На ум первым приходит топорный вариант - ограничить запросы, добавив в таблицы поля с id юзеров, которым можно с ними взаимодействовать, и разрешить юзерам выполнять только такие запросы. Но пока не знаю это реализовать. И хочется решения более простого и качественного.
Также догадываюсь что можно работать как-то через представления(view)(если я верно понял их смысл, ибо ранее и не использовал). По типу добавить колонку в каждую таблицу с id юзеров, которым можно. Получать это представление и давать пользователям соответствующей категории работать с соответствующим представлением. Но не уверен, можно ли через представление редакировать и удалять записи. Это выглядит лучше(имхо), но не уверен, нет ли более изящного и красивого решения (желательно с минимумом телодвижений).