将 SQLite 查询转换为安全的 REST API — 没有服务器,就没有共享文件。
SQLite 是全球部署最广泛的数据库——嵌入式、基于文件、无需服务器、无需身份验证。保存针对您的 SQL 查询 .sqlite 只需生成一个文件,为每个接收者生成一个 API 密钥,然后向合作伙伴提供一个实时 JSON 端点——无需传输数据库文件,无需构建 Flask 封装器,也无需托管 Datasette。只需一个受控的只读接口即可。 SQLite REST API 几分钟之内。
Query Streams 是一个安全的实时数据库集成平台,可将任何保存的 SQLite 查询转换为合作伙伴可用的 REST API 端点——具有每个接收者的密钥、只读强制执行和完整的审计跟踪。 你获得一个现场直播 SQLite REST API 无需运行服务器、传输数据库文件或托管发布工具。 了解更多信息,请访问 QueryStreams.com 和 免费注册 几分钟内即可发布您的第一个 SQLite 端点。
为什么要将 SQLite 数据库作为 REST API 公开?
SQLite 几乎无处不在——应用程序内部、共享驱动器上、小型内部工具背后、边缘计算——正是因为它无需服务器。它只是一个单独的文件和一个库,无需任何管理。但这种优势一旦外部人员需要数据,就会变成一道屏障:客户需要实时数据流,合作伙伴的应用程序需要读取某个数据切片,分析师需要在其仪表板中显示汇总数据。没有端口可供连接,也没有登录信息可供使用。常用的变通方法都会泄露一些信息:例如,你通过电子邮件向…… .sqlite 文件(你的完整数据副本现在存储在别人的机器上,并且会立即失效),你需要在自己托管和安全的服务器上搭建 Flask 或 Datasette,或者你需要安排另一次 CSV 导出。 SQLite REST API 这是简洁版本——合作伙伴会收到一个 URL 和一个令牌,而不是您的文件。查询流则会保存一个查询并附带一个密钥。
没有服务器,也没有开放端口
SQLite 没有网络监听器——而且你也没有添加。网络代理会读取你的 .sqlite 文件在本地传输并拨号出去;呼入电话通过该唯一一条出线连接返回。
每个接收者的 API 密钥
每个受赠者都会得到自己的 qsapi_* 关键在于:撤销其中一个密码无需触及其他密码——无需找回文件,也无需轮换密码。
默认只读
代理以只读方式打开 SQLite,并且验证器会拒绝任何非 SELECT 语句。没有 更新, 删除,或 附 通过 API 的路径。
您的 SQL 和文件将保持私密
接收方可以看到端点 URL、JSON 响应以及您公开的任何过滤器——但绝不会看到您的 SQL、您的架构或 .sqlite 文件本身。
无需托管或修补
没有 Datasette 实例,没有 Flask 应用,也没有反向代理。该端点作为托管功能运行,因此无需维护部署管道或 TLS 轮换。
永久性的、过期的或自毁的
将端点设为永久端点,设置其在某个日期过期,或者为其设定一个固定的调用预算,使其在达到设定的请求次数后自动销毁。
在 SQLite 上构建 REST API 的常用方法——以及它们为何会带来负面影响
这里确实有一些可行的方案,每种方案都有其适用之处。但关键在于,每种方案都需要您拥有基础设施、交出完整的数据副本,或者两者兼而有之。以下是常见方案与 Query Streams 共享端点的比较,前提是目标仅仅是“允许特定合作伙伴读取特定结果集”。
| 忧虑 | 发送 .sqlite 文件 | Datasette(自托管) | DIY Flask + sqlite3 | 查询流 |
|---|---|---|---|---|
| 网络暴露 | 没有——但数据将脱离你的控制。 | 您运行并公开一个 Web 服务 | 您托管一项服务 | 仅出站代理——无入站端口 |
| 收件人持有 | 您的整个数据库的完整副本 | 指向您整个数据库的 URL | 指向您服务的 URL | 一个用于单个查询的单用途键 |
| 数据/模式暴露 | 一切,永远 | 整个数据库,所有表 | 无论你手动编写什么代码 | 仅保存了一个查询,别无其他。 |
| 每个接收者的密钥 + 撤销 | 一旦共享就不可能了 | 自己动手做 | 自己动手做 | 内置 |
| 每次通话的审计日志 | 完全看不见 | 自行添加 | 自行添加 | 内置 |
| 您负责操作/修补/轮换 TLS。 | 没什么可跑的 | 是的,永远 | 是的,永远 | 为您管理 |
| 数据保持实时更新 | 发送出去的那一刻就失效了 | 是 | 是 | 每次通话都实时进行 |
正在寻找适合合作伙伴共享的磁带替代方案?
Datasette 非常适合将整个 SQLite 数据库发布并探索为一个可浏览的网站,并提供 JSON API——所有操作均由您自行托管和保护。如果您希望向指定的合作伙伴提供一个受控的、只读的结果集——拥有独立的密钥、审计跟踪,且无需运行任何服务器——那么 Query Streams 正好可以满足您的需求。两者可以共存:Datasette 用于开放的数据探索,Query Streams 用于受控的对外共享。
Query Streams 如何将 SQLite 查询转换为 REST API
在 SQLite 文件旁边安装网络代理并配置好连接器后,将已保存的查询提升到共享的 REST 端点大约需要三个步骤。如果您已经在使用 Excel、Google Sheets 或 MCP Server 的查询流,则代理和连接器已经就位——您可以从第二步开始。
将代理指向您的 SQLite 文件
在存放您的设备的计算机上安装网络代理 .sqlite (或) .db / .sqlite3)文件并添加 SQLite 连接器。代理以只读方式打开文件并建立出站 TLS 连接——任何内容都不会暴露在互联网上。
保存 SQL 查询
写下 选择 在针对 SQLite 连接的查询构建器中——JOIN、CTE、聚合和参数都适用。命名并保存。任何可以 SELECT 的内容都可以成为端点。
推广它并分享一个密钥
打开“安装”选项卡,选择端点类型(永久、过期或呼叫预算)和输出格式,然后通过电子邮件邀请收件人。他们将获得一个魔法链接声明和他们自己的 qsapi_* 钥匙。
一个已保存的查询,多个表面
同一个已保存的 SQLite 查询可以驱动 Excel 刷新、Google Sheets 侧边栏、Claude 或 Cursor 对话。 MCP 服务器, 和 同时,它还提供了一个面向合作伙伴的 REST 端点。您只需构建一次查询;查询流会处理所有接口。
没有服务器要运行,也没有文件要提交
正是这种安全模型促使团队选择这种方式,而不是通过电子邮件发送文件或搭建发布工具。您的 SQLite 文件永远不会离开本地计算机,其路径仅存在于您网络中代理的配置中——它绝不会传输到我们的云端,收件人也永远不会看到它。此外,每个端点都提供针对每个收件人的控制选项,您可以在共享之前对其进行严格控制。
只读强制执行
SQLite 以只读模式打开,并且在执行任何语句之前,都会在您的网络上运行验证器。非 SELECT 语句将被拒绝。 只读违规.
IP + CORS 允许列表
将接收方的密钥绑定到特定的 IP 地址或 CIDR 范围,并限制哪些浏览器来源可以调用每个端点。任何 SQL 查询执行之前,都会拒绝列表外的调用。
速率限制 + 字节配额
两级速率限制(每个密钥和每个端点)加上可选的每月字节上限,可将嘈杂或失控的接收者限制在安全的爆炸半径内。
调用您的 SQLite REST API
接收方调用此端点的方式与其他 REST API 类似:提供一个 bearer token 和一个 URL。您公开的任何已保存查询参数都可以在每次调用时进行设置——在查询字符串中。 得到 或者在 JSON 正文中 邮政代理会将这些值绑定为正确的预处理语句参数,而不是字符串连接,因此接收者无法突破过滤器注入 SQL。
使用以下方式选择每次调用的输出格式: 接受 标题(或标题) ?format= 查询参数): JSON 对于单个数组, CSV 对于电子表格和 pandas,或者,在流式端点上, NDJSON (每行一个 JSON 行)用于按需解析管道。对于带宽敏感型用户,请选择启用 LZ4 有效载荷压缩 Accept-Encoding: lz4未压缩的响应也采用标准格式。 gzip 自动传输到网络。有关静态模式与流模式、四种线路组合以及 OpenAPI 3.1 版本的完整详细说明,请参阅…… 适用于 SQL 数据库的即时 REST API 指导。
使用量如何计费
一个选择加入的电话 Accept-Encoding: lz4 压缩计费按实际传输的压缩字节计费;否则按未压缩字节计费,标准计费方式为: gzip 电传传输仅用于传输,绝不影响计费。 共享字节配额的计量方式 →
将其插入 Power BI、Tableau 以及任何可以读取 JSON 的工具。
因为每个端点都返回标准 JSON — 有了 CSV 和流式 NDJSON — 任何可以读取 REST 源的工具都可以直接使用您的 SQLite 数据,而无需在他们那边安装任何东西。 Power Query 是进入微软 BI 技术栈最便捷的桥梁: Power BI 选择 获取数据 → 来自网页粘贴端点 URL,添加您的 授权 标题,Power Query 将 JSON 解析为可刷新的表格,该表格用于填充您的数据模型。(对于电子表格中的实时数据,可以使用原生方法。) 查询流 Excel 插件 更简单的方法是使用 Power Query,它能满足您在 Power BI 模型本身中获取数据的需求。)
它还提供饲料 n8n, Qlik, 卷曲, Python (请求 或 pandas.read_json)、失眠症、跳房子游戏——或者任何可以发送 HTTP 请求和读取 JSON 的脚本或工作流程。
也适用于共享驱动器和嵌入式文件。
SQLite 数据库位于何处并不重要。代理程序以相同的方式连接到本地磁盘上的文件、共享网络驱动器上的文件,或者嵌入到应用程序或内部工具中的数据库——无论文件扩展名是什么。 .sqlite, .db,或 .sqlite3为了获得最低延迟,请在保存文件的机器上运行代理;一个 Query Streams 帐户可以在服务器和站点上运行多个代理,无论哪个代理提供服务,单个端点的行为都相同。
超越 SQLite
相同的工作流程可以将已保存的查询从 PostgreSQL、Microsoft SQL Server、MySQL、MariaDB、DuckDB、Microsoft Access、Snowflake、Oracle 或 BigQuery 提升到 REST 端点。SQLite 只是最常用的起点之一。浏览 连接器设置指南 适用于当前列表。
常见问题
我需要运行服务器还是打开端口才能使用 SQLite? +
.sqlite 文件通过单个出站端口 443 连接在本地传输,因此没有服务器、端口或入站防火墙规则。 为什么始终不打开入站端口 →收件人可以看到我的 SQL 文件或下载我的 .sqlite 文件吗? +
.sqlite 文件永远不会离开您的计算机——与通过电子邮件发送文件不同,您的数据副本永远不会出现在收件人的驱动器上。这与磁带有什么不同? +
将此指向运行中应用程序的 SQLite 文件是否安全? +
API可以返回哪些输出格式? +
端点可以过期或自毁吗? +
收件人是否需要 Query Streams 帐户? +
开始
免费发布您的第一个 SQLite REST API。
注册后,将网络代理安装到 SQLite 文件旁边,保存 SQL 查询,然后通过电子邮件向收件人发送一个魔法链接声明。从第一次调用开始,每个收件人的密钥、只读强制执行和完整的审计跟踪功能都将启用。
相关指南: 适用于 SQL 数据库的即时 REST API | 将 DuckDB 公开为 REST API | 数据库 REST API 平台 | 连接器设置指南
类别:API平台
标签:sqlite-rest-api、sqlite、sqlite-server、sqlite-api、rest-api、expose-sqlite-as-api、datasette-alternative、share-sqlite-data、per-recipient-keys、no-code-api、database-rest-api
元描述:将 SQLite 查询转换为具有每个接收者密钥的安全、只读 REST API——无需服务器、无需共享文件、无需代码。

