帮你快速理解、总结文档立即下载
文档中心>腾讯云数据库 AI 服务>实践教程>多业务部门 TencentDB Agent IM 接入与资源隔离实践教程

多业务部门 TencentDB Agent IM 接入与资源隔离实践教程

最近更新时间:2026-10-27 22:06:01
我的收藏

运维场景

在大型企业中,数据库运维团队通常面临以下组织与协作挑战:
DBA 团队人少、服务对象多:仅几人的 DBA 团队需要支撑集团内多个开发部门的数据库日常运维和问题咨询,DBA 成为瓶颈,基础排障和咨询请求占满工作时间,深度优化和高价值工作难以投入。
跨业务部门数据隔离需求强:不同业务部门(如电商、支付、物流)的数据库实例相互独立,研发人员只应看到本业务组的数据库资源,不能越权访问其他业务组的数据。传统的共享 DBA 账号方式无法做到资源级隔离。
IM 渠道成为首选交互入口:研发人员习惯在飞书、企业微信或钉钉群中沟通协作,希望直接在群内 @ 机器人完成数据库问题咨询和基础排障,无需登录云控制台,也无需等待 DBA 人工响应。

解决方案

腾讯云数据库 AI 服务 TencentDB Agent 提供 Channel 接入能力与用户角色权限体系,支持将 TencentDB Agent 实例作为“DBA 分身”通过 IM 渠道开放给不同业务部门使用,实现资源级权限管控与资源组隔离,让每个业务组的研发在自己的工作群中获得专属的 AI DBA 助手。
依托 TencentDB Agent 的 Channel 接入、用户角色管理与 SOUL 配置能力,按业务部门维度划分 TencentDB Agent 实例,每个实例绑定对应业务组的数据库资源并接入独立 IM 群组,实现"一业务组一实例一渠道"的隔离架构。

核心架构映射

层级
映射关系
说明
业务组
一个业务部门对应一个 TencentDB Agent 实例
实例间配置独立、资源隔离
数据库资源
每个 TencentDB Agent 实例通过 CAM 角色限定可访问的数据库实例范围
仅能访问本业务组的数据库实例
IM 渠道
每个实例接入一个 Channel(飞书/企业微信/钉钉机器人)
Channel 与实例 1:1 绑定,对话隔离
IM 群组
每个 Channel 对接一个业务组专属 IM 群
研发在群内 @ 机器人即可对话
AI 身份
每个实例配置独立 SOUL
可按业务组定制 AI 助手身份与回答风格


方案优势

资源级隔离:通过 CAM 角色的资源级策略(六段式)限定每个 TencentDB Agent 实例仅能访问本业务组的数据库实例,从机制上保证跨业务组数据不可见。
权限可控:AI 默认以只读角色运行,由云 API 接口限制最终可执行的实际操作,仅具备诊断分析能力,不可执行任何写变更;可写角色强制绑定指定实例且叠加 AI 防护栏(高危禁止执行) 兜底策略拒绝高危动作。
IM 原生交互:研发人员直接在飞书、企业微信或钉钉群 @ 机器人即可完成数据库诊断、慢 SQL 分析、健康巡检等操作,无需登录控制台,无需 DBA 人工介入。
按业务定制:每个实例可配置独立 SOUL,定义 AI 助手的身份、行为准则与回答风格,适配不同业务组的沟通习惯和运维规范。
弹性扩展:新增业务部门时,只需创建新实例 → 配置角色 → 接入 Channel 三步,不影响已有业务组的使用。

应用场景

场景
核心痛点
方案关键能力
推荐架构
多业务部门咨询分流
DBA 被基础咨询淹没,高价值工作无暇投入
每业务组独立实例 + IM 群,研发自助排障
一业务组一实例一 IM 群
跨业务组数据隔离
共享账号无法做到资源级隔离
CAM 角色资源级策略 + 实例级角色绑定
只读角色限定到本组数据库实例 ID
DBA 跨组管理
DBA 需要管理多个业务组的实例
DBA 通过控制台统一以及单独的 IM 渠道管理所有实例
DBA 授予管理权限,可跨实例操作

支持的 IM 类型与凭证

