在Supabase中配置PostgreSQL行级安全策略时出现列不存在错误
解决PostgreSQL行级安全策略中的"Column 'P' does not exist"错误
你的报错核心原因是PostgreSQL的语法规则:双引号用于引用标识符(比如列名、表名),你写的"P"会被数据库误认为是一个列名,所以才会提示找不到P列。而字符串常量需要用单引号包裹。
修正后的完整策略代码如下:
CREATE POLICY "policy_name" ON public.table FOR SELECT TO authenticated USING ( access = 'P' OR auth.email() = ANY(include) );
如果想让逻辑更严谨(避免access取值既不是P也不是R时误通过),可以把条件补充完整:
CREATE POLICY "policy_name" ON public.table FOR SELECT TO authenticated USING ( access = 'P' OR (access = 'R' AND auth.email() = ANY(include)) );
内容的提问来源于stack exchange,提问作者RmR
相关产品推荐
相关产品推荐

