Files
Qiniu/technical/xinfra-preview/cloud-dm-overview.md
T

6.1 KiB
Raw Blame History

tags, create time
tags create time
cloud-dm
sql-audit
dbms
preview
infra
2026-07-04 12:00

CloudDM SQL 审核平台

概述

CloudDM(open-cdm)是一款免费且开源的团队化数据库管理平台,由 ClouGence 团队开发,采用 Apache License 2.0 许可。它的定位远超"SQL 审核工具"——覆盖数据查询、权限管控、SQL 审核、数据脱敏、数据库 CI/CD 和跨地区部署的全链路能力。

在 xinfra 中,所有操作 MySQL 的场景都必须经过 CloudDM 的审核机制——这是防止误操作直接打到生产库的第一道防线。同时,开发人员也可以直接在 CloudDM 中进行安全的数据查询与变更交付。

当前版本:3.1.1 | 官网:https://www.cdmgr.com/

核心概念

定位与设计哲学

sequenceDiagram
    participant dev as 开发人员
    participant cdm as CloudDM
    participant auditor as DBA/审核人
    participant mysql as MySQL实例
    dev->>cdm: 提交SQL上线工单 / 数据查询
    cdm->>cdm: SQL语法检查 + 54条规则校验
    cdm->>auditor: 通知审核
    auditor->>cdm: 审核通过 / 驳回
    cdm->>mysql: 按窗口执行(限流+分批)

核心原则:每一次数据库操作都要有记录、可审计、可回滚。

核心能力模块

模块 职责
数据查询 支持 MySQL、Oracle、PG、DB2、SQL Server、OceanBase、ClickHouse、Redis、MongoDB 等 20+ 数据源;提供统一 Web 控制台,含语法高亮、智能提示、执行计划预览
SQL 审核 内置 54 条审核规则,支持规则脚本自定义扩展;执行前预检,提示风险或阻断高危语句
权限控制 资源权限(实例/库/Schema/表粒度)+ 功能权限(RBAC 角色授权);支持申请权限、赋予权限及临时权限
数据管理 可视化管理数据库对象:库、表、索引、视图、函数、存储过程、用户、角色等
数据脱敏 对查询结果或流程中的敏感数据进行隐藏或转换
数据库 CI/CD Git Push / Web Hook / HttpCall 三种触发方式,支持 Gitee 作为变更仓库
协同流程 三种流程类型:SQL 审核、权限工单、变更流程;三种执行方式:手动执行、立即执行、定时执行
统一认证 OpenLDAP / OIDC / Windows AD / 钉钉 / 飞书 / 企业微信 SSO

部署模式对比

维度 Alone(单机) Console + Sidecar(集群)
组件 Web + Sidecar + MySQL 合一 Console 独立 + 多个 Sidecar
适用场景 小规模验证、个人使用 团队协作、跨地区多数据源
特点 开箱即用,一条 Docker 命令启动 最大特点是跨地区数据库统一授权访问
Web 端口 8222 Console: 8222, Sidecar: 8080

[!tip] 快速体验

# 一键启动单机版
docker run -d --name cgdm-alone -p 8222:8222 bladepipe/cgdm-alone:3.1.1
# 中国区加速镜像
docker run -d --name cgdm-alone -p 8222:8222 \
  cloudcanal-registry.cn-shanghai.cr.aliyuncs.com/clougence/cgdm-alone:3.1.1

典型操作流程

1. 开发在 CloudDM 添加数据源(MySQL / PG / Redis ...)
2. 通过 Web 查询编辑器进行数据查询或编写变更 SQL
3. 若涉及变更 → 创建 SQL 上线工单
4. CloudDM 自动执行 54 条规则预检
5. DBA 审核通过后进入排队队列
6. 按指定时间窗或立即由系统执行
7. 执行结果回填工单,全程留痕

元数据存储

CloudDM 的元数据存储在内置(Alone 模式)或外部 MySQL 中。无需深入具体表结构——Console 提供了完整的可视化对象管理界面。需要了解的重点是:

  • 元信息数据库使用 MariaDB/MySQL(Alone 模式自带嵌入式 MySQL)
  • 集群模式的元数据持久化为 cdmgr 库,默认账号 root
  • 忘记管理员密码时,可删除 drivers/cgdm-runtime-mysql 目录后重启以重新走初始化向导(不重建数据库即可重置)

常见陷阱与最佳实践

1. 审核规则要适配实际业务

过于严格的规则可能在特定场景下误杀正常需求。建议:初期允许白名单豁免,积累一段时间后再收紧规则。

2. 区分 DML 和 DDL 审核策略

  • DML(INSERT/UPDATE/DELETE):重点防范误删、锁表
  • DDL(ALTER TABLE/CREATE INDEX):重点防范大表长时间锁表

两者需要不同的审核标准和执行窗口。

3. Alone vs Cluster 选型

  • 单人或小团队直接用 Alone 模式,一条 docker run 即可上手
  • 当需要在不同地域连接多台数据库并做统一权限管控时,迁移到 Console + Sidecar 集群模式

4. 生产部署安全事项

  • 务必替换默认的 JWT 密钥和管理员密码
  • K8s 部署中将敏感配置改为 Secret 管理
  • PVC 容量根据实际数据规模调整

关键术语速查

术语 含义
Alone 单机部署模式,Web 控制台、Sidecar 和元信息数据库合并运行
Console 中央 Web 控制台,负责数据库访问、审批流程和全局配置
Sidecar 配合 Console 使用的数据库访问代理,常用于跨地区部署
SQL 审核 SQL 执行或变更交付前的规则化风险检查
数据脱敏 查询结果或流程中对敏感数据的隐藏/转换保护
资源权限 按实例、库、Schema、表粒度授予的权限
功能权限 基于 RBAC 的功能访问权限
权限工单 用于申请、审批和授予访问权限的流程
变更流程 用于审核和交付受控数据库变更的流程
数据库 CI/CD 通过 Git Push / Web Hook / HttpCall 触发的数据库变更交付

延伸阅读