RLS-политика есть, сервисная роль видит лишнюю строку. Учебный пример PostgreSQL 18:
RLS-политика есть, сервисная роль видит лишнюю строку. Учебный пример PostgreSQL 18: sql SELECT sample_id FROM demo.rls_example ORDER BY sample_id; Вымышленные ID (запрос не запускался): `limited_role` → `101, 102`; `service_role` → `101, 102, 103`. Реальные результаты обезличьте. 1. Для своей таблицы замените схему и имя в двух запросах к каталогам ниже. Проверьте метаданные в тех же сеансах и ролях, где обнаружили расхождение: sql SELECT current_user AS active_role, owner.rolname AS table_owner, c.relrowsecurity AS rls_on, c.relforcerowsecurity AS force_owner, pg_catalog.row_security_active(c.oid) AS rls_active, actor.rolsuper AS is_superuser, actor.rolbypassrls AS bypasses_rls FROM pg_catalog.pg_class AS c JOIN pg_catalog.pg_roles AS owner ON owner.oid = c.relowner JOIN pg_catalog.pg_roles AS actor ON actor.rolname = current_user WHERE c.oid = pg_catalog.to_regclass('demo.rls_example'); Пустой ответ этого запроса к `pg_class` — повод проверить базу, схему и имя; выводов о RLS он не даёт. `rls_on` — настройка таблицы; `rls_active` — действие RLS для роли. При `rls_on = true` и `rls_active = false` проверьте superuser, `BYPASSRLS` и права владельца, включая унаследованные при `force_owner = false`. Разные имена не исключают обход; `FORCE` не отменяет его для superuser/`BYPASSRLS`. 2. `rls_active = true` подтверждает применение RLS. Правильность границы доступа проверьте по политикам: sql SELECT policyname, roles, cmd, qual FROM pg_catalog.pg_policies WHERE schemaname = 'demo' AND tablename = 'rls_example'; Для прямого SELECT смотрите `cmd = SELECT`/`ALL`, `roles` с учётом `PUBLIC` и членства, `qual` как `USING`. Без применимой политики действующая RLS закрывает строки. При нескольких применимых политиках один `qual` не определяет видимость: важно сочетание; подробности вне этого сценария. При `rls_on = false` сохранённая политика не фильтрует. Ошибка — править политику до проверки роли. Сохраните порядок проверки роли и политики; такие границы доступа полезно разбирать на практике администрирования PostgreSQL. #PostgreSQL #RLS #АдминистрированиеБД #УЦФОРС