именно на уровне субд. Задача простая: нужно разделить доступы в рамках одного сервера между разными пользователями. И в рамках бд (что можно через hba.conf) и в рамках схем, объектов итд. Гугление дает лишь примеры уровня "раздай на все таблицы", "добавь правило на раздачу права Х пользователю Y при добавлении таблицы" и прочее подобное. А хотелось бы понимать как оно там внутри работает и как правильно в той или иной ситуации сделать.
можно примерно как тут:
https://t.me/pgsql/246213вы не сможете найти готового решения, т.к. оно зависит полностю от ваших особенностей.
в целом, доступ делиться на следующие компоненты (3 уровня):
- доступ к объектам в базе даётся группам доступа (в примере выше группы очень общие), например: ro/rw доступ к клиентским данным, к настройкам сервиса, к тарификации и т.д.
- создаются целевые группы (ACL) по роду деятельности: операционисты, поддержка, админы, финансы и т.д., каждой целевой группе присваиваются нужные ей группы доступа
- доступ целевым группам прописывается в pg_hba.conf
- пользователей включают в нужные целевые группы