---
title: 'Databend MCP：生产只读 + 沙箱验证，让 AI 安全操作数据'
description: 'Databend MCP 以生产只读 + 会话沙箱 + 白名单划定安全边界，让 AI 可读生产、在隔离环境完成清洗与验证，同时彻底隔离生产端的写入、更新与删除风险。'
date: 2026-01-28
slug: category-product/databend-mcp
cover_url: '202601/mcp/databend-mcp-title-cn.png'
image: '202601/mcp/databend-mcp-title-cn.png'
tags: [databend, MCP, AI, Security]
category: Product
authors:
  - DatabendLabs
---

import BlogSignupAD from '@site/src/components/blog-signup-ad';

# Databend MCP：生产只读 + 沙箱验证，让 AI 安全操作数据

**MCP (Model Context Protocol)** 正在重塑 AI 与数据服务的连接方式。在数据库场景下，开放数据访问权限与保障数据安全性往往是一对难以调和的矛盾。如何在不触碰生产数据安全红线的前提下，赋予 AI 完整的数据处理与逻辑验证能力？

Databend MCP 提出的解决方案是：**生产只读 + 会话沙箱**。

{/* truncate */}

![Databend MCP Architecture](/img/blog/202601/mcp/databend-mcp-architecture.png)

## 🛡️ 安全核心：会话沙箱 (Session Sandbox)

为了解决安全与能力的冲突，Databend MCP 引入了“会话沙箱”机制，通过严格的权限边界划分，确保操作的绝对安全：

1.  **生产环境只读**：针对生产环境对象，仅开放 `SELECT`、`SHOW`、`DESCRIBE` 等读操作。任何试图修改生产数据的 `UPDATE`、`DELETE` 或 `DROP` 指令，都会被服务端拦截。
2.  **沙箱环境独立**：每个 MCP 会话被分配一个独立的命名空间前缀 `mcp_sandbox_{session_id}_`。
3.  **写操作隔离**：所有的数据写入和修改操作（如创建临时表、ETL 清洗）仅允许发生在所属会话的沙箱前缀下。

### ✅ 支持的命令列表 (Safety Guarantees)

Databend MCP 实施了严格的白名单机制，具体支持的命令如下：

**1. 允许的读操作 (Global Read-Only):**
*   `SELECT`, `SHOW`, `DESCRIBE`, `EXPLAIN`, `LIST`

**2. 支持操作的对象类型:**
*   `CATALOG`, `DATABASE`, `TABLE`, `VIEW`, `STAGE`
*   `FUNCTION`, `USER`, `ROLE`, `TASK`
*   `PIPE`, `STREAM`, `CONNECTION`
*   `WAREHOUSE`, `SEQUENCE`
*   `PROCEDURE`, `DICTIONARY`
*   `TAG`, `FILE FORMAT`
*   `NETWORK POLICY`, `PASSWORD POLICY`, `MASKING POLICY`, `ROW ACCESS POLICY`
*   `NOTIFICATION INTEGRATION`, `WORKLOAD GROUP`
*   `DYNAMIC TABLE`, `INDEX`

**3. 允许的写操作 (Sandbox Only):**
*   `CREATE`, `CREATE OR REPLACE`, `DROP`, `ALTER`
*   `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, `COPY`, `MERGE`, `REPLACE`
*   `GRANT`, `REVOKE`

> ⚠️ 注意：所有写操作仅限于以 `mcp_sandbox_{session_id}_` 为前缀的对象。

### 为什么仅有“只读”权限是不够的？

如果仅赋予 AI 只读权限，它在面对复杂数据任务时将束手无策。因为真实的数据处理不仅仅是“查询”，更包含“清洗”、“转换”和“验证”。

*   **无法验证逻辑**：AI 生成的 `DELETE` 或 `UPDATE` 逻辑，如果不能实际运行一次，就无法确认其正确性。
*   **无法中间落地**：复杂分析往往需要创建临时表来存储中间结果，只读权限直接阻断了这一路径。

**会话沙箱**正是为了补全这一环节，让 AI 能够在一个隔离环境内完成“**采样读取 -> 模拟修改 -> 结果验证**”的完整闭环。

## 🔧 核心能力：全链路验证支持

基于安全沙箱架构，Databend MCP 为 AI 提供了完整的数据交互能力：

*   **Schema 自动发现**：自动获取表结构、字段类型及函数元数据，帮助 AI 理解数据语义。
*   **SQL 执行与验证**：支持多语句执行，允许在沙箱内运行复杂的 ETL 逻辑，提供即时执行反馈。
*   **资源与连接管理**：支持管理沙箱内的数据库、Stage 和各类连接信息，满足多样化任务需求。

### 🛠️ 可用工具列表 (Available Tools)

`execute_sql`, `execute_multi_sql`, `show_databases`, `show_tables`, `describe_table`, `show_stages`, `list_stage_files`, `create_stage`, `show_connections`, `get_session_sandbox_prefix`, `list_session_sandbox_databases`, `create_session_sandbox_database`

## 💡 场景实战：获取经过验证的 Stream 用法

对于不熟悉的特性（如 Databend Stream），你可以直接要求 Agent 给出用法。Agent 不会凭空捏造，而是会在沙箱中**先写代码、运行验证、再返回结果**。

下面的示例展示了整个交互过程：

**1. 用户提问：**
> "请使用 Databend MCP，给出 Databend Stream 如何使用的示例，并验证"

**2. MCP 执行过程（自动验证）：**
Agent 自动在沙箱中构建测试用例，确保给出的示例是 100% 可用的：
*   **构建**：创建测试表 `user_log` 和对应的流 `user_log_stream`。
*   **验证**：插入数据模拟业务变更，并查询 Stream 确认捕获成功。

**3. 最终回复：**
Agent 将经过验证的 SQL 和执行结果汇总，返回准确可靠的指南。

![Databend MCP Usage Example](/img/blog/202601/mcp/databend-mcp-stream-example-cn.png)

<BlogSignupAD title="需要在不动生产的前提下验证 AI 数据操作吗？" />

## 🚀 快速接入 (支持的客户端)

Databend MCP 兼容标准协议，支持主流 AI 开发工具直接接入。

> ⚠️ **前置条件**：请确保已安装 [uv](https://docs.astral.sh/uv/) (Python 包管理工具)。

只需配置 DSN 即可使用。

### Codex CLI

```bash
codex mcp add databend \
  --env DATABEND_DSN='databend://user:password@host:port/database?warehouse=your_warehouse' \
  -- uv tool run --from mcp-databend@latest mcp-databend
```

### Claude Code CLI

```bash
claude mcp add databend \
  --env DATABEND_DSN='databend://user:password@host:port/database?warehouse=your_warehouse' \
  -- uv tool run --from mcp-databend@latest mcp-databend
```

### Cursor

在 **Settings -> MCP** 中添加配置：

*   **Name**: `Databend`
*   **Command**: `uv tool run --from mcp-databend@latest mcp-databend`
*   **Env**: `DATABEND_DSN=databend://user:password@host:port/database?warehouse=your_warehouse`

## 总结

Databend MCP 通过“**生产只读 + 沙箱读写**”的架构，在保障生产数据绝对安全的同时，为 AI 提供了必要的实验环境。这不仅解决了数据安全顾虑，更让 AI 真正具备了构建可靠 Data Pipeline 的能力。

---

*   GitHub: [databendlabs/mcp-databend](https://github.com/databendlabs/mcp-databend)
*   文档: [Connect AI Agents](https://www.databend.cn/mcp/)
