查看类别

如何将 Microsoft SQL Server 数据库公开为安全的 REST API

阅读时间:13分钟

微软 SQL Server 徽标 微软 SQL Server REST API

将 Microsoft SQL Server 查询转换为安全查询 REST API — 无需数据 API 构建器,无需服务器托管。

保存针对 SQL Server 数据库的 T-SQL 查询,生成每个接收者的 API 密钥,并将实时 JSON 端点提供给合作伙伴。 数据 API 构建器 部署时,没有开放 1433 端口,无共享登录——仅有一个受控的只读端口 SQL Server REST API 几分钟之内。

无入站端口 每个收件人的密钥 强制只读 无需部署

Query Streams 是一个安全的实时数据库集成平台,可将任何已保存的 SQL Server 查询转换为合作伙伴可用的 REST API 端点——具有每个接收者的密钥、只读强制执行和完整的审计跟踪。 你获得一个现场直播 SQL Server REST API (干净的) SQL Server 的 REST API无需部署数据 API 构建器、打开数据库端口或托管网关。 了解更多信息,请访问 QueryStreams.com免费注册 几分钟内即可发布您的第一个 SQL Server 端点。

为什么要将 Microsoft SQL Server 数据库作为 REST API 公开?

迟早,团队以外的人会需要存储在 Microsoft SQL Server 中的数据——客户希望在仪表板上查看数据,供应商需要实时数据流而不是每日导出,合作伙伴的应用程序需要读取您数据库表的一部分。通常的解决方案都会泄露一些信息。您通过电子邮件发送的导出数据到达时已经过时,您提供的只读 SQL 登录信息在项目结束后仍然有效,或者您搭建 Data API Builder 或 ASP.NET Web API,并永久继承其身份验证、TLS 和补丁管理等功能。 将 SQL Server 数据库公开为 REST 服务 最简洁的方式是,合作伙伴会收到一个 URL 和一个令牌,而不是你的数据库。难点始终在于如何安全地构建和运行这个 API。查询流(Query Streams)将其简化为保存的查询加上一个密钥。

没有打开的 SQL Server 端口

你从未暴露 1433 连接到互联网或在防火墙上打个洞。网络代理会拨打电话;呼入电话会通过这条唯一的出站连接返回。

每个接收者的 API 密钥

每个受赠者都会得到自己的 qsapi_* 关键在于:撤销其中一个帐户,而不影响其他帐户,也不轮换您的 SQL Server 登录帐户。

默认只读

只读验证器会在非 SELECT 语句到达 SQL Server 之前将其拒绝。不会发生意外情况。 更新, 合并,或 降低 通过 API 的路径。

您的 T-SQL 代码将保密。

接收者可以看到端点 URL、JSON 响应以及您公开的任何过滤器——永远不会看到您的 T-SQL、架构、实例名称或连接字符串。

无需托管或修补

没有数据 API 构建器容器,没有 ASP.NET 应用程序,也没有反向代理。该端点作为托管功能运行,因此无需维护部署管道或 TLS 轮换。

永久性的、过期的或自毁的

将端点设为永久端点,设置其在某个日期过期,或者为其设定一个固定的调用预算,使其在达到设定的请求次数后自动销毁。

在 SQL Server 上部署 REST API 的常用方法——以及它们为何会带来负面影响

有很多众所周知的工具可以用来构建 SQL Server Web API而且它们各自都很擅长。但问题在于,每种方法都会让你承担基础设施、网络风险,或者两者兼而有之。以下是常见方法与 Query Streams 共享端点的比较,前提是目标仅仅是“让特定合作伙伴读取特定结果集”。

忧虑 Microsoft 数据 API 生成器 DIY ASP.NET Web API 查询流
可通过 API 访问的数据库 主机必须能够连接到 SQL Server 必须连接到 SQL Server 仅出站代理——无入站端口
收件人持有 指向您公开实体的 URL 指向您服务的 URL 一个用于单个查询的单用途键
模式暴露 每个已配置的实体均可访问 无论你手动编写什么代码 仅保存了一个查询,别无其他。
每个接收者的密钥 + 撤销 自行配置身份验证 自己动手做 内置
每次通话的审计日志 自行添加 自行添加 内置
您负责操作/修补/轮换 TLS。 是的,永远 是的,永远 为您管理
到达第一个终点的时间 数小时至数天 分钟

正在寻找数据 API 构建器替代方案,以便与合作伙伴共享数据?

如果您需要基于自身实体构建完整的、自托管的 REST 和 GraphQL 接口,Microsoft Data API Builder 是绝佳之选。但如果您希望向指定的合作伙伴提供一个受控的、只读的结果集(带有独立的密钥、审计跟踪,且无需运行任何主机),那么 Query Streams 正好可以满足您的需求。两者可以共存:Data API Builder 用于内部应用程序,Query Streams 用于对外共享。

Query Streams 如何将 SQL Server 查询转换为 REST API

