postgresql - 如何在 postgresql 中创建一个在表上创建策略的函数
问题描述
我想在多个表上创建策略。由于有很多表并且它们都应该具有相同的策略(> 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
内部函数。