跳至主要內容

直接連線

總覽

Prisma Postgres 是您應用程式的絕佳選擇,無論您是透過 Prisma ORM 還是任何其他 ORM 或資料庫程式庫/工具進行連線。如果您將其與 Prisma ORM 搭配使用,Prisma Postgres 內建了連線池(connection pooling)以及整合式的快取層(由 Prisma Accelerate 提供支援)。

如果您透過其他工具連線,則可以使用符合 PostgreSQL 常規格式的 直接連線字串

如何透過直接 TCP 連線至 Prisma Postgres

若要取得直接連線字串,您需要:

  1. 在您的帳戶中開啟一個專案(或建立一個新專案)。
  2. 導覽至您現有的 Prisma Postgres 實例。
  3. 點擊儀表板上的 Connect to your database(連線至您的資料庫) 按鈕。
  4. 點擊 Generate new connection string(產生新的連線字串) 按鈕。
  5. 如果需要啟用連線池,請點擊切換按鈕。
  6. 複製下方產生的連線字串。

連線字串

格式

當您透過直接 TCP 連線至 Prisma Postgres 時,您的 連線字串 看起來如下:

DATABASE_URL="postgres://USER:PASSWORD@db.prisma.io:5432/?sslmode=require"

當您在 Prisma Postgres 實例中產生憑證時,系統會提供 USERPASSWORD 的值。以下是範例值:. 以下是一個包含範例值的範例:

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 環境變數:

export DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"

API_KEY 佔位符替換為您 Prisma Postgres 實例的 API 金鑰值。

啟動 TCP 通道

若要啟動代理伺服器,請執行以下指令:

npx @prisma/ppg-tunnel
顯示CLI結果
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 工具如 TablePlusDataGrip)連線至您的 Prisma Postgres 編輯器。為此,您只需提供上述輸出中的 hostport 即可。TCP 通道會透過 Prisma Postgres 連線 URL 中的 API 金鑰處理驗證,因此您可以省略 usernamepassword 的值。

自訂主機與連接埠

預設情況下,通道會監聽 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 資料庫的直接存取權。
© . This site is unofficial and not affiliated with Prisma Data, Inc.