Skip to content

About

基于多模态数据库敏感数据识别与安全治理系统:覆盖六类数据形态扫描,支持 OCR 回灌、L1-L4 分级脱敏、角色权限管控与审计追踪

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

366 Commits

Folders and files

Repository files navigation

项目徽标

基于多模态智能分析的数据库敏感数据识别与安全治理系统

项目横幅

Python FastAPI Vue Vite OCR

Stars Forks Issues Last Commit Repo Size Visitors

快速导航 技术炫技区 目录地图 一键启动


✨ 项目定位

这是一个把“敏感数据发现 -> 敏感数据识别 -> 分级脱敏 -> 权限控制 -> 审计追踪 -> 合规审查”串成完整闭环的系统。

核心目标:

  • 帮你从数据库和图像数据中自动发现敏感信息
  • 帮你按角色控制“谁能看明文、谁只能看脱敏、谁完全不可见”
  • 帮你留下可追溯审计日志,满足演示、竞赛、教学和实际治理场景

🚀 快速导航


🏁 文档入口

网络与数据安全挑战赛 AI Agent创新大赛产业赋能赛道

文档 重点
网络与数据安全挑战赛
项目名:基于多模态智能分析的数据库敏感数据识别与安全治理系统
安全防护闭环、权限控制、审计合规
AI Agent 创新大赛
项目名:面向企业数据流转的数据安全与合规治理智能体
多 Agent 协同、工具执行、产业落地价值

🧠 核心能力

能力 说明
多模态识别 同时覆盖结构化、半结构化、编码文本、非结构化文本、图片 Blob、数据库对象
OCR 回灌识别 支持 RapidOCR / PaddleOCR / Tesseract,多引擎补识别
分级治理 L1-L4 等级控制明文、脱敏、隐藏策略
角色权限矩阵 admin / auditor / kefu 差异化可见
审计闭环 登录、查询、导出、发起扫描均有审计记录
合规审查 Agent 文本/文档风险审查、规则版本历史、报告导出

📊 技术炫技区

炫技 1:多模态扫描主链

flowchart LR
    A[(MySQL / PostgreSQL)] --> B[数据库结构发现]
    B --> C{数据形态}
    C -->|structured| D[字段语义 + 模式识别]
    C -->|semi_structured| E[JSON / XML 递归解析]
    C -->|encoded| F[URL / Hex / Base64 解码识别]
    C -->|unstructured_text| G[上下文增强识别]
    C -->|binary_blob| H[OCR 桥接识别]
    C -->|db_object| I[视图/过程定义扫描]
    H --> J[OCR 文本回灌]
    J --> G
    D --> K[置信度评分与去重]
    E --> K
    F --> K
    G --> K
    I --> K
    K --> L[[output/upload.csv]]
Loading

炫技 2:权限与脱敏闭环

flowchart TB
    U[用户会话] --> R{角色判断}
    R -->|admin| A[L1-L4 明文]
    R -->|auditor| B[L1-L3 明文 / L4 脱敏]
    R -->|kefu| C[L1-L2 明文 / L3 脱敏 / L4 隐藏]
    A --> V[命中浏览器]
    B --> V
    C --> V
    V --> Log[(审计日志)]
Loading

炫技 3:能力脑图(GitHub 可直接渲染)

mindmap
  root((数据库敏感数据治理系统))
    多模态识别
      表字段
      JSON/XML
      编码文本
      非结构化文本
      图像 OCR
      视图与存储过程
    安全治理
      L1-L4 分级
      角色权限矩阵
      动态脱敏
      导出控制
    审计合规
      行为留痕
      操作追踪
      合规审查 Agent
      规则版本回滚
    工程化
      前后端分层
      脚本化启动
      Docker 数据环境
      离线运行时
Loading

🏗 系统架构

graph TB
    subgraph 展示层
      Frontend[产品端 Vue3]
      Website[官网 Vite]
      Docs[文档站 VitePress]
    end

    subgraph 接口层
      API[FastAPI]
      Session[Session Cookie]
      RuntimeDB[SQLite]
      Masking[脱敏引擎]
      ACL[权限矩阵]
    end

    subgraph 扫描层
      CLI[cli/main.py]
      Engine[SensitiveScanner]
      Detector[detector.py]
      OCRBridge[ocr_bridge.py]
      Exporter[exporter.py]
    end

    subgraph 数据层
      MySQL[(MySQL)]
      PostgreSQL[(PostgreSQL)]
      Blob[(Image Blob)]
      DBObjects[(Views / Routines)]
    end

    Frontend --> API
    Website --> API
    API --> Session
    API --> RuntimeDB
    API --> Masking
    API --> ACL
    API --> CLI
    CLI --> Engine
    Engine --> Detector
    Engine --> OCRBridge
    Engine --> Exporter
    Engine --> MySQL
    Engine --> PostgreSQL
    Engine --> Blob
    Engine --> DBObjects
