본문 바로가기

공부/트러블 슈팅

[트러블 슈팅] 방콕 스타일 (supabase RLS 오류)

반응형

팀 프로젝트 방콕스타일을 진행하면서 발생한 트러블 슈팅입니다.

 

Supabase RLS(행 수준 보안) 상태 업데이트 오류

발생한 오류 🔥

supabase를 사용하면서 좋아요 테이블 상태 업데이트를 시도할 때 결과가 반영되지 않고 빈 배열만 반환하는 오류가 발생했습니다.

 

해결 과정 🔎

RLS에 대해 인지하지 못하고 있을 때 요청을 보내는 쿼리문이 잘못됐나 여러 번 확인을 거치고 칼럼명과 쿼리문을 확인해 봤는데 아무런 문제가 없었습니다. 그래서 오류를 발견하기까지 오랜시간이 걸렸습니다.

 

그러다가 빈 배열을 반환하는 이유가 RLS 정책에 관련된 걸 알게 되었고 확인을 진행했습니다.

 

정책 확인

 

우선, RLS 정책이 올바르게 설정되었는지 점검했는데 설정이 안되어 있는 것을 확인했습니다. 그래서 해당 정책을 다시 한번 검토하고 필요에 따라 RLS 정책이 제대로 작동하도록 설정을 진행했습니다.

 

해결 방법 ✨

인증된 사용자에 대해서만 insert와 delete 활성화

// INSERT
alter policy "Enable insert for authenticated users only"
on "public"."likes"
to authenticated
with check (
  true
);
// DELETE
alter policy "Enable delete for authenticated users only"
on "public"."likes"
to authenticated
using (
  true
);

 

느낀점❗

모든 유저에게 업데이트, 삭제 등 권한을 주게 되면 보안적인 측면에서 안 좋고,  이 경험을 통해 데이터베이스 보안의 필요성을 알게 되었습니다.

 

회고 🧐

코드를 작성하는 시간보다 오류를 해결하는 시간이 더 길고 힘들다는 걸 느낀 하루였습니다...

 

아직 많이 부족합니다. 조언 환영입니다~!

반응형