PostgreSQL Database logo

PostgreSQL Database

打开

面向 AI 编程助手的 PostgreSQL 只读查询 Skill:支持多数据库连接、列出表与表结构,并通过禁止写入、超时和行数上限保障安全。

分享:
查看替代方案

概述

PostgreSQL Database 是 sanjay3290/ai-skills 合集中的 postgres Skill。该合集遵循 Agent Skills 标准,可用于 Claude Code、Gemini CLI、Cursor、Codex CLI、Goose 等客户端。它通过一个 Python 脚本,让 Agent 对一个或多个已配置的 PostgreSQL 数据库执行只读 SQL,你可以用自然语言提问数据,而无需给 Agent 写权限。

核心功能

  • 多连接 + 描述字段:connections.json 中每个数据库都有 description(如「用户、订单、交易」),Agent 按问题匹配描述来选择数据库;意图不明确时会先运行 --list 并询问你。
  • 纵深防御:会话以 PostgreSQL readonly=True 模式打开,同时校验查询,只允许 SELECT、SHOW、EXPLAIN、WITH,并拒绝一次提交多条语句。
  • 防护上限:30 秒语句超时、单次最多 10,000 行、单列最多 100 字符,报错信息不会泄露密码。
  • 可配置 SSL:通过 sslmode(disable 到 verify-full)设置。

快速上手

  1. 安装合集。在 Claude Code 中执行 /plugin marketplace add sanjay3290/ai-skills,再执行 /plugin install ai-skills@ai-skills。
  2. 安装 Python 依赖:pip install -r requirements.txt(psycopg2-binary,需 Python 3.8+)。
  3. 在 Skill 目录或 ~/.config/claude/postgres-connections.json 创建连接配置,并执行 chmod 600,因为其中包含密码。
  4. 直接向 Agent 提问,或手动调用脚本:
python3 scripts/query.py --list
python3 scripts/query.py --db production --tables
python3 scripts/query.py --db production --schema
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

适用场景

  • 写迁移或新功能前,先摸清陌生的表结构。
  • 在只读副本上回答临时的数据分析问题。
  • 调试时不离开终端就确认数据现状。

局限

  • 凭据以明文 JSON 存放,建议使用专用只读数据库账号并收紧文件权限。
  • 仅支持 PostgreSQL;同一仓库另有 mysql 和 mssql Skill。
  • 设计上只读,无法执行迁移或修复数据。

常见问题

Agent 能通过这个 Skill 修改数据吗?

不能。连接以只读模式打开,脚本也会拒绝 SELECT、SHOW、EXPLAIN、WITH 以外的语句。

Skill 从哪里读取连接配置?

Skill 目录下的 connections.json,或 ~/.config/claude/postgres-connections.json。

替代方案

  • Supabase 与 Neon:托管 Postgres 平台,自带面向 Agent 的工具。
  • 数据在 MySQL 上时可看 MySQL;同一仓库也提供对应的 mysql Skill。

来源:GitHub 上的 postgres Skill。更多内容见 Skills 分类 与 database 标签。

评论

还没有评论。成为第一个评论的人!