pREST MCP 安全向代理暴露 Postgres
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/expose-postgres-safely-to-agents-with-prest-mcp。
技能介绍
解决数据库与代理之间的安全鸿沟
工程师在尝试将 LLM 代理连接到现有 PostgreSQL 数据库时,常面临两难。直接连接往往会暴露核心表结构与敏感数据,而自行编写中间件则开发周期长且难以维护。此外,AI 代理通常仅需要特定任务的读取权限,但数据库的权限管理往往是粗粒度的。本技能引入 pREST 作为中间适配层,确保数据库不被直接暴露,同时让代理能够安全地获取所需数据。
工作原理与核心能力
本技能基于 pREST MCP 服务,为现有 Postgres 数据库即时生成标准化的 REST API。在工作流中,工程师只需专注于定义数据访问规则:
- 只读 MCP 端点:为 AI 客户端提供语义化接口,默认限制为
GET操作,杜绝意外写入。 - 多层安全管控:内置支持身份验证(
auth)与访问控制列表(ACL),确保只有经过授权的请求才能到达后端。 - 灵活的数据映射:支持自定义 SQL 查询路由。通过
GET /{database}/{schema}/{table}调用,直接根据代理需求暴露特定的库与表。 - 多数据库支持:可同时管理多个 Postgres 实例的连接,满足复杂数据环境的需求。
适用边界与注意点
尽管该方案显著降低了集成复杂度,工程师仍需在实际部署中评估暴露给代理的数据范围。技能强制只读操作,但仍需通过 ACL 隔离敏感表,防止代理获取非授权数据。此外,配置自定义 SQL 路由时,务必确保参数经过严格验证,以避免执行报错或引发安全风险。部署环境需支持 pRESTd 运行,并满足 PostgreSQL 9.5+ 的版本要求。
使用场景
- 为外部数据分析代理提供用户订单表的只读访问,确保数据不被意外写入或篡改。
- 在接入大语言模型前,通过配置ACL限制其仅能查询公开的商品目录库数据。
- 通过自定义SQL路由,让客服代理能够跨多个数据库实例聚合查询统一的客户反馈表。
- 需要为下游系统快速提供标准的REST API,避免直接向公网暴露核心数据库端口。
适合人员
- 负责公司数据资产安全的DBA,希望在不暴露端口的前提下给AI代理授权查询特定表。
- 正在构建AI客服后台的工程师,需要为大语言模型提供带有身份验证的安全数据接口。
- 管理多个独立业务线数据库的运维人员,需要统一配置代理跨库读取特定视图的权限。