使用策略和 RLS 设置行可见性
Set rows visibility using Policy and RLS
我需要将所有 select
语句的 deleted = true
值的行隐藏到 table。
我考虑过将行级安全性与 select
策略一起使用,但似乎行不通。
这是我尝试过的:
alter table my_table force row level security;
create policy my_selection_policy on my_table
for select to public using (deleted is not true);
预期的结果是现在 my_table
中的所有 deleted
行应该从 my_table
上的任何 select 查询中自动过滤掉。
所以,基本上,查询 select * from my_table where deleted = true;
会 return 给我一个空结果。
如何正确实现此类功能? RLS + 政策是实施该政策的正确方法吗?或者我应该只使用 before select
触发器?
So, basically, the query select * from my_table where deleted = true; would return me an empty result.
因为在这种情况下您不需要使用 where
子句从结果集中删除软删除的记录。
您只需要 select * from my_table;
条已使用 using (deleted is not true);
过滤掉的软删除记录
我需要将所有 select
语句的 deleted = true
值的行隐藏到 table。
我考虑过将行级安全性与 select
策略一起使用,但似乎行不通。
这是我尝试过的:
alter table my_table force row level security;
create policy my_selection_policy on my_table
for select to public using (deleted is not true);
预期的结果是现在 my_table
中的所有 deleted
行应该从 my_table
上的任何 select 查询中自动过滤掉。
所以,基本上,查询 select * from my_table where deleted = true;
会 return 给我一个空结果。
如何正确实现此类功能? RLS + 政策是实施该政策的正确方法吗?或者我应该只使用 before select
触发器?
So, basically, the query select * from my_table where deleted = true; would return me an empty result.
因为在这种情况下您不需要使用 where
子句从结果集中删除软删除的记录。
您只需要 select * from my_table;
条已使用 using (deleted is not true);