본문 바로가기
WIKI 기술 지식 베이스

권한 부여

원문 보기 위키 갱신

권한 부여 (Authorization)

Turso는 스코프가 지정된 JWT 기반 토큰으로 데이터베이스 접근을 제어해요. 토큰마다 데이터베이스, 권한 수준, 만료 시각으로 제한을 걸 수 있어서 각 클라이언트가 무엇을 할 수 있고 없는지 완전히 통제할 수 있어요.

출처: 문서

본문

Turso는 스코프가 지정된 JWT 기반 토큰으로 데이터베이스 접근을 제어해요. 모든 토큰은 데이터베이스, 권한 수준, 만료로 제한할 수 있어서, 각 클라이언트가 무엇을 할 수 있고 없는지 완전히 통제할 수 있어요.

스코프 수준 (Scoping Levels)

토큰은 넓은 것부터 좁은 것까지 여러 수준으로 스코프돼요:

Level Scope How to create
Group 그룹의 모든 데이터베이스 접근 turso group tokens create <group>
Database 단일 데이터베이스 접근 turso db tokens create <database>
Read-only 쿼리만 가능, 쓰기 불가 --read-only 플래그 추가
Table + Action 특정 테이블과 연산 -p <table>:<actions> 플래그 추가
Time-limited 지정 기간 후 자동 만료 --expiration 7d 플래그 추가

이건 조합할 수도 있어요. 예를 들어 단일 데이터베이스로 스코프되고 7일 후 만료되는 읽기 전용 토큰:

turso db tokens create mydb --read-only --expiration 7d

또는 모든 테이블 읽기와 comments 테이블 삽입만 허용하는 토큰:

turso db tokens create mydb \
  -p all:data_read \
  -p comments:data_add

토큰 발급하기 (Issuing Tokens)

토큰을 발급하는 방법은 두 가지예요:

두 방식 모두 테이블과 연산 수준에서 접근을 제어하는 세분화된 권한(fine-grained permissions)을 지원해요.

토큰 사용하기 (Using Tokens)

모든 토큰은 데이터베이스 클라이언트를 만들 때 authToken으로 전달해요:

import { connect } from "@tursodatabase/serverless";

const db = connect({
  url: "<your-database-url>",
  authToken: "<your-token>",
});

데이터베이스 URL은 turso db show <database-name> --url로 확인할 수 있어요.

더 알아보기 (Learn more)