권한 부여
권한 부여 (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)
토큰을 발급하는 방법은 두 가지예요:
- 플랫폼 토큰(Platform Tokens) — Turso CLI나 Platform API로 직접 토큰을 만들어요.
- 외부 인증 프로바이더(External Auth Providers) — 여러분의 인증 프로바이더(예: Clerk, Auth0)가 JWKS로 토큰을 발급하게 해요.
두 방식 모두 테이블과 연산 수준에서 접근을 제어하는 세분화된 권한(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로 확인할 수 있어요.