直接連線
總覽
Prisma Postgres 是您應用程式的絕佳選擇,無論您是透過 Prisma ORM 還是任何其他 ORM 或資料庫程式庫/工具進行連線。如果您將其與 Prisma ORM 搭配使用,Prisma Postgres 內建了連線池(connection pooling)以及整合式的快取層(由 Prisma Accelerate 提供支援)。
如果您透過其他工具連線,則可以使用符合 PostgreSQL 常規格式的 直接連線字串。
如何透過直接 TCP 連線至 Prisma Postgres
若要取得直接連線字串,您需要:
- 在您的帳戶中開啟一個專案(或建立一個新專案)。
- 導覽至您現有的 Prisma Postgres 實例。
- 點擊儀表板上的 Connect to your database(連線至您的資料庫) 按鈕。
- 點擊 Generate new connection string(產生新的連線字串) 按鈕。
- 如果需要啟用連線池,請點擊切換按鈕。
- 複製下方產生的連線字串。

連線字串
格式
當您透過直接 TCP 連線至 Prisma Postgres 時,您的 連線字串 看起來如下:
DATABASE_URL="postgres://USER:PASSWORD@db.prisma.io:5432/?sslmode=require"
當您在 Prisma Postgres 實例中產生憑證時,系統會提供 USER 和 PASSWORD 的值。以下是範例值:. 以下是一個包含範例值的範例:
DATABASE_URL="postgres://2f9881cc7eef46f094ac913df34c1fb441502fe66cbe28cc48998d4e6b20336b:sk_QZ3u8fMPFfBzOID4ol-mV@db.prisma.io:5432/?sslmode=require"
SSL 模式
透過直接 TCP 連線至 Prisma Postgres 時必須使用 SSL 模式,因此您需要在 TCP 連線字串後方加上 sslmode=require。
計費
使用直接 TCP 連線至 Prisma Postgres 實例時,每項請求都會被視為一項 可計費操作。詳細資訊請參閱我們的 定價頁面。
暫時性限制
關閉閒置連線
Prisma Postgres 會在閒置一段時間後關閉連線。如果您的應用程式遇到此情況,您可以重新開啟一個新的連線。(大多數資料庫客戶端都會自動重新連線。)
連線限制
| 免費版 | 入門版 | 專業版 | 商業版 | |
|---|---|---|---|---|
| 連線限制 | 最多 10 個 | 最多 10 個 | 最多 50 個 | 最多 100 個 |
查詢與交易逾時
| 免費版 | 入門版 | 專業版 | 商業版 | |
|---|---|---|---|---|
| 查詢逾時 | 最長 10 秒 | 最長 10 秒 | 最長 10 秒 | 最長 10 秒 |
| 互動式交易逾時 | 最長 15 秒 | 最長 15 秒 | 最長 15 秒 | 最長 15 秒 |
有限的使用者權限
使用者權限僅限於讀取、寫入和結構(schema)變更。無法建立獨立的資料庫、管理使用者與角色,或執行其他管理操作。
TCP 通道(已棄用)
TCP 通道功能已被 棄用,改為推薦使用 直接連線。請對所有新的整合使用直接連線,並遷移既有的實作。
Prisma Postgres 可以透過 TCP 通道安全存取,使用 @prisma/ppg-tunnel 套件,這是一個專為本地資料庫工作流程設計的驗證代理。此套件透過本機 TCP 伺服器建立與 Prisma Postgres 的安全連線,在自動處理流量路由和驗證的同時提供安全存取。
這是 Prisma Postgres 的 早期存取 (Early Access) 功能。不建議用於生產環境,也不適用於應用程式層級的存取。
在早期存取階段,使用 TCP 通道是免費的。
先決條件
- 您的機器上已安裝 Node.js
- 一個設定為
DATABASE_URL環境變數的 Prisma Postgres 資料庫連線字串
匯出環境變數
通道要求您將下列 DATABASE_URL 環境變數設定為您 Prisma Postgres 實例的連線 URL。如果您是從已經設定好 .env 檔案(內含 DATABASE_URL)的專案中執行通道指令,則可以跳過此步驟,因為通道會自動抓取該變數。
若要在終端機對話中暫時匯出 DATABASE_URL 環境變數:
- macOS
- Linux
- Windows
export DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
export DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
set DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
將 API_KEY 佔位符替換為您 Prisma Postgres 實例的 API 金鑰值。
啟動 TCP 通道
若要啟動代理伺服器,請執行以下指令:
npx @prisma/ppg-tunnel
Prisma Postgres auth proxy listening on 127.0.0.1:52604 🚀
Your connection is authenticated using your Prisma Postgres API key.
...
==============================
hostname: 127.0.0.1
port: 52604
username: <anything>
password: <none>
==============================
這將會在隨機分配的 TCP 連接埠上啟動通道。代理會自動處理驗證,因此任何資料庫憑證皆會被接受。通道也會加密流量,這意味著客戶端應設定為不需要 SSL。
您現在可以使用您最愛的 PostgreSQL 客戶端(例如 psql,或 GUI 工具如 TablePlus 或 DataGrip)連線至您的 Prisma Postgres 編輯器。為此,您只需提供上述輸出中的 host 和 port 即可。TCP 通道會透過 Prisma Postgres 連線 URL 中的 API 金鑰處理驗證,因此您可以省略 username 和 password 的值。
自訂主機與連接埠
預設情況下,通道會監聽 127.0.0.1 並分配一個隨機連接埠。由於它提供了對您 Prisma Postgres 資料庫的存取權,因此僅應在受信任的網路內暴露。您可以使用 --host 和 --port 旗標指定自訂主機與連接埠:
npx @prisma/ppg-tunnel --host 127.0.0.1 --port 5432
後續步驟
本機通道可讓您從第三方資料庫編輯器(如 Postico、DataGrip、TablePlus 和 pgAdmin)存取 Prisma Postgres。詳細資訊請參閱此 章節。
安全性考量
使用 TCP 通道時,請注意以下事項:
- 該通道不支援結構管理(即 Prisma Migrate 以外的 DDL 查詢)。
- 通道不應暴露於不受信任的網路中。
- 務必安全儲存 API 金鑰,避免將其寫死(hardcode)在程式碼中。
- 確保僅有必要的使用者擁有對 Prisma Postgres 資料庫的直接存取權。