返回技能市场
数据分析 安全

Agent数据安全网关

@aliyun/alibabacloud-dms-skill

阿里云DMS - AI时代的数据安全访问网关 |智能问数引擎 | 支持60+数据源 核心特性 安全访问 账号密码安全托管:安全管理数据库账号密码,无需人工维护,有效防止敏感信息泄露。 支持内网访问:提供内网访问数据库能力,数据不出域,有效保障数据安全与隐私。 细粒度权限管控:支持实例、库、表、字段及行级别的精细化访问控制,精准限制调用方权限,杜绝越权操作,保障数据安全。 高危SQL识别与拦截:内置丰富的规则引擎,实时识别并拦截潜在高危SQL,防范安全风险。 SQL审计追踪:记录所有SQL操作日志,支持完整追溯与合规审计,满足监管要求。 智能问数 内置NL2SQL算法:基于输入的自然语言问题,智能匹配数据表,理解表中业务含义,生成并执行SQL查询,快速获取结果。 个性化知识库:内置元数据和问数知识库,支持自定义业务知识和查询模式,打造贴合业务场景的专属智能问数能力。 多数据源支持 广泛数据源支持:支持40多种主流数据库/数仓类型,实现多源数据统一接入和访问。 多环境统一管理:支持开发、测试、生产等不同环境下的数据库实例集中管理,提升运维效率。 多平台无缝集成:覆盖阿里云、AWS等主流云平台以及自建数据库/数仓,有效降低维护成本。 支持生态 支持阿里云全系数据源:RDS、PolarDB、ADB系列、Lindorm系列、TableStore系列、Maxcompute系列。 支持主流数据库/数仓:MySQL、MariaDB、PostgreSQL、Oracle、SQLServer、Redis、MongoDB、StarRocks、Clickhouse、SelectDB、DB2、OceanBase、Gauss、BigQuery等。

云Skills门户 热度 125v0.0.2

阿里云 DMS 数据库读写

通过阿里云 DMS OpenAPI 搜索目标数据库,并执行 SQL 查询和数据修改。

场景说明

此 skill 实现以下工作流:

  1. 搜索目标数据库 — 按关键字搜索数据库以获取数据库 ID
  2. 执行 SQL 查询 — 在目标数据库上执行 SQL 语句

架构

User Request → Search Database → Get Database ID → Execute SQL → Return Results

前提条件

AI-Mode 生命周期(必须按顺序执行)

此 skill 必须在 AI-Mode 会话中运行。必须将以下五个步骤视为严格的生命周期——不得跳过、重新排序,也不得将设置步骤与命令执行交叉进行:

