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

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

最近更新时间:2026-07-15 12:12:00
我的收藏

运维场景

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

解决方案

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

核心架构映射

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


方案优势

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

应用场景

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

支持的 IM 类型与凭证

DatabaseClaw 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. 按业务组规划实例数量,避免过度拆分

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

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

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

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

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

操作示例

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

步骤一:前置准备

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

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

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

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

2. 在左侧导航栏选择 DatabaseClaw > 实例管理,单击新建实例
3. 在创建实例页面,填写实例名称(如 claw-ecom)、选择地域(需与数据库实例同地域或可连通的地域)、配置 VPC 和子网。
4. 选择需要装配的 Skill(建议至少勾选慢 SQL 诊断、CPU 异常分析、健康巡检等核心只读 Skill)。
5. 选择或创建 SOUL(可在创建后单独配置,见步骤五)。
6. 单击确认创建,等待 3-5 分钟实例创建完成,状态变为运行中
7. 对每个业务组重复上述步骤,创建对应的 DatabaseClaw 实例。
说明:
首次创建实例时,系统会自动代建默认全局只读角色 DatabaseClaw_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. 角色载体选择身份提供商,选择 DatabaseClaw 对应的身份提供商。
4.2.3. 角色名称以 DatabaseClaw_AI_ 开头(如 DatabaseClaw_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. 在 DatabaseClaw 管理端关联角色到实例

4.3.1. 登录 数据库 AI 服务控制台,在左侧导航栏选择 DatabaseClaw > 后台管理
4.3.2. 选择团队管理 > 用户角色,进入用户角色管理页。
4.3.4. 生效方式选择指定实例生效,在实例列表中勾选对应的 DatabaseClaw 实例(如 claw-ecom)。
4.3.5. 单击保存关联实例,确认后系统会触发该实例重启(通常 30 秒内),重启期间 AI 对话暂时不可用。
4.3.6. 对每个业务组重复上述操作。
说明:
关联角色后,该 DatabaseClaw 实例中的 AI 将以该角色的 CAM 权限调用云 API,仅能访问角色策略中限定的数据库实例。生效优先级为:指定实例角色 > 全局角色(默认只读)。



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

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

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

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

资源隔离能力介绍

Channel 机制

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

用户角色权限体系介绍

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

常见问题

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

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

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

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

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

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

Q4:Channel 显示异常怎么办?

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