Supabase 역할별 타임아웃

오리·2024년 11월 14일
0

Supabase에는 여러 레벨(세션, 기능, 글로벌, 역할)에서 각각의 타임아웃 값을 설정해줄 수 있다.

역할별 타임아웃

개념

timeout 설정에서의 역할은 anon, authenticated, service_role, postgres로 나뉜다.

https://supabase.com/docs/guides/database/postgres/roles

  • anon
    • 익명 사용자를 위한 역할
    • 인증되지 않은 사용자에게 할당
  • authenticated
    • 인증된 사용자에게 할당되는 역할
    • 기본적으로 로그인한 사용자의 역할
  • service_role
    • 서비스 또는 시스템 간 통신을 위해 사용되는 역할
    • ex) 백엔드 서버에서 Supabase에 접근할 때 service_role이 필요
    • 보통 모든 데이터에 대한 읽기 및 쓰기 권한을 가지는 토큰과 함께 사용
  • postgres
    • Supabase의 백엔드인 PostgreSQL 데이터베이스에서 제공하는 기본 역할
    • 데이터베이스에서 생성되는 기본적인 역할로, 보통 Supabase의 관리 영역에서 사용
    • 이 역할을 직접 사용할 일은 없음

타임아웃 기본값

  • anon: 3초
  • authenticated: 8초
  • service_role: 없음 (api에 의해 60초로 제한)
  • postgres: 없음 (글로벌 타임아웃에 의해 2분으로 제한)

타임아웃 변경

alter role example_role set statement_timeout = '10min'; -- could also use seconds '10s'

변경 사항을 반영하기 위해 postgREST를 다시 로드해야 함

NOTIFY pgrst, 'reload config';

타임아웃 확인

select
  rolname,
  rolconfig
from pg_roles
where
  rolname in (
    'anon',
    'authenticated',
    'postgres',
    'service_role'
    -- ,<ANY CUSTOM ROLES>
  );

```역할별 타임아웃

0개의 댓글