让 AI 直接用自然语言查数据库!postgres skill 体验
你有没有遇到过这种情况——业务方突然问”帮我查一下上个月活跃用户数”,然后你对着数据库一脸懵,不知道表结构,不知道字段名,还要担心一不小心把线上数据改错了?
今天介绍一个 Skill,专门解决这个痛点:PostgreSQL Read-Only Query Skill。
它能做什么
一句话:让 AI agent 安全地查询 PostgreSQL 数据库,只读不写,而且自带多层保护。
配置好数据库连接之后,你可以:
– 让 AI 直接用自然语言问”这个库有哪些表”
– 问”用户表里有什么字段”
– 运行任意 SELECT 查询分析数据
– AI 会根据你的问题自动选择合适的数据库(如果你配了多个的话)
安全这块,它真的很认真
这个 Skill 的安全设计值得单独说说,因为它不只是喊喊”安全”而已,而是真的做了多层防护:
第一层:PostgreSQL 原生只读模式
连接直接用 readonly=True,数据库层面就禁掉了写操作,不是靠代码判断,是真的写不进去。
第二层:Query 验证
只允许 SELECT/SHOW/EXPLAIN/WITH 这些读操作,INSERT/UPDATE/DELETE/DROP 直接拒绝,多语句(比如 "SELECT * FROM users; DROP TABLE users;")也会被拦截。
第三层:资源保护
– 30 秒查询超时,防止锁死
– 每次最多返回 1 万行,防止内存爆炸
– 每列最大 100 字符,超出截断,保证输出可读
第四层:脱敏
错误信息里不会泄露密码,配置文件要求 chmod 600,生产环境也能安心用。
怎么配置
在 connections.json 里加数据库信息:
{
"databases": [
{
"name": "production",
"description": "Main app database - users, orders, transactions",
"host": "db.example.com",
"port": 5432,
"database": "app_prod",
"user": "readonly_user",
"password": "your-password",
"sslmode": "require"
}
]
}
关键是 description 字段——AI 会根据你的问题自动匹配最合适的数据库。比如问”用户数据”它就选有”users, accounts”描述的那个,非常直觉。
什么场景用
- 数据分析:业务随口问数据,你直接让 AI 查
- 数据库探索:接手新项目,先用 AI 了解表结构
- 日志分析:查事件表、审计日志
- 报表支持:跑 SELECT 生成临时报表
本质上,这是一个把数据库变成可对话接口的 Skill。不是给 DBA 用的,是给所有需要查数据、但不想记 SQL 语法的人用的。
GitHub 链接:sanjay3290/ai-skills(postgres skill 在 skills/postgres/ 目录)
GitHub: https://github.com/sanjay3290/ai-skills/tree/main/skills/postgres
评论区
登录后可评论。