Как разграничить видимость данных в таблицах Postgresql?
Имеется некая система на Postgresql обслуживающая нескольких компаний-клиентов. Из-за специфики деятельности данные клиентов нельзя разделить на разные БД, схемы, таблицы (т.е. данные разных клиентов находятся в одних и тех же таблицах). На текущий момент разделение доступа к данным реализовано на уровне клиентского приложения. Клиенту выдаётся приложение с конкретно его идентификатором, и оно "не показывает" чужие данные, но логины/пароли пользователей внутри компании-клиента разные (необходимо для ведения аудита). Если подключиться с помощью стороннего софта с этими логинами/паролями, то будет доступ ко всем данным. Естественно, это даже дырой в безопасности сложно назвать, это просто открытые данные на ладони.
Нужен совет, как можно разграничить видимость данных, да и вообще по архитектуре подобных систем.
Отдельный сервис между базой и неподконтрольными вам клиентами - то что вам необходимо сделать. База в мир открыта быть не должна. DoS делается довольно просто даже без знания паролей, а уж с доступом...
Спасибо, это то, что искал!
База в мир светить не будет, только через VPN, но подумал - сервис действительно лучше сделать. В любом случае подниму вопрос.