MYSQL QUERY

🗄️ 自动隧道 · 多库一键查

Developer Tools榜 #31

通过自动SSH隧道安全查询数据库,支持多数据库配置管理与生命周期自动化处理

收藏
13.7k
安装
3.3k
版本
1.0.0
CLS 安全性认证2026-07-01
点击查看完整报告 >

使用说明

核心用法

db-query 是一个面向开发运维人员的数据库查询工具,通过集中式 JSON 配置文件管理多数据库连接,并内置自动 SSH 隧道生命周期管理。用户通过 --database 指定数据库描述名称(支持大小写不敏感的部分匹配),配合 --query 执行 SQL 语句,脚本自动完成隧道建立、查询执行、隧道关闭的完整流程。

显著优点

1. 零运维隧道管理:SSH 隧道的建立与销毁完全自动化,避免手动维护隧道的繁琐与遗漏风险
2. 配置驱动设计:单文件集中管理多数据库连接信息,支持生产/测试环境快速切换

3. 安全隔离:数据库凭证本地存储于 ~/.config/clawdbot/,避免硬编码或命令行暴露

4. 灵活匹配机制:通过描述性 name 字段而非技术 ID 选择数据库,降低使用门槛

潜在缺点与局限

  • 单数据库类型:当前仅支持 MySQL(依赖 mysql-client),PostgreSQL/MongoDB 等需扩展
  • Python 依赖:需要 Python 3.6+ 环境,纯容器化场景可能需额外安装
  • 本地端口冲突:多数据库同时使用时需手动规划 local_port 避免冲突
  • 无查询结果缓存:重复查询会重复建立隧道,高频场景性能开销明显
  • 凭证明文存储:JSON 配置中密码为明文,依赖文件系统权限控制

适合人群

  • 需要频繁访问跳板机后数据库的后端开发/DBA
  • 多环境(生产/预发/测试)切换的运维工程师
  • 希望简化 SSH 隧道操作的技术团队

常规风险

| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 凭证泄露 | 配置文件权限不当导致密码暴露 | 设置 600 权限,避免版本控制提交 |
| 隧道残留 | 异常中断可能导致 SSH 进程残留 | 定期巡检,依赖脚本的清理逻辑 |
| 误操作生产 | 模糊匹配可能选错数据库 | 命名规范区分环境,执行前 `--list` 确认 |
| 注入风险 | 动态 SQL 拼接未参数化 | 严格限制使用场景,避免用户输入直接拼接 |

安全解读

核心用法

db-query 是一款专为开发者设计的数据库查询工具,通过集中式 JSON 配置文件管理多数据库连接,核心亮点是自动 SSH 隧道生命周期管理——在查询前建立隧道、查询后自动关闭,避免资源泄漏。用户通过 name 字段模糊匹配目标数据库,支持本地直连和 SSH 跳板两种模式。

显著优点

1. 零依赖设计:仅使用 Python 标准库(json、subprocess、argparse 等),无第三方包,供应链攻击面极小
2. 资源管理完善:通过 atexitfinally 块双重保障 SSH 隧道清理,避免连接残留

3. 配置驱动工作流:单文件管理多数据库连接信息,支持自定义配置路径,适合团队协作场景

4. 动态行为验证通过:实际功能与文档声明一致,未发现恶意行为

潜在缺点与局限性

| 风险项 | 严重程度 | 说明 |
|--------|---------|------|
| SSH 主机密钥验证禁用 | **中风险** | `StrictHostKeyChecking=no` + `UserKnownHostsFile=/dev/null` 使连接易受中间人攻击 |
| 命令行明文密码传输 | **中风险** | 密码通过 `-p{password}` 参数传递,可被 `ps` 命令查看 |
| 配置文件明文存储密码 | 低风险 | JSON 配置文件中密码无加密,依赖文件权限保护 |
| 依赖外部 CLI 工具 | 低风险 | 需预装 mysql-client 和 ssh 客户端,跨平台兼容性受限 |

适合人群

  • 中小团队开发者:需要快速切换多个环境(开发/测试/生产)数据库
  • 运维工程师:管理位于私有网络、需 SSH 跳板访问的数据库
  • 个人项目维护者:追求极简部署、不愿引入重型 ORM 或数据库客户端

常规风险

  • 中间人攻击:SSH 安全降级配置使攻击者可伪装服务器截获流量
  • 密码泄露:进程列表可见明文密码,共享主机环境风险更高
  • 配置权限~/.config/clawdbot/db-config.json 需严格限制文件权限(建议 chmod 600
  • SQL 注入:虽然工具本身不构建查询,但用户传入的 SQL 仍需自行校验

改进建议

高优先级:修复 SSH 验证配置,改用环境变量或配置文件传递密码。中优先级:评估迁移至 paramiko + pymysql 原生库,提升安全性与可维护性。

MYSQL QUERY 内容

scripts文件夹
手动下载zip · 5.2 kB
config.example.jsonapplication/json
请选择文件