安全查询项目数据库的自动化工具,支持SSH隧道自动管理,避免密码暴露在进程列表中。
基本信息
- 技能名称?MYSQL QUERY
- 中文名称?安全数据库查询 · SSH隧道自动托管
- 作者?zenixp
- 分类?专业技能
- 版本?1.0.1
- 标签?database, mysql, ssh-tunnel, automation, devops, security, sql, cli-tool
使用方法
使用说明
核心用法
db-query 是一款面向开发运维场景的数据库查询技能,核心解决 远程数据库安全访问 与 配置管理标准化 两大痛点。通过集中式 JSON 配置文件管理多数据库连接,支持自动 SSH 隧道建立与销毁,用户只需指定数据库描述名即可执行 SQL 查询。
工作流程:
- 读取 ~/.config/clawdbot/db-config.json 匹配数据库描述
- 若配置 SSH 隧道,自动建立本地端口转发
- 通过环境变量注入密码,执行 MySQL 查询
- 查询完成后 自动关闭 SSH 隧道 ,避免连接残留
显著优点
安全设计优先 :密码通过 MYSQL_PWD / SSHPASS 环境变量传递,进程列表中不可见;推荐将敏感信息外置到环境变量而非配置文件
零运维负担 :SSH 隧道的生命周期完全自动化,无需手动 ssh -L 或担心忘记关闭
多环境友好 :单配置文件支持多个数据库,通过描述名区分,支持大小写不敏感的部分匹配
配置即代码 :JSON 配置易于版本控制(脱敏后),环境变量命名规范清晰
潜在缺点与局限性
仅支持 MySQL :当前实现依赖 mysql 客户端,不支持 PostgreSQL、MongoDB 等
Python 3.6+ 依赖 :目标环境需预装 Python,且脚本路径硬编码于 node_modules 下,移植性受限
单查询单连接 :每次查询独立建立连接,高频短查询场景开销较大
SSH 密码依赖 sshpass :若使用 SSH 密码认证需额外安装 sshpass ,密钥认证场景未明确说明
错误处理透明度 :自动隧道关闭虽便利,但连接失败时的调试信息可能分散在多个层
适合人群
需要频繁访问跳板机后数据库的开发者、DBA
追求配置标准化、避免本地 SSH 隧道手动管理的团队
已将 MySQL 作为主力数据库的技术栈
常规风险
环境变量在 shell history 中可能残留(建议配合 HISTCONTROL 或使用专用 secret 管理工具)
配置文件权限若设置不当(如 644),数据库描述等元数据可能泄露
本地端口冲突:多数据库共用同一 local_port 会导致隧道建立失败
💬 评论 (0)
📭 还没有评论,快来抢沙发吧!