11. 数据连接与查询
完整版章节。内容按 2026.10 主线代码核对;具体入口以当前许可、账号权限和交付环境为准。
本章内容:本章面向数据管理员、租户管理员、智能体编辑者和使用智能体查询数据的成员,说明如何让智能体在受控权限内访问企业数据库。完整路线是:管理员准备只读数据库账号并发布数据服务类型,智能体编辑者在智能体的「应用」中填写连接信息并启用,成员在对话里用业务语言提问、由智能体执行只读查询。读完本章,你还可以按失败提示定位查询问题。
11.1 数据连接的组成与分工
适用场景:第一次规划让智能体访问业务数据,需要明确谁负责哪一步。
一条数据连接由三部分组成:数据服务类型(例如 MySQL)、连接信息与凭据(地址、库名、账号)、使用这条连接的智能体。智能体编辑者在智能体上启用某种数据服务并填好连接信息后,平台一次完成三件事:创建数据连接、部署连接服务、把它绑定到该智能体。连接归属于智能体所在的工作空间。
| 角色 | 负责的事 |
|---|---|
| :-- | :-- |
| 数据管理员 | 在数据库侧准备只读账号、开放网络访问、确定允许访问的库表和查询范围 |
| 租户管理员 | 在「管理后台 › 能力 › MCP 服务」中发布并分发所需的数据服务类型(第 22 章) |
| 智能体编辑者 | 在智能体详情 › 「应用」中启用数据服务、填写连接信息,并在智能体指令中写明数据使用规则 |
| 成员 | 在对话中提出范围明确的问题,核对数据来源、筛选条件和结果行数 |
| 审计人员 | 在「操作审计」中核对连接的创建、部署、删除和查询执行记录 |
平台提供的数据服务类型包括 MySQL、PostgreSQL、SQLite、SQL Server、ClickHouse、Redis、Elasticsearch 和 MongoDB。各类型都由智能体通过对应数据服务的工具使用。实际可选的类型以界面为准。
注意:平台会对查询执行只读校验,但这不能替代数据库侧的权限控制。务必使用数据库侧只读账号,让数据库权限与平台只读校验同时生效。
11.2 准备工作
适用场景:在智能体编辑者开始配置之前,由管理员和数据管理员完成的准备。
操作步骤
- 数据管理员为平台创建专用的只读数据库账号,只授予需要的库、表或视图的查询权限。
- 确认平台所在网络可以访问数据库地址和端口;数据库启用了来源地址白名单时,把平台的出口地址加入白名单。
- 租户管理员进入「管理后台 › 能力 › MCP 服务」,确认需要的数据服务类型(如「MySQL」「PostgreSQL」)已发布,并分发给负责配置智能体的成员或其所在部门(发布与分发的完整步骤见第 22 章;数据服务类型在列表中的具体呈现以实际界面为准)。
- 整理字段口径说明:常用指标的计算方式、时间字段与时区、金额单位、状态码含义。这些说明稍后写进智能体指令。
你会看到:数据服务类型分发后,智能体编辑者在智能体详情的「应用」页签中能找到对应条目。
注意:数据服务类型没有发布或分发时,创建连接的界面会提示「暂无可连接的数据服务」「请联系平台管理员配置数据服务类型,完成后刷新列表」。
11.3 为智能体连接数据库
适用场景:让某个业务智能体能够查询一套业务数据库。
前提:你是该智能体的编辑者,并拥有智能体所在工作空间的编辑权限;第 11.2 节的准备已完成;手上有数据库地址、端口、库名和只读账号。
操作步骤
- 打开目标智能体的详情页,切换到「应用」页签。
- 找到要使用的数据服务(例如「PostgreSQL」),打开开关。
- 在弹出的配置对话框中填写连接信息。以关系型数据库为例,常见字段有「连接名称」「数据库地址」「端口」「数据库名」「用户名」「密码」;各类型的具体字段以对话框为准。账号和密码只填写在对应的敏感字段中,不要写进智能体指令或描述。
- 选择「测试连接」,确认连通后再保存。测试失败时按提示检查地址、端口、网络、账号和库名。
- 保存后页面提示「配置已保存」;智能体正在运行时还会提示「正在应用新配置…」,稍候即可生效。
- 在智能体指令中补充数据使用规则,例如:只查询订单相关表;统计金额时以「元」为单位;时间范围缺失时先向用户确认,不要默认查询全表。
你会看到
- 「应用」页签中该数据服务显示为已启用,状态标记表明是否可用或仍需补充配置。
- 通过智能体创建的连接默认为「只读模式」:智能体只能查询数据,不能修改。
注意:
- 修改已启用连接的地址或凭据时,在同一行重新打开配置对话框修改并保存,平台会重启该连接使新配置生效。
- 一个智能体可以同时启用多个数据服务;每个数据服务对应一条独立的连接和独立的凭据。
11.4 在对话中查询数据
适用场景:成员用业务语言向智能体提出数据问题,得到查询结果、汇总表或图表。
前提:智能体已按第 11.3 节启用数据服务;你有权使用该智能体。
操作步骤
- 打开已连接数据库的智能体,新建对话。
- 在问题中写明指标、时间范围、组织范围、分组方式和期望的输出形式,例如:「统计 2026 年第三季度华东区各门店的订单金额,按月份分组,输出表格并附上所用的筛选条件」。
- 智能体需要补充口径时(例如「订单金额是否含退款」),确认字段含义、单位、空值和时间边界后再继续。
- 查看回答中的数据来源、筛选条件、结果行数;对话中显示的工具调用可展开核对实际执行的查询。
- 需要调整范围时直接追问,让智能体重新查询;不要手工修改结果后当作原始数据使用。
- 需要表格文件或图表时,让智能体生成 Excel、CSV 或图片文件,生成的文件可在对话中预览,并在文件空间中找到(导出与核对方法见第 12 章)。
你会看到
- 智能体调用数据服务的查询工具,对话中显示工具调用过程和返回结果,具体展示方式以实际界面为准。
- 只读连接上的写入、删除、修改类语句会被拒绝。
注意:
- 查询结果有行数和大小上限,大范围数据请增加时间、主键或业务条件分批查询,不要通过反复导出绕过限制。
- 表格、图表或文件生成失败时,查询本身可能已经成功。分别核对查询结果和文件产物,避免重复执行开销较大的查询。
11.5 查询安全规则与失败处理
适用场景:查询被拒绝或结果异常,需要判断原因。
平台对经数据连接执行的查询施加以下控制:只读连接拒绝写操作;查询必须在连接处于「运行中」时执行;结果有行数与大小上限;扫描风险较高的查询会被检查并可能被拦截;查询执行写入操作审计。
| 现象 | 处理方式 |
|---|---|
| :-- | :-- |
| 「测试连接」失败 | 检查数据库地址、端口、网络连通、白名单、账号、密码和数据库名 |
| 连接不可用 | 在智能体详情「应用」页签重新打开该数据服务的配置对话框,「测试连接」后保存,平台会重启该连接;仍不可用时联系管理员 |
| 提示连接必须处于运行中才能查询 | 确认智能体处于运行状态;在「应用」页签重新保存该数据服务配置,稍候再试 |
| 写操作被拒绝 | 不要绕过;改为只读查询,写入需求走受控的业务接口 |
| 扫描范围过大被拦截 | 增加时间、主键或业务范围条件,使用有索引的字段并限制返回行数 |
| 结果被截断或过大 | 缩小范围或分批查询 |
| 数据库返回超时 | 优化查询条件和索引;必要时请数据库管理员查看执行计划 |
| 智能体「应用」中找不到数据服务 | 请管理员发布并分发该数据服务类型(第 11.2 节) |
能力说明
| 不提供的能力 | 替代做法 |
|---|---|
| :-- | :-- |
| 通过智能体修改数据库数据 | 保持只读模式;写入需求通过受控的业务接口或 API 服务实现(第 22 章) |
| 任意跨库 SQL 关联 | 在数据库侧建立汇总视图,或让智能体分别查询后在对话中汇总 |
| 不经查询直接让智能体整库扫描 | 在智能体指令中要求带时间和业务范围条件,由数据管理员提供推荐查询口径 |
| 集中查看全部数据连接、按部门或岗位配置行级访问策略 | 在各智能体详情 › 「应用」中逐个维护连接;按部门或岗位隔离数据时,在数据库侧为不同场景准备不同的只读账号或视图 |
| 交互式 SQL 查询工作区 | 由智能体通过对应数据服务的工具查询,在对话中展开工具调用核对实际执行的查询 |
---