网络代理安装完毕并配置好 SQL Server 连接器后,将已保存的查询提升到共享 REST 端点大约需要三个步骤。如果您已经在使用 Excel、Google Sheets 或 MCP Server 的查询流,则代理和连接器已经就位——您可以从第二步开始。

1

通过代理连接 SQL Server

将网络代理安装在数据库旁边,并添加一个具有标准只读登录名的 SQL Server 连接器。该代理会与查询流建立出站 TLS 连接——您的数据库永远不会暴露在互联网上。

2

保存 T-SQL 查询

写下 选择 在针对 SQL Server 连接的查询生成器中——JOIN、CTE、窗口函数和参数都适用。命名并保存。任何可以 SELECT 的内容都可以成为终结点。

3

推广它并分享一个密钥

打开“安装”选项卡,选择端点类型(永久、过期或呼叫预算)和输出格式,然后通过电子邮件邀请收件人。他们将获得一个魔法链接声明和他们自己的 qsapi_* 钥匙。

一个已保存的查询,多个表面

同一个已保存的 SQL Server 查询可以通过 MCP 服务器驱动 Excel 刷新、Google Sheets 侧边栏、Claude 或 Cursor 对话。 同时,它还提供了一个面向合作伙伴的 REST 端点。您只需构建一次查询;查询流会处理所有接口。

SQL Server 端口未打开,也没有共享凭据

正是这种安全模型促使团队选择它而不是公共数据库端口。您的 SQL Server 登录信息仅存储在您网络上代理的加密凭据存储中;它绝不会传输到我们的云端,也不会对接收者可见。此外,每个端点都提供针对每个接收者的控制选项,您可以在共享之前对其进行严格控制。

仅外呼客服

代理通过 443 端口连接——普通的 HTTPS 出站连接,没有入站端口、VPN 或隧道。 为什么不需要入境投资 →

只读强制执行

在任何语句到达 SQL Server 之前,验证器会在代理程序中(位于您的网络上)运行。非 SELECT 语句会被拒绝。 只读违规.

IP + CORS 允许列表

将接收方的密钥绑定到特定的 IP 地址或 CIDR 范围,并限制哪些浏览器来源可以调用每个端点。任何 SQL 查询执行之前,都会拒绝列表外的调用。

速率限制 + 字节配额

两级速率限制(每个密钥和每个端点)加上可选的每月字节上限,可将嘈杂或失控的接收者限制在安全的爆炸半径内。

调用 SQL Server REST API

接收方调用此端点的方式与其他 REST API 类似:提供一个 bearer token 和一个 URL。您公开的任何已保存查询参数都可以在每次调用时进行设置——在查询字符串中。 得到 或者在 JSON 正文中 邮政代理会将这些值绑定为正确的参数化查询参数,而不是字符串连接,因此接收者无法突破过滤器注入 SQL。

带有筛选参数的 GET 请求
# 针对 SQL Server 支持的端点的接收方调用 卷曲 -H “授权:Bearer qsapi_K7…ZmQ” \ “https://api.querystreams.com/v1/endpoints/sales-by-rep?region=West&since=2026-01-01”

使用以下方式选择每次调用的输出格式: 接受 标题(或标题) ?format= 查询参数): JSON 对于单个数组, CSV 对于电子表格和 pandas,或者,在流式端点上, NDJSON (每行一个 JSON 行)用于按需解析管道。对于带宽敏感型用户,请选择启用 LZ4 有效载荷压缩 Accept-Encoding: lz4未压缩的响应也采用标准格式。 gzip 自动传输到网络。有关静态模式与流模式、四种线路组合以及 OpenAPI 3.1 版本的完整详细说明,请参阅…… 适用于 SQL 数据库的即时 REST API 指导。

使用量如何计费

API平台包含在所有套餐中,并占用与Excel、Sheets和MCP相同的每月字节配额。 lz4 计费方式为按传输的压缩字节计费,否则按未压缩字节计费。 基于字节的计费方式如何在不同平台上运作 →

将其插入 Power BI、Tableau 以及任何可以读取 JSON 的工具。

因为每个端点都返回标准 JSON — 有了 CSV 和流式 NDJSON — 任何可以读取 REST 源的工具都可以直接使用您的 SQL Server 数据,无需在他们那边安装任何东西,也不需要 SQL 驱动程序。 Power Query 是进入微软 BI 技术栈最便捷的桥梁: Power BI 选择 获取数据 → 来自网页粘贴端点 URL,添加您的 授权 标题,Power Query 将 JSON 解析为可刷新的表格,该表格用于填充您的数据模型。(对于电子表格中的实时数据,可以使用原生方法。) 查询流 Excel 插件 更简单的方法是使用 Power Query,它能满足您在 Power BI 模型本身中获取数据的需求。)

