一个连接,每个表面
您的 Azure PostgreSQL 数据可以存储在哪里
- 1 出站连接
- 0 入境口岸
- 只读 · 凭据保留
运行
- 为您的团队、供应商和合作伙伴
-
在 Excel 插件 · 按需刷新
-
谷歌工作表 附加组件 · 按需刷新
-
新星人工智能 用简单的英语提问 · 文本转 SQL
-
数据查看器 分享实时结果 · 团队、供应商、合作伙伴 · 任何设备
- 对于应用程序和系统
-
REST API JSON 端点 · OpenAPI 3.1
-
Power BI Power Query M
-
计划同步 Google Sheets · Airtable · Baserow · SeaTable · Smartsheet · Anvil
- 人工智能工具
-
人工智能助手 Claude · Cursor · MCP 服务器
- 已送达
-
警报和报告 Slack · Discord · 电子邮件 · Webhook
Query Streams 通过一个只读连接,从 Microsoft Excel、Google Sheets、Power BI、AI 助手(通过 MCP)和 REST 端点读取 Azure Database for PostgreSQL 数据库。网络代理运行在虚拟网络 (VNet) 内的虚拟机上,并向外拨号,因此服务器无需公共访问权限,也无需防火墙规则。所有 Azure 主机均强制执行 TLS,并且内置的 6432 端口 PgBouncer 会被自动识别和适配。
Azure Database for PostgreSQL 就是网络上的 PostgreSQL。 — 这是标准驱动程序,因此以下所有指南均适用。唯一特定于 Azure PostgreSQL 的部分是连接字符串,该部分将在后续章节中介绍。 连接详情.
- 为您的团队、供应商和合作伙伴
-
Azure PostgreSQL 到 Excel 微软 Excel · Excel 加载项
将 Azure PostgreSQL 的实时结果直接提取到工作表中,并按需刷新——桌面版 Excel、Excel Online、Microsoft 365。
PostgreSQL 指南 -
Azure PostgreSQL 到 Google Sheets 表格插件
从侧边栏运行已保存的 Azure PostgreSQL 查询,并将结果行拖放到工作表中。共享协作者可以自行刷新工作表。
PostgreSQL 指南 -
向 Nova 咨询 Azure PostgreSQL Nova AI · 文本转 SQL
用简单的英语提问。Nova 已经了解您的 Azure PostgreSQL 表,会自动编写并运行 SQL 语句,解释结果并绘制图表——无需编写查询语句,也无需提供任何凭据。
Nova 的工作原理 -
Azure PostgreSQL 到数据查看器 结果共享 · 团队、供应商、合作伙伴 · 手机、平板电脑、台式机
您可以与任何人(同事、供应商、合作伙伴)共享实时 Azure PostgreSQL 查询结果,将其以可收藏的网格形式呈现,无论在手机、平板电脑还是台式机上打开,结果都会立即重新显示。他们看到的是查询结果,而不会看到 SQL 语句或凭据。
数据查看器的工作原理 - 对于应用程序和系统
-
Azure PostgreSQL REST API HTTP 端点
将 Azure PostgreSQL 查询发布为任何应用程序都可以调用的经过身份验证的 JSON 终结点,符合 OpenAPI 3.1 规范,并预置了 Postman、Insomnia 和 Hoppscotch 集合。无需打开数据库端口。
PostgreSQL 指南 -
Azure PostgreSQL 到 Power BI Power Query M
将生成的 Power Query M 粘贴到 Power BI 高级编辑器中,报表即可通过 HTTPS 读取 Azure PostgreSQL 的实时结果——无需 ODBC 驱动程序,也无需打开数据库端口。
Power BI 的工作原理 -
Azure PostgreSQL 到 Airtable 自动化平台
按计划将 Azure PostgreSQL 行同步到 Airtable,或者在 Airtable 自动化脚本中获取它们。
PostgreSQL 指南 -
Azure PostgreSQL 到 Baserow 自动化平台
通过 REST 端点从 Azure PostgreSQL 向 Baserow 表提供数据——无论是自托管还是 Baserow 云。
PostgreSQL 指南 -
Azure PostgreSQL 到 SeaTable 自动化平台
无需导出文件或公开数据库,即可使用 Azure PostgreSQL 数据保持 SeaTable 数据库的最新状态。
PostgreSQL 指南 -
Azure PostgreSQL 到 Smartsheet 自动化平台
将 Azure PostgreSQL 结果推送到 Smartsheet 网格中,以便计划和报告从源系统读取数据,而不是从上周的导出数据读取数据。
PostgreSQL 指南 -
迁移到 Anvil(Azure PostgreSQL 到 Anvil) Anvil Works · 应用平台
通过 REST 端点将 Anvil Python 应用程序与 Azure PostgreSQL 连接起来,而不是将数据库凭据嵌入到应用程序中。
PostgreSQL 指南 - 人工智能工具
-
Azure PostgreSQL MCP 服务器 Claude、Cursor 和 MCP 客户端
赋予 AI 助手对 Azure PostgreSQL 的只读访问权限,并提供它编写正确 SQL 所需的架构——聊天中无需提供凭据。
PostgreSQL 指南 - 已送达
-
Azure PostgreSQL 警报和报告 Slack · Discord · 电子邮件 · Webhook
将 Azure PostgreSQL 查询添加到计划中,并将查询结果发送到 Slack、Discord、电子邮件或签名 webhook,或者等到行数、阈值或百分比变化超过您设定的界限时才发送消息。
警报和报告的工作原理
工作原理
5 个步骤,无需更改入站防火墙规则
在虚拟网络 (VNet) 内的 Windows 或 Linux 虚拟机上安装网络代理。由于它只连接外部网络,服务器可以保持公共访问关闭,并且无需添加任何入站规则。
从 Azure 门户的“设置”下粘贴 URI,然后点击“连接”。服务器名称、端口、数据库和用户名将直接读取。
您可以选择直接连接或使用内置的 PgBouncer。直接连接使用端口 5432,这是默认设置;PgBouncer 使用同一主机上的端口 6432,该网卡不允许两者冲突。
请使用纯用户名。灵活服务器已从已停用的单服务器配置中移除了 user@servername 格式,并且该卡会在导致登录失败之前拒绝 @ 符号。
保存。架构通过 information_schema 和 pg_catalog 读取,Microsoft Excel、Google Sheets、Power BI、MCP 和 REST 都通过这一个连接读取数据库。
专题深度解析
Azure PostgreSQL 能为你提供什么?
PgBouncer 已被处理,而不仅仅是容忍。
Azure 的灵活服务器在同一主机的 6432 端口上运行一个可选的 PgBouncer,该代理以事务模式运行。事务模式会在后台静默中断客户端连接,因此当代理检测到该端口时,它会改变自身的行为。
- 自动准备功能已关闭。Npgsql 的自动准备功能使用命名预处理语句,而命名语句在事务之间被移交给其他后端时会丢失。
- 关闭会话时不会重置,因为在事务模式下,您返回的连接不是您将获得的连接。
- 这两项都不需要您自行配置。选择连接池模式,或者粘贴包含数字 6432 的字符串,即可实现正确的行为。
- 必须先在 Azure 端启用它。 — PgBouncer 是灵活服务器上的一个服务器参数,而不是服务器上原本就存在的某个东西。
这张牌不允许你犯的两个错误
它们都会产生一条没有任何有用信息的错误消息,因此它们会被捕获到表单中。
- 端口与模式不匹配。除了 6432 端口之外的任何端口,或者直接连接到 6432 端口,都会被拒绝并给出拒绝原因,而不是超时处理。
- 用户名带有 @servername 后缀。这是已停用的单服务器格式;在灵活服务器上,它会导致身份验证失败,看起来像是密码错误,因此卡片将其标记为格式问题。
- 密码开头或结尾带有空格也会被标记。这几乎总是剪贴板操作导致的,并会被判定为不透明的身份验证错误。
TLS 并非仅靠复选框就能实现。
“使用 SSL”复选框默认处于开启状态,但代理程序并不依赖于您是否将其保持开启状态。
- 无论设备显示什么信息,所有 .postgres.database.azure.com 主机都默认使用 TLS 连接。即使剪贴板中缺少了 `?sslmode=require` 参数,连接仍然会加密。
- 这是强制执行,而不是默认值:它是代理中 Azure 预设的一个属性,而不是从表单复制的值。
- 未执行证书链验证。 — 连接已加密,这是对它的真实描述。
-- 读取操作与灵活服务器完全一致 SELECT c.name, COUNT(o.id) AS orders, SUM(o.amount) AS revenue FROM public.customers AS c JOIN public.orders AS o ON o.customer_id = c.id WHERE o.placed_at >= now() - interval '30 days' GROUP BY c.name ORDER BY revenue DESC;
每个数据库连接器共享
适用于所有数据库连接器
- 仅限出站 — 代理程序会打开一个加密连接到查询流。无需转发入站端口,无需 VPN,无需 IP 允许列表,您的数据库信息不会暴露在互联网上。
- 凭证保留 — 数据库用户名和密码存储在您安装代理的计算机上。Query Streams 永远不会收到这些信息,也无法自行访问您的数据库。
- 只读,强制执行 ——一次只执行一条语句,仅限 SELECT 及其相关语句。写入操作会在发送到服务器之前就被本地机器拒绝,而不是依赖于其他人设置的权限。
- 部署任意数量的代理 每个站点、区域或云端只需一个代理。所有数据源都显示在同一个下拉菜单中,因此无需了解哪个代理托管哪些数据源。
查询保存后您将获得什么?
- 分享的是能力,而不是 SQL — 同事或外部合作伙伴可以运行您的查询并更改其筛选条件,而无需查看其背后的语句。
- 双向过滤 — 您可以自己将它们声明为 @variables,或者让连接器发现 WHERE 子句中已有的字面值,并将其作为下拉列表提供。
- 随时随地阅读 — Microsoft Excel、Google Sheets、Power BI、REST API、MCP 上的 AI 助手、查询生成器和 Nova 都读取同一个已保存的查询。
- 同时运行多个程序 — 将五个已保存的查询分别保存到五个工作表标签中,同时进行流式传输,无论结果有多大。
- 将其连接到您已连接的任何其他内容 — 用一条只读语句访问另一个数据库、业务 API 或文件文件夹。
跨源 SQL
将 Azure PostgreSQL 与您的其他数据连接起来
一条语句可以同时跨越 Azure PostgreSQL 和其他连接。每个数据源只运行它能够执行的部分,并将结果流式传输回来,连接操作则在中心位置集中完成——各个数据源之间互不通信,也不会复制任何数据。
3 个连接 · 3 个代理
一份声明
——没有任何复制、合并或安排操作。
选择 c.region,COUNT(*) AS orders,SUM(i.amount_due) AS invoiced
从 azure_pg.公共.订单1 f
连接 ERP SQL.dbo.customers2 c ON c.id = f.customer_id
连接 计费.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.区域
ORDER BY 发票上的描述;
这三个部分分别是连接、模式和表——连接名称就是你给它起的任何名字。这里用列举例说明;你的表就是你自己的表。所有部分都采用只读模式:仅支持 SELECT、WITH 和 EXPLAIN 语句,并且对单个查询中每个数据源可以传输的数据量有限制。 联合查询的工作原理
连接详情
Azure PostgreSQL 需要什么
- 主持人
- <server>.postgres.database.azure.com
- 港口
- 5432 是直接连接,6432 用于内置的 PgBouncer——两种方式都使用同一个主机。
- 司机
- 代理程序自带 Npgsql 9.0.3,Azure 端无需安装任何软件。
- TLS
- 必需,并且由代理强制为每个 .postgres.database.azure.com 主机执行。
- 数据库
- 除非你另有命名,否则它就叫 postgres。
- 用户名
- 纯用户名——不带@服务器名称后缀;卡片会在到达服务器之前拒绝这种类型的用户名。
- 集体行为
- 在 6432 端口,代理程序会关闭自动准备功能,并且停止在会话关闭时重置会话,这正是事务模式池化所需要的。
- PgBouncer 先决条件
- 首先必须在灵活服务器上启用 pgbouncer 服务器参数。
- 验证
- 用户名和密码。不支持 Microsoft Entra ID。
- 默认架构
- 公开的,也就是联邦引用所携带的。
池化路径是值得理解的部分,因为大多数工具都会在这里悄悄地出现问题。PgBouncer 在事务模式下可能会将你的下一条语句传递给不同的后端,这会导致命名预处理语句失效,并使会话状态失去意义。为了避免这种情况,代理会屏蔽 6432 端口,并关闭两个会导致问题的功能——自动准备和关闭时重置会话。粘贴一个池化字符串即可正常工作;无需查找任何设置。
用户名规则暴露了迁移过程中的一个真正问题。Azure 已弃用的单服务器需要 user@servername 格式;而灵活服务器则需要纯文本用户名,如果使用旧格式,则会被判定为身份验证错误,而不是格式错误。能否及时告知用户哪个格式错误,决定了修复所需的时间是五秒钟还是一个下午。
TLS 是强制执行的,而不是请求的。无论复选框是否选中,代理都会要求每个 Azure Postgres 主机都使用 TLS,因此即使连接字符串在某个地方丢失了 sslmode 参数,它仍然会以加密形式传输。但它不会验证证书链,页面上也明确说明了这一点,而不是暗示比代码提供的更强的保证。
对于跨源查询,这是普通的 Postgres:你创建了一个名为 azure_pg 的连接,它被写成 azure_pg.public.orders,并且它在一个只读语句中连接到 CSV 文件夹、SQL Server 记录系统或计费 API。
供应商文档: azure.microsoft.com
常问问题
关于 Azure Database for PostgreSQL 的问题
哪些工具可以通过查询流读取 Azure Database for PostgreSQL 数据?
所有这些工具,只需一次连接即可使用:Excel、Google Sheets、MCP、REST API、Airtable、Baserow、SeaTable、Smartsheet、Anvil、Power BI、定时提醒和报表。只需连接一次数据库,所有平台都使用同一个只读连接——无需为每个工具单独设置,也无需创建数据副本。
我是否需要为我的 Azure Database for PostgreSQL 数据库打开防火墙端口?
不。Query Streams 网络代理运行在您的网络内部,并打开一个单独的出站加密连接。它不会监听入站流量,无需 VPN,数据库也会保留其现有的防火墙规则。
查询流能否更改 Azure Database for PostgreSQL 中的数据?
不。代理在执行时强制执行只读模式——一次只执行一条语句,仅限 SELECT 及其相关语句。凭据保留在代理上,绝不会发送到查询流。
Query Streams 需要哪些组件才能连接到 Azure Database for PostgreSQL?
一个可访问的主机、一个角色及其密码——代理程序自带驱动程序,因此无需在数据库上安装任何内容。主机:<server>.postgres.database.azure.com。端口:5432(直接连接),6432(用于内置的 PgBouncer)——两种方式使用同一主机。驱动程序:Npgsql 9.0.3,由代理程序自带——无需在 Azure 端安装任何内容。TLS:必需,代理程序会强制为每个 .postgres.database.azure.com 主机启用 TLS。
我可以在同一个查询中将 Azure Database for PostgreSQL 与其他数据库连接起来吗?
是的,这就是联合查询。一条语句可以同时引用 Azure Database for PostgreSQL 和其他连接,格式为 connection.schema.table。每个数据源只运行它能够处理的部分,并将结果流式传输回来;连接操作在中心进行,因此数据源之间不会相互连接,也不会进行任何复制或调度。所有部分(SELECT、WITH 和 EXPLAIN)都采用只读模式,并且单个数据源在单次查询中可以传输的数据量有限制。联合查询是一项计划功能;联合查询页面会显示当前的数据源和大小限制。
连接 Azure Database for PostgreSQL 与连接 PostgreSQL 有什么不同?
仅需连接字符串。Azure Database for PostgreSQL 使用 PostgreSQL 网络协议,因此筛选器、计划任务、共享、Excel 和 Google Sheets 加载项以及 MCP 服务器的行为都完全相同。Azure PostgreSQL 卡片会自动填充提供商所需的主机、端口和 SSL 设置。
是否有 Azure PostgreSQL 到 Excel 的转换指南?
是的——这是 PostgreSQL 指南,而且就 Azure Database for PostgreSQL 而言,指南中的内容是正确的。Azure PostgreSQL 使用 PostgreSQL 通信协议,因此 Azure PostgreSQL 连接到 Excel、Azure PostgreSQL 连接到 Google Sheets 以及其他所有目标平台都遵循相同的步骤。唯一 Azure PostgreSQL 特有的部分是连接字符串,Azure PostgreSQL 卡片会为您自动填写这部分内容。

