Я хотел бы создать политики для нескольких таблиц.Поскольку существует много таблиц, и все они должны иметь одинаковые политики (> 200), я хотел бы создать функцию, которую я мог бы вызывать.
Это политика, которую я хотел бы создать
create policy policy_name on table_name for all to user_name using (column = 'some_value');
Но поскольку существует много таблиц, я хотел бы создать такую функцию:
create or replace function add_policy(text, text, text) RETURNS void AS $$
create policy $1 on table1 for all to $2 using (column = $3);
create policy $1 on table2 for all to $2 using (column = $3);
...
create policy $1 on tablen for all to $2 using (column = $3);
$$ LANGUAGE SQL
Я хотел бы иметь возможность назвать это так:
DO $$ BEGIN
PERFORM add_policy('somepolicyname', 'someusername', 'valuetomatch');
END $$;
Я пробовал несколько версий этого, но я просто не могу найти способ сделать create policy
внутри функции.