微软 Power Query 徽标 Power Query 获取数据 → 从网页端,粘贴 URL 和 bearer token,将 JSON 数据展开为可刷新的表格
微软 Power BI 徽标 Power BI 相同的 Power Query 引擎——直接将终结点加载到模型中并安排刷新
Tableau 徽标 Tableau 将 Web 数据连接器或 JSON 源指向实时仪表板的端点
邮递员标志 邮差 导入 OpenAPI 3.1 规范,然后一键发送、检查和共享请求

它还提供饲料 n8n, Qlik, 卷曲, Python (请求pandas.read_json)、失眠症、跳房子游戏——或者任何可以发送 HTTP 请求和读取 JSON 的脚本或工作流程。

也适用于 Azure SQL 和托管 SQL Server

无论您的 SQL Server 运行在何处,代理程序都以相同的方式连接到本地实例或托管服务——Azure SQL 数据库、Azure SQL 托管实例或 Amazon RDS for SQL Server。为了获得最低延迟,请将代理程序部署在与数据库相同的网络或区域中;一个 Query Streams 帐户可以跨区域和云运行多个代理程序,并且无论哪个代理程序提供服务,单个终结点的行为都完全相同。

超越 SQL Server

同样的流程可以将 PostgreSQL、MySQL、Oracle、Snowflake、BigQuery、DuckDB 等数据库中保存的查询提升到 REST 端点——SQL Server 只是一个流行的起点。 API平台支持的每个数据库 →

常见问题

我需要开放端口或将 SQL Server 暴露在互联网上吗? +
不——网络代理通过 HTTPS(端口 443)拨号连接,因此您的 SQL Server 端口(1433 默认情况下)永远不会暴露,也不需要入站防火墙规则。 仅出站连接的工作原理 →
收件人可以看到我的 T-SQL 代码或数据库凭据吗? +
绝不——接收者只能看到端点 URL、响应正文和您公开的过滤器;您的 T-SQL 和 SQL Server 登录信息将保留在查询流和代理的网络凭据存储中。 每个接收者密钥如何保护凭证的私密性 →
这与 Microsoft Data API Builder 有何不同? +
Data API Builder 会根据您配置的实体生成 REST 和 GraphQL 接口,并以服务的形式运行,您需要自行托管、保护并确保其可从 SQL Server 访问。Query Streams 则采用了相反的、更窄的出站数据共享方式:您只需将一个已保存的查询公开为一个端点,每个接收者都会获得自己的可撤销密钥,每次调用都会被审计,而且您无需进行任何部署或修补。许多团队会同时运行这两种工具——Data API Builder 用于内部应用程序,Query Streams 用于向外部共享数据。
API可以返回哪些输出格式? +
流式传输端点支持 JSON(默认)、CSV 和 NDJSON 格式,具体格式由每次调用选择。 接受 标题或 ?format= 参数,可选LZ4有效载荷压缩。 输出格式和线缆组合详解 →
收件人能否筛选结果,还是只能收到固定的查询结果? +
由您决定——您公开的任何参数都会成为每次调用时的过滤器(查询字符串)。 得到,JSON 正文 邮政),并且代理会将每个值绑定为真正的查询参数,因此过滤器无法注入 SQL。 如何暴露参数和安全绑定 →
端点可以过期或自毁吗? +
是的——端点可以是永久性的,也可以在指定日期过期,或者在固定的调用预算后自动销毁,而且您可以立即撤销任何接收者的密钥,而无需轮换数据库密码。 端点生命周期和密钥撤销 →
它是否支持 Azure SQL 数据库或 Amazon RDS for SQL Server? +
是的。代理程序可以连接到任何可访问的 SQL Server,无论是本地部署还是托管部署——Azure SQL 数据库、Azure SQL 托管实例和 Amazon RDS for SQL Server 均可使用。为了获得最佳延迟,请在与数据库相同的区域运行代理程序;一个帐户可以跨云和区域运行多个代理程序。
收件人是否需要 Query Streams 帐户? +
不——通过电子邮件与某人共享(魔法链接声明会自动创建他们的免费层组织和密钥)以便进行追溯,或者颁发服务密钥以进行无人值守的机器对机器访问。 通过电子邮件共享与服务密钥共享 →

开始

免费发布您的第一个 SQL Server REST API。

注册后,将网络代理安装到 SQL Server 数据库旁边,保存 T-SQL 查询,然后通过电子邮件向收件人发送魔法链接声明。从第一次调用开始,每个收件人的密钥、只读强制执行和完整的审计跟踪功能都将启用。

相关指南: 适用于 SQL 数据库的即时 REST API | 数据库 REST API 平台 | 将 PostgreSQL 公开为 REST API | 连接器设置指南

类别:API平台

标签:sql-server-rest-api、mssql-rest-api、rest-api-for-sql-server、sql-server-web-api、data-api-builder-alternative、expose-sql-server-as-api、share-sql-server-data、per-recipient-keys、no-code-api、database-rest-api

元描述:将 SQL Server 查询转换为具有每个接收者密钥的安全、只读 REST API——无需数据 API 构建器、无需开放端口、无需代码。

更新 2026 年 6 月 16 日

Powered by BetterDocs