vault backup: 2026-07-04 20:23:48

This commit is contained in:
2026-07-04 20:23:48 +08:00
parent a5e418c701
commit ba57cfb9a2
7 changed files with 1644 additions and 0 deletions
@@ -0,0 +1,130 @@
---
tags: [cloud-dm, sql-audit, dbms, preview, infra]
create time: 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/>
## 核心概念
### 定位与设计哲学
```mermaid
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] 快速体验
> ```bash
> # 一键启动单机版
> 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 触发的数据库变更交付 |
## 延伸阅读
- [[technical/xinfra-preview/k8s-rke2-fundamentals]] — K8s 内的 MySQL 容器化部署基础
- <https://github.com/ClouGence/open-cdm> — open-cdm 主仓库(GitHub)
- <https://gitee.com/clougence/open-cdm> — 中国镜像仓库
- [[technical/xinfra-preview/cloud-dm-overview#核心能力模块]] — 本文档「核心能力模块」章节