TencentDB Agent Channel 当前支持飞书、企业微信、钉钉三类 IM 平台,各平台接入方式与所需凭证如下:
IM 类型
所需凭证
平台侧准备
飞书
App ID + App Secret
飞书开放平台创建企业自建应用,添加机器人能力,订阅事件/回调(长连接方式,事件含 im.chat / im.message 系列),开通 im:chat / im:message 权限并创建版本发布
企业微信
Bot ID + Bot Secret
企业微信工作台「智能机器人」创建机器人,API 模式创建,连接方式选「使用长连接」后自动生成 Bot ID 与 Secret
钉钉
Client ID + Client Secret
钉钉开放平台创建企业内部应用,添加机器人能力,在应用基础信息中获取 AppKey(Client ID)和 AppSecret(Client Secret)
说明:
群聊中均仅 @ 机器人的消息触发响应;私聊直接发送消息即可(飞书/钉钉私聊无需 @,企业微信私聊直接发消息)。
钉钉机器人的安全设置需在钉钉开放平台完成相应配置(如加签、IP 段或自定义关键词),否则外部推送可能被拒绝。

实践建议

1. 按业务组规划实例数量,避免过度拆分

每个业务部门分配一个独立的 TencentDB Agent 实例。如果某业务部门内部有多个子团队且数据库实例较多(如超过 100 个),可考虑按子团队进一步拆分。

2. 使用 CAM 资源级策略实现数据库实例隔离

默认全局只读角色 TencentDBAgent_AI_GlobalReadOnly 对账号下所有数据库实例生效,不具备资源隔离能力。要实现业务组间的数据库实例隔离,需要为每个业务组创建资源级限定的自定义 CAM 角色:
在 CAM 控制台创建角色(载体为身份提供商,选择 TencentDB Agent 对应的身份提供商)。
关联只读策略时,将策略中的 resource 字段限定到本业务组的数据库实例 ID(六段式格式),例如 qcs::cdb:ap-guangzhou:uin/xxx:instanceId/cdb-xxxx。
创建完成后,该角色会自动出现在 TencentDB Agent 管理端用户角色列表中。
将该角色关联到对应业务组的 TencentDB Agent 实例(指定实例生效)。
通过这种方式,每个业务组的 TencentDB Agent 实例中的 AI 仅能查询和诊断本业务组的数据库实例,从 CAM 权限层面保证资源隔离。

3. 全部业务组实例默认使用只读角色

说明:
面向研发人员的 IM 渠道场景,建议所有业务组实例均绑定只读角色。研发人员通过 IM 与 AI 对话时,AI 仅能执行查询问答、诊断分析类操作,不可执行任何写变更。
只读角色模板(默认创建角色)覆盖腾讯云主流数据库产品的只读能力(含 MySQL、TDSQL-C、Distributed Cache(兼容 Redis))、MongoDB、PostgreSQL 等14条只读策略 + 云监控只读 + DBbrain 只读 + 腾讯云数据库 AI 服务只读),使 AI 具备完整的诊断查询上下文但不能执行写入操作。

操作示例

说明:
本节以飞书为例演示完整操作流程。企业微信和钉钉的配置流程相同,仅在 步骤一(前置准备中的 IM 平台准备)和步骤六(Channel 接入凭证字段)有所不同,差异部分已在各步骤中标注。

步骤一:前置准备

下表列出了开始本实践前需满足的条件:
条件
说明
腾讯云账号
已完成实名认证,且已开通 腾讯云数据库 AI 服务。
CAM 权限
操作人为子账号时,需被授予 QcloudDatabaseClawAdminFullAccess(管理端)或 QcloudDatabaseClawUserFullAccess(用户端)策略。如需代创建角色,还需具备 CAM 创建角色及关联策略的权限。
服务授权
首次创建 TencentDB Agent 实例时,已在服务授权弹窗中完成 TencentDBAgent_AIRoleProvisioner 角色授权。
数据库实例
各业务组的数据库实例已创建并处于运行状态,如云数据库 MySQL、TDSQL-C、Distributed Cache(兼容 Redis) 等。

步骤二:规划业务组与实例映射

在开始操作前,先完成业务组与 TencentDB Agent 实例的映射规划。以下为一个示例规划表:
业务组
数据库实例范围
TencentDB Agent 实例名称
IM 群名称
CAM 角色名称
电商业务
cdb-ecom-001 ~ cdb-ecom-020
agent-ecom
电商-DBA 助手群
TencentDBAgent_AI_EcomReadOnly
支付业务
cdb-pay-001 ~ cdb-pay-008
agent-pay
支付-DBA 助手群
TencentDBAgent_AI_PayReadOnly
物流业务
cdb-logi-001 ~ cdb-logi-012
agent-logi
物流-DBA 助手群
TencentDBAgent_AI_LogiReadOnly

步骤三:为每个业务组创建 TencentDB Agent 实例

