Один из самых умных трюков для защиты данных, которые я видел в продакшене?
—> Временной RLS (Temporal RLS)
Row-Level Security — это функция PostgreSQL, позволяющая управлять тем, какие строки может видеть пользователь, прямо на уровне базы данных.
Вместо того чтобы фильтровать данные в коде приложения, RLS переносит контроль доступа в саму БД
Представь себе WHERE, который всегда включён — и индивидуален для каждого пользователя или роли.
Пример использования:
Финтех-компании нужно было дать аналитикам доступ к транзакциям, но с задержкой в 24 часа, чтобы снизить риск мошенничества и инсайдерской торговли
Вместо написания логики в приложении или BI-инструменте, они полностью реализовали это на уровне базы данных.
Как?
1. Включили RLS на таблице
2. Определили политику фильтрации строк
3. Включили принудительное применение RLS для всех обращений (необязательно, но рекомендуется)
Даже если кто-то подключится к базе напрямую через psql, BI-инструмент или SQL-клиент — он увидит только строки, старше 24 часов. Без исключений.
⏩Безопасность обеспечивается у источника
⏩Политики версионируются вместе со схемой
⏩Код приложения не участвует
Вывод:
RLS — это не только про фильтрацию арендаторов. С его помощью можно строить умные правила: задержка по времени, доступ по пользователям, мягкое удаление — и всё это реализуется самой БД
👉 @SQLPortal
Post #2042
1.26K

- ❤ 5
- 👍 1