Select 具有行级安全设置
Select with Row Level Security Settings
我正在尝试在 postgres 的行级安全策略的权限检查中添加 select
。
我这里有2个表要关心1)组2)group_member
- 组 - 有一个 group_id 和 person_id(即制作
组)
- group_member - 有 group_id 和 person_id
我想表达的是群主踢group_member或者group_member自己离开的能力
这是我的政策:
CREATE POLICY delete_group_member ON public.group FOR DELETE TO hatch_contributor USING (
person_id = current_setting('jwt.claims.person_id')::integer or
EXISTS (
SELECT * FROM group WHERE group.id = group_id AND group.person_id = current_setting('jwt.claims.person_id')::integer)
));
但是,我收到以下错误 - syntax error at or near "group"
我怀疑,postgres 不明白 group_id
的来源。在这种情况下,一般来说可能对 group
感到困惑。我的问题是,我在这里错过了什么?我怎样才能让它工作。
GROUP
是 SQL 中的关键字。不要将它用于 table 名称。如果一定要用,一定要引用,例如
ON public."group"
和
WHERE "group".id
我正在尝试在 postgres 的行级安全策略的权限检查中添加 select
。
我这里有2个表要关心1)组2)group_member
- 组 - 有一个 group_id 和 person_id(即制作 组)
- group_member - 有 group_id 和 person_id
我想表达的是群主踢group_member或者group_member自己离开的能力
这是我的政策:
CREATE POLICY delete_group_member ON public.group FOR DELETE TO hatch_contributor USING (
person_id = current_setting('jwt.claims.person_id')::integer or
EXISTS (
SELECT * FROM group WHERE group.id = group_id AND group.person_id = current_setting('jwt.claims.person_id')::integer)
));
但是,我收到以下错误 - syntax error at or near "group"
我怀疑,postgres 不明白 group_id
的来源。在这种情况下,一般来说可能对 group
感到困惑。我的问题是,我在这里错过了什么?我怎样才能让它工作。
GROUP
是 SQL 中的关键字。不要将它用于 table 名称。如果一定要用,一定要引用,例如
ON public."group"
和
WHERE "group".id