跳到主要內容

直接連線

概述

Prisma Postgres 是您應用程式的理想選擇,無論您是透過 Prisma ORM 還是任何其他 ORM、資料庫庫/工具連線到它。如果您將其與 Prisma ORM 一起使用,Prisma Postgres 將提供內建的連線池和整合的快取層(由 Prisma Accelerate 提供支援)。

如果您透過其他工具連線到它,可以使用遵循常規 PostgreSQL 格式的直接連線字串進行連線。

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

要獲取直接連線字串,您需要

  1. 在您的賬戶中開啟一個專案(或建立一個新專案)
  2. 導航到具有活動 Prisma Postgres 例項的環境
  3. 點選專案側邊導航中的API 金鑰選項卡
  4. 點選建立 API 金鑰按鈕
  5. 在彈窗中,為 API 金鑰提供一個名稱,然後點選建立
  6. 複製以 postgres:// 開頭的連線字串,這就是您的直接連線字串

連線字串

格式

當您透過直接 TCP 連線到 Prisma Postgres 時,您的連線字串如下所示

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

USERPASSWORD 值在您生成 Prisma Postgres 例項憑據時提供,在。以下是一個包含示例值的例子

DATABASE_URL="postgres://2f9881cc7eef46f094ac913df34c1fb441502fe66cbe28cc48998d4e6b20336b:sk_QZ3u8fMPFfBzOID4ol-mV@db.prisma.io:5432/?sslmode=require"

SSL 模式

透過直接 TCP 連線到 Prisma Postgres 時需要 SSL 模式,因此您需要在 TCP 連線字串中追加 sslmode=require

計費

當使用直接 TCP 連線到 Prisma Postgres 例項時,每個 SQL 查詢都計為一次可計費操作。在我們的定價頁面瞭解更多資訊。

臨時限制

關閉空閒連線

Prisma Postgres 會在長時間不活動後關閉空閒連線。如果您的應用程式中發生這種情況,您可以重新開啟一個新的連線。(大多數資料庫客戶端會自動重新連線。)

連線限制

當直接連線處於早期訪問階段時,適用以下連線限制

Starter(免費)ProBusiness
連線限制最多 20最多 20最多 20

查詢和事務超時

當直接連線處於早期訪問階段時,適用以下超時設定

Starter(免費)ProBusiness
查詢超時最長 10 秒最長 10 秒最長 10 秒
互動式事務超時最長 15 秒最長 15 秒最長 15 秒

有限的使用者許可權

使用者許可權僅限於讀、寫和模式更改。無法建立單獨的資料庫、管理使用者和角色或執行其他管理操作。

TCP 隧道

Prisma Postgres 可以透過 TCP 隧道安全地訪問,使用 @prisma/ppg-tunnel 包,這是一個專為本地資料庫工作流設計的認證代理。此包透過本地 TCP 伺服器與 Prisma Postgres 建立安全連線,在自動處理流量路由和認證的同時,實現安全訪問。

注意

這是 Prisma Postgres 的一項早期訪問功能。不建議將其用於生產環境,也不適用於應用程式級別的訪問。

在早期訪問階段,TCP 隧道的使用將免費。

先決條件

  • 您的機器上已安裝 Node.js
  • 一個 Prisma Postgres 資料庫連線字串,設定為名為 DATABASE_URL 的環境變數

匯出環境變數

隧道要求您將 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 客戶端連線到 Prisma Postgres 編輯器,例如 psql 或像 TablePlusDataGrip 這樣的 GUI 工具。為此,您只需提供上面輸出中的 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 金鑰,並避免硬編碼它們。
  • 確保只有必要的使用者才能直接訪問 Prisma Postgres 資料庫。
© . This site is unofficial and not affiliated with Prisma Data, Inc.