1. aliyun configure ai-mode enable                                              # Enable AI-Mode
2. aliyun configure ai-mode set-user-agent AlibabaCloud-Agent-Skills/alibabacloud-dms-skill   # Register skill User-Agent
3. aliyun configure set --auto-plugin-install true && aliyun plugin update      # Plugin update
4. <execute DMS commands via ./scripts/*.sh>                                    # Execute commands
5. aliyun configure ai-mode disable                                             # Disable AI-Mode (Cleanup)

步骤 1–3 属于设置(本节)。步骤 4 参见[核心工作流](#core-workflow)。步骤 5 参见[清理](#cleanup)。

预检查

预检查 0:要求阿里云 CLI >= 3.3.3
运行 aliyun version 验证版本是否 >= 3.3.3。如果尚未安装或版本过低,
运行 curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash 进行安装/更新,
或参阅 references/cli-installation-guide.md 获取安装说明。
预检查 1:启用 AI-Mode
[必须] 在进行任何其他配置或执行命令之前,运行 aliyun configure ai-mode enable 以启用 AI-Mode。
这将激活 AI-Mode 会话,供下游 OpenAPI 服务识别由 agent 发起的流量。
预检查 2:在 AI-Mode 下注册 skill 的 User-Agent
[必须] 运行 aliyun configure ai-mode set-user-agent AlibabaCloud-Agent-Skills/alibabacloud-dms-skill
将此 skill 的标识符注册为当前会话的 AI-Mode User-Agent。
ai-mode enable 之后立即运行此命令,并确保在进行任何插件更新或执行 DMS 命令之前运行。
预检查 3:必须更新阿里云 CLI 插件
[必须] 运行 aliyun configure set --auto-plugin-install true 以启用插件自动安装。
[必须] 运行 aliyun plugin update,确保所有现有插件始终为最新版本。
插件更新必须在启用 AI-Mode 并注册 User-Agent 之后进行,以便插件管理器本身报告正确的标识符。
  • Aliyun CLI >= 3.3.3
  • jq(用于解析 JSON):brew install jq
  • 已通过 aliyun configure 配置凭证
预检查 4:必须具备阿里云凭证
安全规则:
- 禁止读取、回显或打印 AK/SK 值(例如,严禁使用 echo $ALIBABA_CLOUD_ACCESS_KEY_ID
- 禁止要求用户直接在对话或命令行中输入 AK/SK
- 禁止aliyun configure set 中使用字面量凭证值
- 只能使用 aliyun configure list 检查凭证状态
```bash
aliyun configure list
```
检查输出中是否存在有效的配置文件(AK、STS 或 OAuth 身份)。
如果不存在有效的配置文件,在此处停止。
1. 从阿里云控制台获取凭证
2. 在此会话之外配置凭证(通过终端中的 aliyun configure 或 shell 配置文件中的环境变量)
3. 在 aliyun configure list 显示有效的配置文件后返回并重新运行

[必须] 每条命令的 CLI User-Agent — 除了预检查 2 中注册的 AI-Mode User-Agent 外, 步骤 4 中每次调用 aliyun CLI 命令时还必须包含: --user-agent AlibabaCloud-Agent-Skills/alibabacloud-dms-skill 每条命令的标志与 AI-Mode 会话级设置相互补充——二者必须同时存在,以确保即使 AI-Mode 会话过期,也会在每个请求中发送该标识符。

RAM 权限

[必须] RAM 权限预检查:执行前,验证当前用户是否具有以下 RAM 权限。
参阅 references/ram-policies.md 获取完整的权限列表。

参数确认

重要:参数确认 — 在执行任何命令或进行任何 API 调用之前,
所有用户可自定义的参数(例如,数据库关键字、SQL 语句、db-id 等)
都必须与用户确认。未经用户明确批准,不得假设或使用默认值。

| 参数 | 必填/可选 | 描述 | 默认值 | |-----------|------------------|-------------|---------| | keyword | 必需 | 数据库搜索关键字(1-128 个字符,仅包含字母和数字) | - | | db-id | 必需 | 数据库 ID(正整数,通过搜索获得) | - | | sql | 必填 | 待执行的 SQL 语句(1-10000 个字符) | - | | logic | 可选 | 是否使用逻辑数据库模式 | false | | force | 可选 | 确认写操作(INSERT/UPDATE/DELETE) | false | | dry-run | 可选 | 预览写操作但不执行 | false |

核心工作流

任务 1:搜索目标数据库

按关键字搜索数据库以获取数据库 ID:

./scripts/search_database.sh <keyword> --json

示例:

# Search for databases containing "mydb"
./scripts/search_database.sh mydb --json

输出包含 database_idschema_namedb_typehostport 等。

任务 2:执行 SQL 查询

使用上一步获取的数据库 ID 执行 SQL:

./scripts/execute_query.sh --db-id <database_id> --sql "<SQL_statement>"

写操作保护

对于写操作(INSERT/UPDATE/DELETE),脚本会执行保护性预检查:

| 参数 | 说明 | |-----------|-------------| | --force | 确认并执行写操作时必须提供 | | --dry-run | 预览写操作但不执行 |

DDL 操作(DROP/TRUNCATE/ALTER/RENAME)已被完全阻止 — 这些操作必须通过 DMS 控制台执行。

示例:

# Read operations (no confirmation needed)
./scripts/execute_query.sh --db-id 78059000 --sql "SHOW TABLES"
./scripts/execute_query.sh --db-id 78059000 --sql "SELECT * FROM users LIMIT 10" --json

# Write operations - preview first (recommended)
./scripts/execute_query.sh --db-id 78059000 --sql "INSERT INTO users (name) VALUES ('test')" --dry-run

# Write operations - execute with confirmation
./scripts/execute_query.sh --db-id 78059000 --sql "INSERT INTO users (name) VALUES ('test')" --force
./scripts/execute_query.sh --db-id 78059000 --sql "UPDATE users SET name='test' WHERE id=1" --force
./scripts/execute_query.sh --db-id 78059000 --sql "DELETE FROM users WHERE id=1" --force

# Logic database mode
./scripts/execute_query.sh --db-id 78059000 --sql "SELECT 1" --logic

完整示例

# 1. Search database (assuming searching for "order")
./scripts/search_database.sh order --json
# Example output:
# [{"DatabaseId": "78059000", "SchemaName": "order_db", ...}]

# 2. Execute query
./scripts/execute_query.sh --db-id 78059000 --sql "SELECT COUNT(*) FROM orders"

成功验证

执行 SQL 后,检查返回结果:

  1. 脚本返回码为 0
  2. 输出包含查询结果(列名和行数据)
  3. 无错误消息
# Verify query success
./scripts/execute_query.sh --db-id <db-id> --sql "SELECT 1" --json
# Expected output: [{"Success": true, "RowCount": 1, ...}]

清理

此 skill 执行读写操作,但不会创建持久化资源,因此无需释放数据库资源。

但是,AI-Mode 生命周期要求执行显式清理步骤:

[必须] 所有任务完成后停用 AI-Mode
此 skill 会话中的所有 DMS 命令执行完毕后,运行一次 aliyun configure ai-mode disable
(无论成功还是失败)。这将终止 AI-Mode 会话,并防止已注册的
AlibabaCloud-Agent-Skills/alibabacloud-dms-skill User-Agent 泄露到后续无关的 CLI 使用场景中。
aliyun configure ai-mode disable

写操作安全

| 操作类型 | 处理方式 | |---------------|----------| | SELECT / SHOW / DESC | 直接执行 | | INSERT / UPDATE / DELETE | 必须使用 --force--dry-run | | DROP / TRUNCATE / ALTER / RENAME | 已阻止 — 请使用 DMS 控制台 |

可用脚本

| 脚本 | 说明 | |--------|-------------| | scripts/search_database.sh | 按关键字搜索数据库 | | scripts/execute_query.sh | 执行 SQL 查询 |

注意: 脚本使用通过 aliyun configure 配置的 aliyun-cli 凭据。

最佳实践

  1. 确认数据库 — 执行 SQL 前验证目标数据库
  2. 使用 --json 参数 — 便于以编程方式处理输出
  3. 预览写操作 — 对于 INSERT/UPDATE/DELETE,始终先使用 --dry-run
  4. 显式确认 — 仅在查看预览结果后使用 --force
  5. 避免 DDL 操作 — DROP/TRUNCATE/ALTER/RENAME 已被阻止;请改用 DMS 控制台

参考链接

| 文档 | 说明 | |----------|-------------| | [references/cli-installation-guide.md](references/cli-installation-guide.md) | CLI 安装指南 | | [references/ram-policies.md](references/ram-policies.md) | RAM 权限策略 | | [references/related-apis.md](references/related-apis.md) | 相关 API 列表 | | [references/acceptance-criteria.md](references/acceptance-criteria.md) | 验收标准 |

qianwen skills install @aliyun/alibabacloud-dms-skill