반응형
팀 프로젝트 방콕스타일을 진행하면서 발생한 트러블 슈팅입니다.
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
);
느낀점❗
모든 유저에게 업데이트, 삭제 등 권한을 주게 되면 보안적인 측면에서 안 좋고, 이 경험을 통해 데이터베이스 보안의 필요성을 알게 되었습니다.
회고 🧐
코드를 작성하는 시간보다 오류를 해결하는 시간이 더 길고 힘들다는 걸 느낀 하루였습니다...
아직 많이 부족합니다. 조언 환영입니다~!
반응형
'공부 > 트러블 슈팅' 카테고리의 다른 글
[트러블 슈팅] 카카오맵 API를 활용한 캠핑장 데이터 렌더링 최적화 (0) | 2024.09.19 |
---|---|
[트러블 슈팅] SVG 컴포넌트 재사용 시 발생한 이미지 중복 문제 해결하기 (0) | 2024.09.15 |
[트러블 슈팅] MBTI 테스트 (Glitch에서 JSON-server의 응답 속도 차이) (1) | 2024.09.11 |
[트러블 슈팅] 방콕 스타일 (새로고침 시 좋아요 랜덤 활성화 이슈) (1) | 2024.09.02 |
[트러블 슈팅] 포켓몬 도감 (svg, router, 이벤트 버블링) (0) | 2024.08.26 |
[트러블 슈팅] styled-components 오류 (표준, 비표준 속성) (2) | 2024.08.16 |
[트러블 슈팅] 커스텀 훅의 업데이트가 반영되지 않을 때 (0) | 2024.08.13 |
[트러블 슈팅] 영화 검색 사이트 (TypeError, 애니메이션, 이미지 로딩) (0) | 2024.08.05 |