2. 在左侧导航栏选择 TencentDB Agent > 实例管理,单击新建实例。
3. 在创建实例页面,填写实例名称(如 agent-ecom)、选择地域(需与数据库实例同地域或可连通的地域)、配置 VPC 和子网。
4. 选择需要装配的 Skill(建议至少勾选慢 SQL 诊断、CPU 异常分析、健康巡检等核心只读 Skill)。
5. 选择或创建 SOUL(可在创建后单独配置,见步骤五)。
6. 单击确认创建,等待3 - 5分钟实例创建完成,状态变为运行中。
7. 对每个业务组重复上述步骤,创建对应的 TencentDB Agent 实例。
说明:
首次创建实例时,系统会自动代建默认全局只读角色 TencentDBAgent_AI_GlobalReadOnly。该角色对账号下所有数据库实例生效,作为安全兜底基线。后续步骤将为每个业务组创建资源级限定的角色来覆盖此默认角色。


步骤四:创建资源级只读角色并关联实例

4.1. 在 CAM 控制台创建资源级限定策略

4.1.1. 前往 CAM 控制台 > 策略 > 新建策略。
4.1.2. 策略类型选择按策略语法创建(可根据实际授权资源情况,选择不同的创建方式)。
4.1.3. 模板选择空白模板,单击下一步。
4.1.4. 在策略编辑页面,填写以下信息:
自定义策略示例(电商业务组,限定3个 CDB 实例,根据实际情况调整资源六段式的内容):
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"cdb:Describe*"
],
"resource": [
"qcs::cdb:ap-guangzhou:uin/100000000001:instanceId/cdb-ecom-001",
"qcs::cdb:ap-guangzhou:uin/100000000001:instanceId/cdb-ecom-002",
"qcs::cdb:ap-guangzhou:uin/100000000001:instanceId/cdb-ecom-003"
]
}
]
}






4.2. 在 CAM 控制台创建资源级限定角色

4.2.1. 前往 CAM 控制台 > 角色 > 新建角色。
4.2.2. 角色载体选择身份提供商,选择 TencentDB Agent 对应的身份提供商。
4.2.3. 角色名称以 TencentDBAgent_AI_ 开头(如 TencentDBAgent_AI_EcomReadOnly)。
4.2.4. 在策略关联步骤中,不直接选择 QcloudCDBReadOnlyAccess 等全量只读策略,而是选择已经创建的自定义策略,将 resource 限定到本业务组的数据库实例 ID。
4.2.5. 完成角色创建。





注意:
上述示例仅展示 CDB 只读的资源级限定。实际使用时需根据业务组使用的数据库类型(如 TDSQL-C、Distributed Cache(兼容 Redis)、MongoDB 等)分别添加对应的只读 Action 和 Resource。可参照只读角色模板的14条策略清单,将每条策略的 resource 限定到本业务组的实例 ID。详见 管理用户角色 — 角色模板策略清单。

4.3. 在 TencentDB Agent 管理端关联角色到实例

在 TencentDB Agent 管理端将4.2节创建的资源级限定角色(如 TencentDBAgent_AI_EcomReadOnly)关联到对应业务组的 TencentDB Agent 实例(如 agent-ecom),并对每个业务组重复上述操作。具体操作步骤请参见 管理用户角色 中的「关联实例」部分。
说明:
关联角色后,该 TencentDB Agent 实例中的 AI 将以该角色的 CAM 权限调用云 API,仅能访问角色策略中限定的数据库实例。生效优先级为:指定实例角色 > 全局角色(默认只读)。

步骤五:为每个实例接入 IM Channel

Channel 接入步骤对飞书、企业微信、钉钉三种 IM 平台一致,区别仅在于 IM 平台侧的应用创建和凭证字段。以下分别说明。
通用注意事项
每个 Channel 固定路由至一个 TencentDB Agent 实例(1:1 绑定),不支持改绑,变更绑定关系需删除后重新创建。
一个实例可接入多个 Channel(不同 IM 类型或同类型不同应用),各 Channel 之间对话隔离。
所有凭证(App Secret / Bot Secret / Client Secret)均通过 KMS 信封加密存储,控制台仅展示脱敏字符(如 cli**** / ding****)。
对每个业务组重复上述步骤,为每个 TencentDB Agent 实例接入对应的 IM Channel。

步骤六:验证资源隔离效果

1. 在电商业务组的 IM 群中 @ 机器人,询问"查看所有 MySQL 实例列表"。
2. 确认 AI 返回的实例列表仅包含电商业务组的数据库实例(cdb-ecom-001 ~ cdb-ecom-020),不包含其他业务组的实例。
3. 尝试询问其他业务组的实例信息,确认 AI 提示无权限或无法找到。
4. 在支付业务组的 IM 群中重复上述验证,确认各组之间数据完全隔离。

