Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dbslice — 从生产数据库中提取一个子集,以便在本地重现错误。将 dbslice 指向一条记录,它会跟踪外键并为你提供一个完整、可导入的子集。 | Kitploit
工具/GitHubGitHub/nabroleonx/dbslice
通用工具配置审计数据恢复DevSecOps隐私保护数据库安全
GitHubnabroleonx/dbslice

dbslice

从生产数据库中提取一个子集,以便在本地重现错误。将 dbslice 指向一条记录,它会跟踪外键并为你提供一个完整、可导入的子集。

查看仓库
14161个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

dbslice 标志

dbslice

PyPI 版本 许可证: MIT Python 3.10+

提取最小化、引用完整的数据子集,用于本地开发和调试。

问题

将整个生产数据库复制到本地机器是不可行的。但复现一个 bug 通常需要导致该问题的确切数据。dbslice 通过仅提取所需的记录,并遵循外键关系确保引用完整性,解决了这一问题。

dbslice — 从种子到子集

快速开始

root@kitploit:~
# 全局安装
uv tool install dbslice   # 或: pip install dbslice

# 提取一个订单及其所有相关记录
dbslice extract postgres://localhost/myapp --seed "orders.id=12345" > subset.sql

# 导入本地数据库
psql -d localdb < subset.sql

功能

  • 零配置启动 — 自动内省数据库模式,无需数据模型文件
  • 单条命令 — 一条 CLI 命令即可提取完整数据子集
  • 默认安全 — 自动检测并匿名化敏感字段(电子邮件、电话、社会安全号码等)
  • 合规配置文件 — 内置 GDPR、HIPAA 安全港和 PCI-DSS 配置文件,支持两阶段 PII 扫描
  • 列映射 UI — 本地浏览器界面,可直观映射列、应用合规配置文件并导出配置
  • 多种输出格式 — SQL、JSON 和 CSV
  • 流式处理 — 适用于大数据集(10 万行以上)的内存高效提取
  • 虚拟外键 — 支持 Django 的通用外键和通过配置定义的隐式关系
  • 配置文件 — 基于 YAML 的配置,可实现可重复提取
  • 验证 — 检查提取数据的引用完整性

数据库支持

数据库状态
PostgreSQL完全支持
MySQL计划中(尚未实现)
SQLite计划中(尚未实现)

安装

root@kitploit:~
# 使用 uv 安装(推荐)
uv add dbslice

# 不安装直接试用
uvx dbslice --help

# 或使用 pip
pip install dbslice

使用方法

基本提取

root@kitploit:~
# 按主键提取
dbslice extract postgres://user:pass@host:5432/db --seed "orders.id=12345"

# 使用 WHERE 子句提取
dbslice extract postgres://localhost/db --seed "orders:status='failed' AND created_at > '2024-01-01'"

# 多个种子
dbslice extract postgres://localhost/db \
  --seed "orders.id=100" \
  --seed "orders.id=101"

控制遍历

root@kitploit:~
# 限制深度(默认:3)
dbslice extract postgres://... --seed "orders.id=1" --depth 2

# 方向:up(仅父表)、down(仅子表)、both(默认)
dbslice extract postgres://... --seed "orders.id=1" --direction up

匿名化

root@kitploit:~
# 自动匿名化检测到的敏感字段
dbslice extract postgres://... --seed "users.id=1" --anonymize

# 编校其他字段
dbslice extract postgres://... --seed "users.id=1" --anonymize --redact "audit_logs.ip_address"

列映射 UI

在本地浏览器界面中可视化映射列、应用合规配置文件并生成即用型配置。

root@kitploit:~
dbslice map postgres://localhost/myapp

# 自定义端口
dbslice map postgres://localhost/myapp --port 8888

# 也可用 uvx(无需安装)
uvx dbslice map postgres://localhost/myapp
将列映射到匿名化规则生成并导出配置
列映射生成的配置

运行在 127.0.0.1:9473,配有一次性的会话令牌——数据不会离开你的机器。一键应用 GDPR、HIPAA 或 PCI-DSS 配置文件,审查哪些内容会被屏蔽,然后下载 YAML。

合规配置文件

root@kitploit:~
# HIPAA 安全港 — 自动屏蔽全部 18 类标识符
dbslice extract postgres://... --seed "patients.id=1" --compliance hipaa --compliance-strict

# 多个配置文件 + 审计清单
dbslice extract postgres://... --seed "users.id=1" --compliance gdpr --compliance pci-dss -f subset.sql
# 生成 subset.sql + subset.manifest.json

输出格式

root@kitploit:~
# SQL(默认)
dbslice extract postgres://... --seed "orders.id=1" --output sql

# JSON 固件
dbslice extract postgres://... --seed "orders.id=1" --output json --out-file fixtures/

# CSV
dbslice extract postgres://... --seed "orders.id=1" --output csv --out-file data/

虚拟外键

对于数据库模式中未定义的关系(Django 通用外键、隐式关系):

root@kitploit:~
# dbslice.yaml
database:
  url: postgres://localhost:5432/myapp

virtual_foreign_keys:
  - source_table: notifications
    source_columns: [object_id]
    target_table: orders
    description: "通过 ContentType 到 orders 的通用外键"

  - source_table: audit_log
    source_columns: [user_id]
    target_table: users
    description: "无数据库约束的隐式外键"
root@kitploit:~
dbslice extract --config dbslice.yaml --seed "users.id=1"

检查模式

root@kitploit:~
dbslice inspect postgres://localhost/myapp

配置文件

root@kitploit:~
# 从数据库生成配置
dbslice init postgres://localhost/myapp --out-file dbslice.yaml

# 使用配置
dbslice extract --config dbslice.yaml --seed "orders.id=12345"

工作原理

  1. 内省 — 读取数据库模式,发现表和外键关系
  2. 遍历 — 从种子记录开始,通过外键关系进行广度优先遍历
  3. 提取 — 获取所有已识别的记录
  4. 排序 — 对表进行拓扑排序,确保 INSERT 顺序正确
  5. 输出 — 生成正确转义的 SQL/JSON/CSV

对比

dbslice 是轻量级、零配置的 Python 方案:一分钟内完成安装和提取。

开发

root@kitploit:~
git clone https://github.com/nabroleonx/dbslice.git
cd dbslice
uv sync --dev
uv run pytest

许可证

MIT

下载工具
功能dbsliceJailerGreenmaskslice-db
语言PythonJavaGoRuby
配置零配置需要模型文件需要配置手动 YAML
设置时间秒级小时级中等中等
匿名化内置(Faker)基于插件高级转换器不支持
合规配置文件GDPR, HIPAA, PCI-DSS无无无
列映射 UI内置(本地)无无无
PII 值扫描两阶段(掩码前/后)无无无
子集提取外键遍历外键遍历有限外键遍历
输出格式SQL, JSON, CSVSQL, XML, CSVSQL仅 SQL
循环处理自动手动配置不适用手动
流式处理内置可配置内置不支持
维护状态活跃活跃活跃停止维护