В первой части было разобрано, как настроить RLS в Go, почему
is_local=true спасает от утечек в PgBouncer, и как покрыть это интеграционными тестами. Если вы еще не настроили базовую изоляцию, начните оттуда.Сегодня мы пойдем глубже. Мы не будем говорить о синтаксисе. Мы поговорим об архитектуре. О том, почему RLS - это не просто "удобный фильтр", а нативный механизм инкапсуляции, который решает проблемы распределенных систем и рисков безопасности прямо в слое данных, не раздувая Ops-сложность до сотен схем и баз.
Кому и зачем читать?
Junior/Middle: Поймете, почему RLS - это архитектурный выбор, а не просто
WHERE tenant_id = ?. Узнаете про TOCTOU и как его избежать.Senior/Architect: Увидите паттерны для highload (партиционирование + RLS) и production-грабли (матвьюхи, репликация).
Читать: https://habr.com/ru/articles/988744/
#ru
@go_in_action | Другие наши каналы