在视图上应用行级安全策略

Applying a row-level-security policy on a view

我对整个 Supabase 有点陌生。我正在尝试将策略应用于我创建的视图。我不确定这是否可能,但我不明白为什么不可能。由于 Supabase 方面,我不认为这个问题与此 重复。

我尝试使用以下 example 但我没有使用 table,而是使用了视图。

create policy "Team members can update team details if they belong to the team."
  on teams_view
  for select using (
    auth.uid() in (
      select user_id from members
      where team_id = id
    )
  );

不幸的是,postgresql 抱怨 "teams_view" is not a table,这当然是正确的。问题是:是否有对视图应用策略的正确方法?如果有,它会是什么样子?

不,目前 PostgreSQL 中没有允许您这样做的功能。显而易见的想法是在基础表上定义策略,但不会为调用用户检查策略,而是为视图所有者检查策略。

目前 a patch in the pipeline 允许您在基础表上定义策略并使其按照您的意愿工作;如果您有兴趣,可以回复主题 and/or 查看补丁。