核心用法
db-query 是一款面向开发者的数据库查询工具,通过集中式 JSON 配置文件管理多数据库连接,并内置自动 SSH 隧道生命周期管理。用户只需在 ~/.config/clawdbot/db-config.json 中配置数据库连接信息(含可选的 SSH 隧道参数),即可通过命令行快速执行 SQL 查询。工具支持按名称模糊匹配数据库、自动建立/关闭 SSH 隧道、自定义配置文件路径等功能,简化了需要跳板机访问的内网数据库查询流程。
显著优点
1. 零配置即查即用:通过单一配置文件集中管理多数据库,避免重复输入连接参数
2. 自动隧道管理:SSH 隧道的建立和关闭完全自动化,无需手动维护长连接
3. 多数据库支持:可同时配置生产、测试、开发等多个环境,通过名称快速切换
4. 轻量无依赖:仅依赖系统自带的 mysql-client 和 ssh,无需复杂的数据库驱动安装
潜在缺点与局限性
1. 安全设计缺陷:SSH 强制禁用主机密钥检查(StrictHostKeyChecking=no),极易遭受中间人攻击
2. 密码明文暴露:数据库密码以明文存储于 JSON 文件,SSH 密码通过 sshpass -p 传递,可能在进程列表中泄露
3. 命令注入风险:SQL 查询直接拼接至 mysql 命令行,未做输入过滤,存在注入隐患
4. 无权限管控:缺乏 SQL 语句类型限制,无法阻止 DROP/DELETE 等高危操作
5. 单点故障:配置文件损坏或权限错误将导致全部数据库无法访问
适合的目标群体
- 本地开发环境中需要频繁查询多个数据库的后端开发者
- 拥有跳板机访问需求但不想手动维护 SSH 隧道的运维人员
- 学习 SQL 或数据库管理的初学者(非生产环境)
- 需要快速验证数据而不想打开重型数据库客户端的场景
使用风险
- 数据安全风险:明文密码存储和传输可能导致凭证泄露
- 网络中间人攻击:SSH 安全选项降级使连接可被劫持
- 误操作风险:无 SQL 限制可能导致生产数据被意外删除或修改
- 配置泄露风险:错误信息可能暴露配置文件结构,辅助攻击者构造 payload
- 端口冲突风险:本地转发端口配置不当可能导致连接至错误服务或失败