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 version License: MIT Python 3.10+

Извлекайте минимальные, сохраняющие ссылочную целостность подмножества базы данных для локальной разработки и отладки.

Проблема

Копирование целой продукционной базы данных на вашу машину нецелесообразно. Но для воспроизведения ошибки часто требуются именно те данные, которые её вызвали. 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
  • Безопасно по умолчанию — автоматически обнаруживает и анонимизирует конфиденциальные поля (email, телефоны, SSN и т.д.)
  • Профили соответствия — встроенные профили GDPR, HIPAA Safe Harbor и PCI-DSS с двухфазным сканированием PII
  • Графический интерфейс сопоставления столбцов — локальный веб-интерфейс для визуального сопоставления столбцов, применения профилей соответствия и экспорта конфигурации
  • Несколько форматов вывода — SQL, JSON и CSV
  • Поточная обработка — эффективное извлечение больших наборов данных (100 000+ строк)
  • Виртуальные внешние ключи — поддержка Django GenericForeignKeys и неявных связей через конфигурацию
  • Конфигурационные файлы — конфигурация на основе 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"

Графический интерфейс сопоставления столбцов

Визуально сопоставьте столбцы, примените профили соответствия и сгенерируйте готовую к использованию конфигурацию — всё в локальном браузере.

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 Safe Harbor — автоматически маскирует все 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 GenericForeignKeys, неявные связи):

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

virtual_foreign_keys:
  - source_table: notifications
    source_columns: [object_id]
    target_table: orders
    description: "Generic FK to orders via ContentType"

  - source_table: audit_log
    source_columns: [user_id]
    target_table: users
    description: "Implicit FK without DB constraint"
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. Обход — начиная с записи-затравки, следует по внешним ключам с помощью BFS
  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НетНетНет
Графический интерфейс сопоставления столбцовВстроенный (локальный)НетНетНет
Сканирование PII-значенийДвухфазное (до/после маскирования)НетНетНет
ПодмножествоОбход FKОбход FKОграниченоОбход FK
Форматы выводаSQL, JSON, CSVSQL, XML, CSVSQLТолько SQL
Обработка цикловАвтоматическаяРучная настройкаN/AВручную
Поточная обработкаВстроеннаяНастраиваемаяВстроеннаяНедоступно
ПоддержкаАктивнаяАктивнаяАктивнаяНе поддерживается