Geo*_*nos 6 postgresql svelte supabase
我有一个消息表,位于 Supabase 的“公共”模式下。我试图从本地开发环境中获取所有行,但没有返回任何内容。
我想:
const response = await supabase.from('messages').select('*');
Run Code Online (Sandbox Code Playgroud)
使用Sveltekit作为客户端,以及加载函数:
/** @type {import('./$types').PageLoad} */
export async function load() {
const response = await supabase.from('messages').select('*');
return { response };
}
Run Code Online (Sandbox Code Playgroud)
这是响应的日志:
{@debug} /src/routes/+page.svelte (6:1)
{
data: {
response: {
error: null,
data: [],
count: null,
status: 200,
statusText: 'OK'
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
OP已经通过禁用RLS解决了这个问题。我将提供有关如何解决问题的更多背景信息。
RLS 代表行级安全性,它使得只有行的所有者才能查看自己的数据。假设用户A插入一行数据,只有用户A可以看到。如果您select *
以用户 B 身份运行,您将看不到它。
这有助于防止其他用户与用户的项目进行交互。
对于您的情况,还有两种其他方法可以处理此问题:
如果您是管理员并且应该有权访问所有数据,要初始化supabase javascript客户端,您可以使用服务密钥而不是匿名密钥,这将为您提供所有权限
在行级安全性规则中,您可以仅禁用 SELECT 规则,但不要禁用插入、更新和删除的 RLS。那么用户只能插入、更新和删除自己的东西,但可以查看每个人的东西。
归档时间: |
|
查看次数: |
4343 次 |
最近记录: |