2017-10-06 2 views
0

postgres의 행 수준 보안 정책에 대한 사용 권한 확인 내에서 select을 추가하려고합니다.행 수준 보안 설정으로 선택

내가 여기 일을 걱정하는 2 표) 그룹 2) group_member이

  • 그룹 - GROUP_ID 및 person_id로 (즉,이 그룹을 만든 사람)
  • group_member이다가 - GROUP_ID하고 person_id

내가 말하고자하는 것은 그룹 소유자가 group_member를 걷어차거나 group_member를 단독으로 떠날 수있는 능력입니다. - group_id은 어디에서 오는 syntax error at or near "group"

내가 의심이 포스트 그레스가 이해하지 못하는

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) 
    )); 

는 그러나, 나는 다음과 같은 오류가 발생합니다 :

여기 내 정책입니다. 이 경우 일반적으로 group에 대해 혼란 스러울 수 있습니다. 제 질문은, 제가 여기서 무엇을 놓치고 있습니까? 이 기능을 어떻게 작동시킬 수 있습니까?

답변

2

GROUP은 SQL의 키워드입니다. 테이블 이름으로 사용하지 마십시오. 당신이 그것을 사용해야하는 경우, 당신은 그것을 인용해야합니다.

ON public."group" 

WHERE "group".id 
+0

덕분에이 일! – Parris