Loading

⚡ 一键启动

方案 A:启动完整 Web 端(推荐)

scripts\start-web.bat

启动后访问:

方案 B:只跑扫描(本地数据库)

scripts\start-cli-local.bat

方案 C:只跑扫描(Docker 比赛库)

scripts\start-cli-docker.bat

说明:Docker 比赛库是源码环境的可选备用方案,当前桌面 EXE / 离线软件交付包不纳入 Docker 镜像。


🛠 手动启动

1) 安装后端依赖

cd apps/backend
conda run -n NDS python -m pip install -r requirements.txt

2) 安装前端依赖

cd apps/frontend && npm install
cd ../web && npm install
cd ../docs && npm install

3) 分别启动

# backend
cd apps/backend
conda run --no-capture-output -n NDS python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

# frontend
cd apps/frontend
npm run dev -- --host 127.0.0.1

# web
cd apps/web
npm run dev -- --host 127.0.0.1

# docs
cd apps/docs
npm run dev -- --host 127.0.0.1

🐳 Docker 数据库环境

这是源码环境的可选备用方案;当前桌面 EXE / 离线软件交付包不依赖 Docker,也不会复制 docs/docker 镜像。

cd docs/docker
docker compose up -d

端口映射:

  • MySQL:3307 -> 3306
  • PostgreSQL:5433 -> 5432

停止:

cd docs/docker
docker compose down

🗺 目录地图(原版风格保留)

.
├─ cli/                                      # CLI 扫描主链(独立 Python 项目)
│  ├─ main.py                                # 扫描入口
│  ├─ scanner/                               # 识别核心
│  │  ├─ engine.py                           # 任务调度、扫描执行
│  │  ├─ detector.py                         # 多类型敏感识别
│  │  ├─ ocr_bridge.py                       # OCR 桥接
│  │  ├─ exporter.py                         # upload.csv 导出
│  │  ├─ competition_ocr_router.py           # 比赛 OCR 路由
│  │  ├─ competition_targeted_ocr.py         # 目标化 OCR 策略
│  │  └─ calibrator.py                       # 校准能力
│  ├─ db/
│  │  ├─ config_loader.py                    # 配置加载
│  │  └─ connector.py                        # 数据库连接
│  ├─ config/
│  │  ├─ database.yaml                       # 主配置
│  │  ├─ database.web.yaml                   # Web 页面/桌面 EXE 扫描配置
│  │  ├─ database.local.yaml                 # CLI 本地命令行配置
│  │  ├─ database.docker.yaml                # 主机运行扫描器、连接 Docker 数据库
│  │  └─ database.container.yaml             # 扫描器自身在容器内运行时使用
│  ├─ runtime/                               # 离线运行时(Python/Tesseract)
│  ├─ output/                                # 扫描结果输出
│  └─ assets/                                # 词典、样例等资源
├─ apps/
│  ├─ backend/                               # FastAPI 后端
│  │  ├─ app/
│  │  │  ├─ main.py
│  │  │  ├─ config.py
│  │  │  ├─ database.py
│  │  │  ├─ routes/                          # 接口路由
│  │  │  │  ├─ auth.py
│  │  │  │  ├─ dashboard.py
│  │  │  │  ├─ hits.py
│  │  │  │  ├─ scan.py
│  │  │  │  ├─ audit.py
│  │  │  │  ├─ profile.py
│  │  │  │  └─ agent.py
│  │  │  ├─ services/                        # 业务服务
│  │  │  │  ├─ csv_loader.py
│  │  │  │  ├─ masking_engine.py
│  │  │  │  ├─ permissions.py
│  │  │  │  └─ audit_targets.py
│  │  │  ├─ rules/                           # 合规规则
│  │  ├─ requirements.txt
│  │  └─ .env
│  ├─ frontend/                              # 产品端(Vue3)
│  │  └─ src/
│  │     ├─ views/
│  │     ├─ components/
│  │     ├─ stores/
│  │     ├─ router/
│  │     ├─ api/
│  │     └─ styles/
│  ├─ web/                                   # 官网(Vite 静态站)
│  └─ docs/                                  # 文档站(VitePress)
├─ agent/                                    # 合规审查 Agent 运行时(由 apps/backend/app/routes/agent.py 挂载)
├─ scripts/                                  # 一键脚本
│  ├─ start-web.bat
│  ├─ start-cli-local.bat
│  ├─ start-cli-docker.bat
│  ├─ start-source-offline.bat
│  ├─ build-cli-offline-runtime.bat
│  ├─ build-desktop-exe.bat
│  ├─ build-installer-exe.bat
│  ├─ build-source-offline-bundle.bat
│  ├─ build-dist.bat
│  ├─ 自动化检查.ps1
│  └─ 脚本说明.md
├─ packaging/
│  └─ desktop/
│     ├─ assets/                             # 桌面软件图标、Windows 版本信息
│     ├─ build/                              # PyInstaller 临时构建目录
│     └─ release/                            # 桌面 EXE、安装器、离线交付包
├─ docs/                                    # 项目资料与本地运行资源
│  ├─ README.md                             # 资料总索引
│  ├─ markdown/                             # 分类后的 Markdown 文档
│  ├─ references/                           # 赛事通知、赛题与研究资料
│  ├─ docker/                               # MySQL/PostgreSQL 竞赛环境
│  ├─ sql/                                  # 数据库样本
│  ├─ python/                               # Python 依赖清单
│  └─ coding/                               # 本地协作规范
└─ README.md

