DBX CLI 用于把 dbx 作为数据库执行边界使用。该工具同时面向人工操作和具备 Shell 能力的 AI 智能体,提供稳定的 JSON 输出,并强制执行 DBX 的连接规则与 SQL 安全规则。
用途与主要能力 可用于检查 DBX 管理的数据库连接、浏览数据库模式、运行有界只读查询、生成 DBML 或模式文档,以及打开相关界面(dbx open 始终需要 DBX Desktop)。
使用方式 建议从基础检查开始:当环境未知或命令出现意外失败时,运行 dbx doctor --json;若用户未指定连接,运行 dbx connections list --json,存在多个可能连接时请用户选择;在编写表或列不确定的查询前,先检查相关模式。尽量使用 --json 获取机器可读结果,探索性查询默认加 --limit 50 --timeout 10s 以保持有界,除非用户另有要求。完整命令映射与执行模式见 references/commands.md,常见多步骤任务见 references/workflows.md。
安全边界 查询默认只读。除非用户明确批准确切的写操作,否则不要添加 --allow-writes;除非用户明确批准确切的破坏性或 DDL 操作,否则不要添加 --allow-dangerous-sql,危险 SQL 需要同时具备两个写标志。不要通过其他数据库客户端、Python 驱动、直接访问 SQLite 或 Shell 重定向来绕过 DBX 的拒绝。不要暴露连接密钥,dbx connections list 会有意省略这些信息。生产保护、只读连接设置、数据库权限和 DBX 策略是用户措辞无法突破的上限。在执行任何写入、DDL、生产或凭据相关任务前,应先阅读 references/safety.md。
执行选择 PostgreSQL、Redshift、MySQL 兼容数据库、SQLite 以及其他由 dbx capabilities --json 报告的类型可直接执行。其他数据库类型可能需要 DBX Desktop 或已安装的 DBX Agent/JDBC 组件。dbx open 始终需要 DBX Desktop。当设置了 DBX_WEB_URL 时,CLI 使用配置的 DBX Web 后端。dbx query 不提供 Redis 命令和有状态的多步数据库会话,应改用 DBX 工作区或配置的 DBX MCP 工具。
失败处理 CONNECTION_NOT_FOUND:列出连接并使用返回的准确名称。SQL_BLOCKED:说明哪个安全门拒绝了语句,不要自动添加权限标志。DBX_NOT_RUNNING:运行 dbx capabilities --json;仅当所选操作需要其桥接时,才请用户启动 Desktop。其他意外失败:运行 dbx doctor --json,报告返回的错误,并在解决诊断出的原因后再重试。
适用场景与限制 适合需要通过 CLI 或 AI 智能体安全地检查和探索数据库、生成模式文档、执行受限只读查询的场景。限制在于写操作与危险 SQL 需显式授权,部分数据库类型需要额外组件,Redis 与有状态多步会话不由 dbx query 提供,dbx open 依赖 DBX Desktop。具体收费、价格与平台支持范围暂未提供。