博客

Databend MCP:生产只读 + 沙箱验证,让 AI 安全操作数据

avatarDatabendLabs1月 28, 2026
Databend MCP:生产只读 + 沙箱验证,让 AI 安全操作数据

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

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

Databend MCP Architecture

🛡️ 安全核心:会话沙箱 (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

开始体验 Databend Cloud

一个平台覆盖分析、搜索与 AI,存算分离弹性伸缩,SaaS 开箱即用,注册送 200 元代金券。

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

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

⚠️ 前置条件:请确保已安装 uv (Python 包管理工具)。

只需配置 DSN 即可使用。

Codex CLI

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

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 的能力。


分享本篇文章

订阅我们的新闻简报

及时了解功能发布、产品规划、支持服务和云服务的最新信息!