TIL/2023

0821-TIL-Supabase table policies 설정

숨숨123 2023. 8. 22. 00:30

Supabase

Supabase에서 내보낸 타입 사용하기

  • Supabase에서 table을 생성할 때 타입을 지정하는데, 그 지정한 타입을 ts파일로 내보낼 수가 있다. table의 모든 type이 interface로 지정되어있어서 평소처럼 export에서 원하는 컴포넌트에서 타입을 사용하면 된다.
  • 밑에 쓰여진 형식으로 필요한 부분을 지정해서 export해서 사용할 수 있다.
    • 해당 방법이 번거롭다면, 그냥 컴포넌트에서 Database['public']... 으로 불러와서 사용해도 된다.
export type PinType = Database['public']['Tables']['pins']['Update'];
export type UserType = Database['public']['Tables']['users']['Row'];
export type PlanType = Database['public']['Tables']['plans']['Insert'];

 

Supabase Table 권한 확인하는 법

SELECT * FROM information_schema.table_privileges WHERE table_name = 'your_table_name';
  • 위의 코드를 supabase 사이트의 SQL Editor에서 입력하고 실행한다.

 

Supabase Policies 설정하는 법

  • 원하는 테이블의 탭에서 New Policy를 눌러서 원하는 정책을 추가할 수 있다.
  • 처음 테이블을 만든 상태일 때는 insert와 select에 대한 정책만 설정되어 있다.
    • 읽기랑 쓰기만 정책이 설정되어 있어서인지 pins의 data를 update하려니 되지 않았다.

  • pins 테이블의 update 관련 정책을 추가했다.
  • 위의 이미지는 그냥 true만 설정되어 있는데, 이는 어떤 사용자이던 해당 테이블을 update 할 수 있다는 것을 의미한다.
  • 만약 해당 테이블에 user_id라는 coloum이 있고, 로그인한 유저만 update를 사용할 수 있도록 설정하고 싶다면 아래와 같이 적으면 되는 것 같다.
  • auth.uid() = user_id

 

참고한 블로그

https://cpro95.tistory.com/657

 

supabase와 NextJS로 블로그 만들기 1편

안녕하세요? 오늘은 지금껏 만들어 왔던 supabase 로그인 구현 템플릿에 더해서 Supabase 데이터베이스를 이용해서 간단한 블로깅 시스템을 만들어 보겠습니다. 먼저, 블로그 데이터를 저장할 DB의

cpro95.tistory.com