# 数据审核平台 一个基于 FastAPI + Vue3 的数据库变更管理和 SQL 审核平台,支持 MySQL、Redis 等数据库的 SQL 审核、审批流程管理。 ## 功能特性 ### 核心功能 - **数据源管理**:支持 MySQL、Redis、PostgreSQL、MongoDB 等多种数据库 - **SQL 审核**:自动 SQL 语法检查、风险评估、规则校验 - **工单管理**:DDL/DML 工单提交、审核、执行、回滚全流程 - **审批流程**:多级审批、角色权限控制 - **SQL 查询**:在线 SQL 编辑器,支持语法高亮和自动补全 - **数据字典**:表结构查看、字段信息、索引信息 - **Redis 管理**:Redis 信息监控、命令执行 ### 安全特性 - 基于角色的访问控制 (RBAC) - SQL 注入防护 - 敏感操作审计日志 - 数据脱敏 ## 技术栈 ### 后端 - **框架**: FastAPI (Python 3.11+) - **数据库**: SQLAlchemy + MySQL - **缓存**: Redis - **认证**: JWT + OAuth2 ### 前端 - **框架**: Vue 3 + TypeScript - **UI 组件**: Element Plus - **状态管理**: Pinia - **路由**: Vue Router - **代码编辑器**: CodeMirror 6 - **图表**: ECharts ## 快速开始 ### 环境要求 - Python 3.11+ - Node.js 18+ - MySQL 5.7+ - Redis 6.0+ ### 后端启动 ```bash cd backend # 创建虚拟环境 python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安装依赖 pip install -r requirements.txt # 启动服务 python main.py ``` 后端服务将在 http://localhost:8000 启动,API 文档地址: http://localhost:8000/docs ### 前端启动 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端服务将在 http://localhost:3000 启动 ### 默认账号 | 账号 | 密码 | 角色 | |------|------|------| | admin | 123456 | 管理员 | | dba | 123456 | DBA | | dev1 | 123456 | 开发者 | | dev2 | 123456 | 开发者 | | auditor | 123456 | 审计员 | ## 项目结构 ``` data-audit-platform/ ├── backend/ # 后端代码 │ ├── main.py # 主入口 │ └── requirements.txt # 依赖 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── components/ # 组件 │ │ ├── layouts/ # 布局 │ │ ├── router/ # 路由 │ │ ├── stores/ # 状态管理 │ │ ├── styles/ # 样式 │ │ ├── types/ # 类型定义 │ │ ├── views/ # 页面 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口 │ ├── index.html │ ├── package.json │ ├── tsconfig.json │ └── vite.config.ts └── README.md ``` ## 功能模块 ### 1. 仪表盘 - 数据统计卡片 - 风险分布图表 - 数据库类型分布 - 最近工单列表 ### 2. 数据源管理 - 添加/编辑/删除数据源 - 支持多种数据库类型 - 连接测试 - 环境隔离(开发/测试/预发布/生产) ### 3. SQL 工单 - 创建工单(DDL/DML) - SQL 自动审核 - 多级审批流程 - 工单执行和回滚 ### 4. SQL 查询 - 在线 SQL 编辑器 - 语法高亮 - 只读查询限制 - 查询结果展示 ### 5. 数据字典 - 表结构查看 - 字段信息 - 索引信息 - DDL 生成 ### 6. Redis 管理 - Redis 信息监控 - 内存使用统计 - 命中率监控 - 命令执行 ### 7. 审核规则 - 内置审核规则 - 规则启用/禁用 - 风险等级设置 ### 8. 用户管理 - 用户列表 - 角色分配 - 权限控制 ### 9. 系统设置 - 基本设置 - 通知设置 - 安全设置 ## API 接口 ### 认证 - `POST /api/auth/login` - 登录 - `GET /api/auth/me` - 获取当前用户 - `POST /api/auth/logout` - 登出 ### 用户 - `GET /api/users` - 用户列表 - `GET /api/users/{id}` - 用户详情 ### 数据源 - `GET /api/instances` - 数据源列表 - `POST /api/instances` - 创建数据源 - `GET /api/instances/{id}` - 数据源详情 - `PUT /api/instances/{id}` - 更新数据源 - `DELETE /api/instances/{id}` - 删除数据源 - `POST /api/instances/{id}/test` - 测试连接 ### SQL 工单 - `GET /api/workflows` - 工单列表 - `POST /api/workflows` - 创建工单 - `GET /api/workflows/{id}` - 工单详情 - `POST /api/workflows/{id}/review` - 审核工单 - `POST /api/workflows/{id}/execute` - 执行工单 - `POST /api/workflows/{id}/rollback` - 回滚工单 - `GET /api/workflows/statistics` - 工单统计 ### SQL 查询 - `POST /api/query` - 执行查询 ### 数据字典 - `GET /api/dictionary/instances/{id}/databases` - 数据库列表 - `GET /api/dictionary/instances/{id}/tables` - 表列表 - `GET /api/dictionary/instances/{id}/tables/{name}` - 表详情 ### Redis - `GET /api/redis/{id}/info` - Redis 信息 - `POST /api/redis/{id}/command` - 执行命令 ### Dashboard - `GET /api/dashboard/stats` - 统计数据 ## 部署 ### Docker 部署 ```bash # 构建镜像 docker build -t data-audit-platform . # 运行容器 docker run -d -p 8000:8000 -p 3000:3000 data-audit-platform ``` ### 生产环境部署 1. 配置环境变量 2. 使用 Gunicorn 启动后端 3. 使用 Nginx 反向代理前端 4. 配置 SSL 证书 ## 参考项目 - [Bytebase](https://github.com/bytebase/bytebase) - Database DevOps and CI/CD for Developer, DBA and Platform Engineering teams - [Yearning](https://github.com/cookieY/Yearning) - 开源 MySQL SQL 审核平台 - [Archery](https://github.com/hhyo/Archery) - SQL 审核查询平台 ## 许可证 MIT License