跳至主要内容

直接连接

概述

Prisma Postgres 是您应用程序的理想选择,无论您是通过 Prisma ORM 还是任何其他 ORM、数据库库/工具连接。如果您与 Prisma ORM 一起使用,Prisma Postgres 具有内置连接池和集成缓存层(由 Prisma Accelerate 提供支持)。

如果您通过其他工具连接,您可以使用遵循传统 PostgreSQL 格式的直接连接字符串进行连接。

如何通过直接 TCP 连接到 Prisma Postgres

为了获取直接连接字符串,您需要

  1. 在您的账户中打开一个项目(或创建一个新项目)
  2. 导航到您的活跃 Prisma Postgres 实例。
  3. 点击仪表板中的连接到您的数据库按钮。
  4. 点击生成新连接字符串按钮。
  5. 如果启用连接池,请点击切换按钮
  6. 复制下方生成的连接字符串。

连接字符串

格式

当您通过直接 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 模式,因此您需要将 sslmode=require 附加到您的 TCP 连接字符串。

计费

当使用直接 TCP 连接到 Prisma Postgres 实例时,每个请求都算作一个可计费操作。请访问我们的定价页面了解更多信息。

暂时限制

关闭空闲连接

Prisma Postgres 会在长时间空闲后关闭空闲连接。如果这在您的应用程序中发生,您可以重新打开一个新连接。(大多数数据库客户端会自动重新连接。)

连接限制

免费版入门版专业版商业版
连接限制最多 10 个最多 10 个最多 50 个最多 100 个

查询和事务超时

免费版入门版专业版商业版
查询超时最长 10 秒最长 10 秒最长 10 秒最长 10 秒
交互式事务超时最长 15 秒最长 15 秒最长 15 秒最长 15 秒

有限的用户权限

用户权限仅限于读、写和模式更改。无法创建单独的数据库、管理用户和角色或执行其他管理操作。

TCP 隧道(已弃用)

警告

TCP 隧道功能已弃用,取而代之的是直接连接。请将直接连接用于所有新集成并迁移现有实现。

Prisma Postgres 可以通过使用 @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 编辑器,例如 psqlTablePlusDataGrip 等 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.