DBX

生产环境与写入安全

DBX 将写入安全拆成多个相互独立的层级:数据库账号权限、连接只读、生产环境保护、危险操作确认、AI 执行规则和 MCP 策略。它们共同降低误操作风险,但不会替代数据库自身的权限、审计、备份和变更审批。

任何客户端侧保护都不是数据库权限的替代品。生产环境仍应使用最小权限账号、数据库审计、可靠备份和团队审批流程。

保护层级

层级作用是否可以被上层工具绕过
数据库账号权限由数据库服务器最终决定允许读取、写入和管理哪些对象不可以
连接只读在 DBX 核心查询路径阻止可识别的写入,并禁用多个修改入口AI、CLI、MCP 和普通界面都不能放宽
生产环境保护对整个连接或指定数据库启用生产标记,写入时要求每次重新确认普通确认和 Agent 授权不能永久跳过
危险 SQL/命令确认对 DDL、无条件修改、Redis 高风险命令等额外提示或阻止取决于对应设置,但不会放宽只读或生产保护
MCP 全局策略用连接 allowlist 和三档执行权限约束所有 MCP 客户端客户端环境变量不能扩大已保存的中央策略

配置只读连接

创建或编辑连接时,启用只读连接。保存后,DBX 会把该标记带入核心查询执行和数据库专属操作中。

只读连接适合:

  • 生产查询账号和只允许排查的共享连接
  • 只需要浏览 Schema、表数据、文档、键或监控指标的场景
  • 提供给 CLI、MCP 或 AI 使用,但不希望产生任何数据修改的连接

只读保护不只是隐藏按钮。对于可识别的 SQL 写入,DBX 会在核心执行路径拒绝请求;MCP、MongoDB、Redis、消息队列和多个专项工作台也会重新检查连接只读状态。

只读分类需要识别 SQL 或命令语义。最可靠的边界仍然是数据库账号本身没有写权限。

配置生产环境保护

打开连接设置

新建或编辑连接,在连接设置中找到生产环境

启用保护

打开启用生产环境保护。单数据库连接会直接保护整个连接;支持多个数据库的连接可以选择保护全部数据库或指定数据库。

检查保护范围

如果只保护部分数据库,确认列表中包含实际生产库。数据库列表变化后应重新检查配置。

验证写入提示

在测试语句或测试环境中确认生产水印和写入确认对话框符合预期,再把同样的设置用于真实连接。

生产保护启用后,工作区会显示生产环境提示。DBX 检测到当前连接、当前数据库或 SQL 显式目标属于生产范围且语句会修改数据或结构时,会打开统一确认对话框。

每次生产写入都需要新的明确决定。确认状态不会保存,也不会因为关闭普通危险 SQL 提示而被跳过。

不同入口如何处理写入

入口只读连接生产环境保护
SQL 编辑器核心执行路径拒绝可识别写入写入前显示目标连接、数据库、入口和 SQL,逐次确认
数据表格禁用或拒绝保存、删除等修改保存行、删除行等操作进入统一生产确认
表结构与对象操作隐藏或禁用可识别的修改入口DDL、对象源码保存、数据库管理等进入统一确认
Schema 对比、SQL 文件、数据生成目标只读时不允许写入执行生成 SQL 或脚本前进入统一确认
Redis、MongoDB、etcd、消息队列等按系统命令和操作重新检查只读写入入口继续受生产保护和专项危险操作规则约束
AI Ask不执行 SQL不执行 SQL
AI Agent不能绕过只读生产 SQL 返回编辑器,由用户检查并手动执行
MCP连接只读是所有权限模式的上限生产保护始终是 MCP 策略的上限

AI 的执行边界

Ask 模式

Ask 模式用于生成、解释、优化或修复 SQL。模型返回的 SQL 不会自动执行,可以复制或放入编辑器后再检查。

Agent 模式

Agent 可以根据用户意图执行读取操作,并在满足策略时处理有限写入。即使用户对一次普通写入作出确认,授权也只对当前目标和当前操作生效。

当活动数据库处于生产保护范围时,Agent 不会获得自主写入权限。DBX 会把建议 SQL 放回编辑器,并要求用户在生产写入对话框中手动确认。

更多 SQL 分类和模式差异见 AI 助手

MCP 权限

DBX 在设置 → MCP中保存一份统一策略,所有 MCP 客户端请求都重新读取这份策略。

模式允许的代表性操作
只读查询、元数据读取、列出连接和对象
数据读写普通插入、带有效过滤条件的更新/删除、范围明确的 MongoDB 修改、普通 Redis 写入和连接管理
完全访问额外允许大范围更新/删除、DDL、TRUNCATE、清空数据和高风险管理命令

除了执行模式,还应配置允许的连接。没有进入 allowlist 的连接不会暴露给 MCP。无论选择哪一档,以下限制始终有效:

  • 连接只读
  • 生产环境保护
  • 数据库账号权限
  • 已保存的连接 allowlist

完整配置、客户端示例和兼容行为见 MCP 集成

危险 SQL 与专项命令

生产保护之外,DBX 还会对部分高风险操作应用额外规则:

  • 查询编辑器可以在执行危险 SQL 前显示确认对话框
  • Redis 可以阻止或确认高风险命令
  • 数据表格、表结构、Schema 对比和数据生成会尽量先展示 SQL
  • MCP 的“数据读写”会拒绝无有效范围的更新/删除、DDL、TRUNCATE 和无法可靠分类的高风险请求
  • 跨引擎传输和批量导入需要单独检查类型映射、目标表和清空选项

推荐配置

场景建议
本地开发库使用普通连接;保留危险 SQL 确认;需要自动化时给 MCP“数据读写”而非“完全访问”
测试/预发设置明显的连接名称和颜色;开启危险 SQL 确认;限制 MCP allowlist
生产只查使用数据库只读账号,同时启用 DBX 只读和生产保护;MCP 使用“只读”
生产变更使用独立最小权限账号;启用生产保护;先预览 SQL;保留备份和审批记录;避免给 MCP“完全访问”
共享 Docker设置登录密码、持久化 /app/data、限制网络访问,并为每个数据库使用独立账号权限

已知边界

  • SQL 和命令分类采用保守策略,但无法代替数据库服务器权限。
  • 存储过程、厂商扩展语法或动态 SQL 的真实影响范围可能无法仅通过文本完全判断。
  • 生产保护关注 DBX 内发起的操作;其他客户端仍需要独立权限和审计。
  • 配置同步和导出用于迁移 DBX 配置,不是业务数据库备份。