테이블 정책
-- 1. CREATE
CREATE POLICY "CREATE : 로그인한 사용자"
ON tableName
FOR INSERT
WITH CHECK (auth.uid() IS NOT NULL);
-- 2. READ
CREATE POLICY "READ : 모든 사용자"
ON tableName
FOR SELECT
USING (true);
-- 3. UPDATE
CREATE POLICY "UPDATE : 생성자"
ON tableName
FOR UPDATE
USING (auth.uid() = "userId");
-- 4. DELETE
CREATE POLICY "DELETE : 생성자"
ON tableName
FOR DELETE
USING (auth.uid() = "userId");
-- 참고
-- 1. USING (auth.uid() = "userId")에서 auth.uid()는 현재 로그인한 사용자 ID, userId 해당 테이블 행의 userId 컬럼값을 의미합니다.
-- 따라서 해당 정책은 로그인된 사용자의 고유 ID (auth.uid())와 테이블 행의 userId 컬럼값이 동일할 때만 해당 작업을 허용합니다.
-- 2. INSERT 정책을 생성할 때에는 WITH CHECK를, 이 외는 USING를 사용합니다.
-- 3. 컬럼명에 대문자가 포함되어 있다면 따움표로 감싸야합니다(ex : userId)
스토리지 정책
-- 1. READ : 모든 사용자
CREATE POLICY "READ : 모든 사용자"
ON storage.objects FOR SELECT
USING (bucket_id = 'bucketName');
-- 2. CREATE : 모든 사용자
CREATE POLICY "CREATE : 모든 사용자"
ON storage.objects FOR INSERT
WITH CHECK (bucket_id = 'bucketName');
-- 3. UPDATE : 모든 사용자
CREATE POLICY "UPDATE : 모든 사용자"
ON storage.objects FOR UPDATE
USING (bucket_id = 'bucketName')
WITH CHECK (bucket_id = 'bucketName');
-- 4. DELETE : 모든 사용자
CREATE POLICY "DELETE : 모든 사용자"
ON storage.objects FOR DELETE
USING (bucket_id = 'bucketName');
'백엔드 > Supabase' 카테고리의 다른 글
[Supabase] 배열 객체 컬럼을 가진 테이블을 생성하는 방법 (0) | 2025.04.28 |
---|---|
[Supabase] 수파베이스 이미지 불러오기 오류 (0) | 2025.04.17 |
[Supabase] 수파베이스 이미지 업로드 오류 체크사항 (1) | 2025.04.17 |
FCM 웹 푸쉬 알림 아이콘 변경 방법 | FCM 데이터 전달받는 방법 (0) | 2025.04.13 |
[Supabase] RLS를 위한 | 테이블 정책 생성 | 예시 SQL 코드 (0) | 2025.04.12 |