提问人:Nathan Tew 提问时间:10/12/2023 更新时间:10/31/2023 访问量:35
使用“in”的 supabase RLS 策略总是失败
supabase RLS policy using "in" always fails
问:
我正在为 supabase 中的表设置 RLS,并从我的 React 应用程序中查询它。
使用此策略适用于:
(project_id = 8)
但是,这总是失败的:
(project_id IN ( SELECT projects.id FROM projects))
即使我已经确认项目表有一条 id 为 8 的记录:
select id from projects where id = 8
| id |
| -- |
| 8 |
因为第一个有效,所以我非常有信心它与我如何设置 RLS、如何连接到数据库、任何 jwt 问题或我如何查询数据无关。还有什么问题?难道是不允许请求的制作者查询项目表,因此策略总是失败吗?如果是这样,我该如何解决这个问题?仅仅因为我需要 RLS 来访问其他表,似乎没有意义。
答:
0赞
Nathan Tew
10/31/2023
#1
此策略始终返回 false,因为表上的 RLS 会阻止此表查询它(此 RLS 策略适用于另一个表,而不是 ),因此始终导致不返回任何记录。projects
projects
SELECT projects.id FROM projects
我不得不改用安全定义器函数,它可以绕过其他表上的 RLS:
评论