131 lines
6.1 KiB
Markdown
131 lines
6.1 KiB
Markdown
---
|
||
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#核心能力模块]] — 本文档「核心能力模块」章节
|