👤 默认演示账号

账号 密码 角色 可见策略
admin 123456 管理员 L1-L4 明文
auditor 123456 审计员 L1-L3 明文,L4 脱敏
kefu 123456 客服 L1-L2 明文,L3 脱敏,L4 隐藏

🔌 API 导航

分类 代表接口 作用
健康检查 GET /api/health 后端状态检查
认证 POST /api/auth/login、GET /api/auth/me 登录与会话
仪表盘 GET /api/dashboard/summary 聚合统计
命中查询 GET /api/hits、GET /api/hits/export 检索与导出
扫描控制 POST /api/scan/start、GET /api/scan/status 启动扫描和进度追踪
审计中心 GET /api/audit/logs 操作日志追踪
脱敏演示 POST /api/audit/masking/demo 脱敏策略验证
合规审查 Agent POST /api/agent/reviews、POST /api/agent/reviews/stream 风险审查与流式输出

📦 扫描输出字段

upload.csv 核心字段:

  • db_type:数据库类型
  • db_name:数据库名
  • table_name:表名/对象名
  • field_name:字段名
  • record_id:记录 ID
  • data_form:数据形态
  • sensitive_type:敏感类型
  • sensitive_level:敏感等级(L1-L4)
  • extracted_value:提取值(页面按角色自动脱敏)

❗ 常见问题

为什么本地扫描脚本可能启动失败?

脚本优先使用 cli/runtime/python/python.exe,找不到才回退到 conda 环境。常见问题:

  • 没安装 conda 或 conda.exe 不在 PATH
  • NDS 环境不存在
  • cli/config/database.yaml 的数据库地址和账号密码不正确
为什么后端默认只监听 127.0.0.1?

这是安全策略,避免后端端口直接暴露公网。生产部署建议使用 Nginx/Caddy 反向代理统一对外暴露域名。

🧩 开发模式说明

扫描模式主要在 cli/config/database.yaml 的 scan 配置区:

  • competition:偏向比赛提交策略(更强调高精度)
  • generic:偏向通用业务落地(更强调普适性)

🧱 技术栈

  • 扫描引擎:Python
  • OCR:RapidOCR / PaddleOCR / Tesseract / OpenCV / ONNX Runtime
  • 后端:FastAPI / Uvicorn / Pydantic / SQLite
  • 前端:Vue 3 / Vite / TypeScript / Pinia / Vue Router / Ant Design Vue / ECharts
  • 文档:VitePress / Mermaid
  • 数据环境:MySQL / PostgreSQL / Docker Compose

📄 License

About

基于多模态数据库敏感数据识别与安全治理系统:覆盖六类数据形态扫描,支持 OCR 回灌、L1-L4 分级脱敏、角色权限管控与审计追踪

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages