У меня есть таблица, к которой я пытаюсь применить политику, настройка выглядит примерно так:
create role anonymous nologin;
create schema api;
create schema private;
create table private.mytable(
id serial primary key,
description text default ''
);
create view api.mytable as select * from private.mytable;
insert into api.mytable (description) values ('row 1'), ('row 2');
grant usage on schema api to anonymous;
grant select on api.mytable to anonymous;
alter table private.mytable enable row level security;
create policy mytable_policy on private.mytable
for select
using (null);
Когда я устанавливаю роль на anonymous
и выбираю все записи из mytable
:
set role anonymous;
select * from api.mytable;
Я не ожидаю возврата строк, так как мое выражение в предложении using
в политике - null
, но я получаю все.
Я пробовал разные версии postgresql
(9.5, 9.6, 10.3), но все они ведут себя одинаково, я что-то здесь не так делаю?