资源隔离能力介绍

Channel 机制

Channel 是 TencentDB Agent 对即时通讯(IM)通道的统一抽象:每个 Channel 对应一个 IM 平台(飞书、企业微信或钉钉)的机器人应用,并绑定至一个 TencentDB Agent 实例。完成接入后,团队成员可直接在 IM 中 @ 机器人与实例对话、执行数据库运维操作,无需登录控制台。
能力
说明
1:1 路由绑定
每个 Channel 固定路由至一个 TencentDB Agent 实例,不支持改绑。
多 Channel 支持
一个实例可接入多个 Channel(不同 IM 类型或同类型不同应用),各 Channel 之间对话隔离。
权限继承
实例以绑定角色的 CAM 权限调用云 API,权限管控逻辑与控制台一致。
群聊触发
群聊中仅 @ 机器人的消息触发响应;私聊直接发送消息即可(飞书/钉钉私聊无需 @,企业微信私聊直接发消息)。
凭证加密
敏感凭证(App Secret / Bot Secret / Client Secret)通过 KMS 信封加密存储,控制台仅展示脱敏字符。
定时任务投递
定时任务执行结果可投递至已接入的 Channel(个人或群聊目标)。

用户角色权限体系介绍

用户角色管理功能让管理员为 AI 单独配置一组权限边界,使 AI 的操作权限与登录控制台的人(子账号)权限完全解耦,把"AI 能做什么"收敛到可控、可审计的范围内。
机制
说明
角色身份独立于人
AI 调用云 API 时使用专门的 CAM 角色身份获取临时凭证,不再继承操作人子账号的 CAM 权限。
默认全局只读兜底
首次创建实例时自动代建 TencentDBAgent_AI_GlobalReadOnly,对所有未单独绑定角色的实例生效,确保“开通即只读”。
生效优先级
指定实例角色 → 全局角色(默认只读);新建实例自动继承全局只读角色。
可写角色强制指定实例
可写角色不允许设为全局生效,强制走“指定实例生效”,避免写权限一次性扩散。
Deny 兜底策略
可写角色强制叠加 TencentDB Agent AI 防护栏,永久拒绝销毁/扩缩容/网络变更/库表删除等高危动作。
角色变更需重启
实例绑定的角色变化时需重启实例(通常30秒内),重启期间 AI 对话暂时不可用。
全链路审计
每次 AI 调用云 API 时,请求携带实例标识与操作主体信息,可在 CAM 审计日志中追溯。

常见问题

Q1:不同业务组的研发人员在同一个 IM 群中可以吗?

可以但不建议。本实践推荐“业务组一实例一 IM 群”的架构,每个业务组使用独立的 IM 群和独立的机器人应用。如果多个业务组共用一个 IM 群和一个机器人,由于 Channel 与实例是 1:1 绑定,所有消息都会路由到同一个实例,无法实现资源级隔离。

Q2:如何控制研发人员能使用哪些 Skill?

在 TencentDB Agent 实例的 Skill 管理页面,可以启用/禁用已安装的 Skill。面向研发人员的 IM 渠道场景,建议仅启用只读类 Skill(如慢 SQL 诊断、CPU 异常分析、健康巡检等),禁用涉及写操作的 Skill。结合只读角色的 CAM 权限限制,双重保障 AI 不执行写操作。

Q3:研发人员在群里 @ 机器人提问,其他人能看到对话内容吗?

飞书、企业微信、钉钉的群聊中所有消息对群成员可见。TencentDB Agent 的“对话隔离”指的是 AI 不会将不同用户的对话上下文混在一起(即用户 A 的提问不会影响用户 B 的对话上下文),但群聊消息本身遵循 IM 平台的可见性规则。如需私密对话,研发人员可私聊机器人(飞书/钉钉私聊直接发送消息即可,企业微信私聊同样直接发消息)。

Q4:Channel 显示异常怎么办?

应用被禁用或删除:前往对应 IM 开放平台(飞书/企业微信/钉钉)确认应用状态,不可恢复则删除 Channel 重新接入。
持续网络故障:系统每30分钟自动探测,持续失败需排查网络连通性。
实例被隔离或异常:所有 Channel 暂停消息响应,恢复实例为运行中状态后自动恢复。
钉钉机器人安全设置未通过:检查钉钉开放平台中机器人的安全设置(加签/IP 段/自定义关键词)是否与 TencentDB Agent 推送方式匹配。