Изменение: политики RLS для room_bookings_analytics только для триггеров¶
Дата: 2026-03-16
Связанные документы: - [[docs/14_действия/действие_rls_room_bookings_analytics]] - [[docs/15_результаты/результат_rls_room_bookings_analytics]]
Проблема¶
При записи в public.room_bookings срабатывал триггер, который синхронизирует данные в public.room_bookings_analytics. Поскольку на room_bookings_analytics включён RLS (в том числе из-за авто-включения RLS на новых таблицах), операция внутри триггера выполнялась в контексте роли пользователя и могла блокироваться политиками/их отсутствием.
Решение¶
public.sync_room_bookings_analytics()переведена вSECURITY DEFINERи принудительно назначен владелецpostgres.- Для
public.room_bookings_analyticsдобавлены политики: service_role: полный доступ (для админских/сервисных операций);anonиauthenticated: разрешеныINSERT/UPDATE/DELETEтолько внутри триггера (условиеpg_trigger_depth() > 0).
Артефакты¶
- [[supabase/migrations/20260316113000_room_bookings_analytics_trigger_rls.sql]]