Jace Docs

Supabase

권한 부여

upsert를 위한 권한:

  • USAGE: 스키마에 접근할 권한 (이미 하신 것)
  • INSERT: 새로운 데이터를 넣을 권한
  • UPDATE: 기존 데이터를 수정할 권한
  • SELECT: 중복 체크를 위해 기존 데이터를 조회할 권한
-- 1. 테이블 레벨에서 권한 부여 (특정 테이블만 지정하거나 ALL TABLES 사용)
GRANT ALL ON ALL TABLES IN SCHEMA public TO anon, authenticated, service_role;

-- 2. 시퀀스(Sequence) 권한 부여 (ID 자동 증가를 위해 필수)
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO anon, authenticated, service_role;

-- 3. 함수 권한 부여 (필요한 경우)
GRANT ALL ON ALL ROUTINES IN SCHEMA public TO anon, authenticated, service_role;
-- 1. 스키마에 대한 권한 부여
GRANT USAGE ON SCHEMA public TO anon, authenticated, service_role;

-- 2. 해당 테이블에 대한 모든 권한 부여 (테이블명에 실제 이름을 넣으세요)
GRANT ALL ON TABLE "테이블명" TO anon, authenticated, service_role;

-- 3. API 서버(PostgREST)가 설정을 다시 읽도록 캐시 새로고침
NOTIFY pgrst, 'reload schema';

CORS

Supabase에서 접근 도메인을 관리하는 것은 크게 두 가지 관점으로 나뉩니다. 하나는 **어떤 사이트(도메인)에서 내 Supabase API에 접근할 수 있게 할 것인가(CORS/Auth)**이고, 다른 하나는 내 Supabase 프로젝트 자체를 커스텀 도메인으로 연결하는 것입니다.


1. 인증 및 CORS 관리 (Redirect URLs)

사용자가 로그인을 완료한 후 돌아올 도메인이나, 특정 도메인에서만 인증 요청을 보낼 수 있도록 제한하는 설정입니다.

  • 설정 위치: Authentication > URL Configuration
  • Site URL: 서비스의 메인 도메인을 입력합니다 (예: https://myapp.com).
  • Redirect URLs: 소셜 로그인이나 이메일 인증 후 리다이렉트될 수 있는 허용 도메인 목록을 추가합니다. (예: http://localhost:3000, https://staging.myapp.com)
  • 효과: 여기에 등록되지 않은 도메인에서 인증 요청을 보내거나 리다이렉트를 시도하면 보안상 차단됩니다.

2. 커스텀 도메인 설정 (Custom Domains)

기본적으로 제공되는 xxxx.supabase.co 대신 api.myapp.com 같은 본인의 도메인을 사용하는 기능입니다.

  • 대상: 프로젝트의 API URL 및 인증 메일 발송 주소 등.
  • 설정 방법: Settings > General > Custom Domain
  • 절차:
    1. 사용할 서브도메인 입력 (예: api.example.com).
    2. 제공되는 CNAME 레코드를 본인의 도메인 관리 서비스(Cloudflare, Route53 등)에 등록.
    3. TXT 레코드를 통해 소유권 인증.
  • 주의사항: 커스텀 도메인은 보통 Pro Plan 이상에서 지원됩니다.

3. 데이터베이스 레벨 접근 제한 (Network Restrictions)

특정 IP 주소에서만 데이터베이스에 직접 접속(Port 5432 등)할 수 있도록 제한하고 싶을 때 사용합니다.

  • 설정 위치: Settings > Network Constraints
  • 기능: 특정 IP 대역(CIDR)을 화이트리스트에 등록하여 외부로부터의 무분별한 DB 접속을 차단합니다.
  • 참고: supabase-js를 통한 API 호출(PostgREST)은 이 설정의 영향을 받지 않고 HTTP 통신 보안 정책을 따릅니다.

4. Cloudflare와 연동 시 주의사항 (Proxy)

만약 Cloudflare를 사용 중이라면, Supabase 커스텀 도메인 설정 시 Cloudflare의 **Proxy(주황색 구름)**를 끄고 DNS Only 모드로 먼저 인증해야 할 수도 있습니다. 인증 완료 후 다시 프록시를 켤 수 있지만, SSL 인증서 충돌 여부를 확인해야 합니다.

현재 Mac Studio 환경에서 로컬 테스트 중이시라면, Site URLhttp://localhost:3000이나 현재 사용 중인 로컬 포트를 반드시 추가해 두어야 supabase-js 작업 시 도메인 관련 에러를 피할 수 있습니다.

혹시 특정 도메인에서만 supabase-js가 동작하게 만들고 싶은 상황인가요, 아니면 API 주소 자체를 바꾸고 싶은 상황인가요?

On this page