English | Deutsch
Note
SQLiteViewer (im Windows-Auftritt als SQLite Viewer Pro) ist ein unprivilegierter, lokaler SQLite-Datenbank-Browser auf Basis von Standard-Python und Tkinter. Er garantiert Zero Network Egress, kommt ohne externe Pip-Laufzeitabhängigkeiten aus und arbeitet zu 100% offline. Maschinenlesbarer Projektkontext ist in llms.txt indexiert.
- Was ist SQLiteViewer?
- Zielgruppen & Auffindbarkeit
- Architektur & Datenfluss
- Export-Lebenszyklus
- Vergleichsmatrix gegenüber Alternativen
- Kernfunktionen
- Schnellstart & Installation
- Nutzung & Arbeitsablauf
- Tastenkürzel
- Exportformat & Web-Companion
- Microsoft Store & Paketierung
- Governance & System-Invarianten
- Drittanbieter-Lizenzen & Transparenz
- Ökosystem & Schwesterprojekte
- Sicherheit & Datenschutz
- Vertragstests & Verifikation
SQLiteViewer ist ein leichtgewichtiger, portabler Desktop-Browser für .db-, .sqlite- und .sqlite3-Datenbankdateien. Entwickelt für Programmierer, Analysten, Systemadministratoren und datenschutzbewusste Anwender, ermöglicht das Tool das sofortige Öffnen lokaler Datenbanken, die Prüfung von Tabellen und DDL-Schemas, das Filtern von Datensätzen, das Ausführen von Ad-hoc-SQL-Abfragen und den Export sichtbarer Daten als CSV oder strukturiertes JSON – völlig ohne Cloud-Anbindung oder schwere Laufzeitumgebungen.
SQLiteViewer wurde für vier zentrale Nutzergruppen und Anwendungsfälle konzipiert:
- Profil: Softwareingenieure, die Desktop-Anwendungen (PySide, Tkinter, PyQt), Web-Backends (FastAPI, Django) oder Kommandozeilenwerkzeuge entwickeln und Test-Fixtures oder Anwendungsdatenbanken schnell inspizieren und debuggen wollen.
- Problemstellung: Lange Startzeiten und Speicherhunger schwerer Java-IDEs (DBeaver) oder das Installieren großer C++-Pakete nur für eine kleine lokale SQLite-Testdatenbank.
- High-Intent-Suchphrasen:
local-first SQLite viewer Python Tkinterlightweight SQLite browser without bloatinspect sqlite3 db from python apppython tkinter sqlite gui table browser
- Profil: Forscher, Medizininformatiker und Auditoren, die vertrauliche Umfragedaten, klinische Datensätze oder Laborprotokolle auf abgeschotteten Systemen analysieren.
- Problemstellung: Moderne SaaS-Datenbank-Dashboards und Online-Viewer übertragen Metadaten oder Zeileninhalte über das Netzwerk und verletzen strikte Datenschutzauflagen.
- High-Intent-Suchphrasen:
offline SQLite database viewer zero network egressair-gapped SQLite viewer privacy firstopen source local SQLite explorerdatenschutzkonformer SQLite Viewer offline
- Profil: Incident-Responder und IT-Techniker, die Fehlerdiagnosen auf Kundenworkstations durchführen, auf denen keine Administratorrechte zur Softwareinstallation vorliegen.
- Problemstellung: Herkömmliche Installer lösen UAC-Prompts aus und hinterlassen Spuren im Betriebssystem.
- High-Intent-Suchphrasen:
portable SQLite viewer Windows unprivilegedinspect sqlite database RunAsInvokersupport triage sqlite viewer usb stickportable sqlite table browser windows
- Profil: Anwender unter Windows 10/11, die eine
.db- oder.sqlite-Datei per Doppelklick öffnen und tabellarisch durchsuchen möchten, ohne Konsolenbefehle lernen zu müssen. - Problemstellung: Windows bietet standardmäßig keinen integrierten Betrachter für SQLite-Dateien.
- High-Intent-Suchphrasen:
SQLite Viewer Pro Microsoft StoreWindows 11 open db file viewerdouble click sqlite file Windowssqlite db datei oeffnen windows 10
SQLiteViewer läuft als schlanker, unprivilegierter Einzelprozess (RunAsInvoker). Die grafische Benutzeroberfläche kommuniziert direkt mit der in Python integrierten sqlite3-Engine, wodurch sämtliche Datenbankzugriffe vollständig auf dem lokalen Host verbleiben.
flowchart TD
User(["Nutzer / Operator / Doppelklick"]) -->|"Lokaler Dateistart (sys.argv[1])"| GUI["SQLite Viewer Pro UI (Tkinter / ttk)"]
GUI --> TabData["Tabellen-Browser Tab (Sortierbares Grid & Paging)"]
GUI --> TabSchema["Schema-Inspektor Tab (DDL Syntax-Anzeige)"]
GUI --> TabSQL["SQL-Editor Tab (Interaktive Abfragen & F9)"]
GUI --> TabSettings["Einstellungen & i18n (DE / EN Sprachumschaltung)"]
TabData -->|"Lokale Lese-Abfrage"| DBEngine["Python sqlite3 Engine (Standardbibliothek)"]
TabSchema -->|"sqlite_master Abfrage"| DBEngine
TabSQL -->|"Nutzer SQL-Befehl"| DBEngine
DBEngine -->|"Direkter Dateizugriff"| DBFile[("Lokale SQLite-Datei (.db, .sqlite, .sqlite3)")]
TabData -->|"Export-Anfrage"| Exporter["Kontextsensitiver Exporter"]
TabSQL -->|"Export-Anfrage"| Exporter
Exporter -->|"Flache Tabellendaten"| CSVFile["CSV-Export (.csv)"]
Exporter -->|"Schema-Envelope v1"| JSONFile["JSON-Export (sqliteviewer-export-v1.json)"]
JSONFile -->|"Lokaler Import ohne Server"| Companion["Web-Companion (Offline Browser-PWA)"]
classDef core fill:#e1f5fe,stroke:#0288d1,stroke-width:2px;
classDef storage fill:#fff3e0,stroke:#f57c00,stroke-width:2px;
classDef export fill:#e8f8f5,stroke:#26a69a,stroke-width:2px;
class GUI,TabData,TabSchema,TabSQL,TabSettings,DBEngine core;
class DBFile storage;
class Exporter,CSVFile,JSONFile,Companion export;
Der Datenexport folgt einem strikten kontextsensitiven Protokoll. Der aktuell geöffnete Tab bestimmt, ob Zeilen der Tabellenansicht oder Abfrageergebnisse des SQL-Editors exportiert werden.
sequenceDiagram
autonumber
actor User as Nutzer / Operator
participant UI as SQLite Viewer Pro (UI)
participant Core as Engine (Python sqlite3)
participant Disk as Lokales Dateisystem
participant Exp as Export-Prozessor
participant Comp as Offline Web-Companion
User->>UI: Tabelle auswaehlen oder SQL ausfuehren (F9)
UI->>Core: SQL-Abfrage an lokaler Datei ausfuehren
Core->>Disk: Zeilen aus .db / .sqlite lesen
Disk-->>Core: Tabellenzeilen & Spaltenmetadaten zurueckgeben
Core-->>UI: Treeview befuellen & Zeilenzaehler aktualisieren
User->>UI: Export ausloesen (Ctrl+E oder Menue)
UI->>Exp: Aktiven Kontext uebergeben (Tabelle vs. SQL-Ergebnis)
alt CSV-Export-Modus
Exp->>Disk: Formatierte CSV-Daten lokal speichern
Disk-->>User: CSV-Datei einsatzbereit fuer Tabellenkalkulation
else JSON-Companion-Modus (sqliteviewer-export-v1)
Exp->>Exp: Spaltentypen, Metadaten & Base64-BLOBs serialisieren
Exp->>Disk: sqliteviewer-export-v1.json Envelope schreiben
Disk-->>Comp: Lokal im Browser oeffnen ohne Upload
Comp-->>User: Interaktive Offline-Ansicht & Filterung
end
SQLiteViewer wurde als fokussiertes, lokales Desktop-Werkzeug konzipiert. Die Gegenüberstellung mit bekannten Alternativen über 10 Kriterien verdeutlicht die Positionierung:
| Kriterium | SQLiteViewer (file-bricks) |
DB Browser for SQLite | DBeaver | SQLiteStudio | Cloud SQL SaaS |
|---|---|---|---|---|---|
Zero Network Egress (INV-LOCAL-01) |
JA (100% Offline) | JA | NEIN (Telemetrie/Updates) | JA | NEIN (Cloud-Zwang) |
Unprivilegierte Ausführung (INV-LOCAL-02) |
JA (RunAsInvoker) | JA | Oft Admin-Rechte nötig | JA | Browser-Sandbox |
Laufzeit-Abhängigkeiten (INV-LOCAL-03) |
Null (Python Standard) | C++ / Qt-Bibliotheken | Schwer (JVM ~300 MB) | C++ / Qt-Bibliotheken | Server-Infrastruktur |
Nicht-destruktiver Standard (INV-LOCAL-04) |
JA (Read-Only Default) | Schreib-/Editierfokus | Schreib-/Editierfokus | Schreib-/Editierfokus | Direkte Mutation |
Kontextsensitiver Export (INV-LOCAL-05) |
JA (CSV + JSON-Envelope) | Nur CSV | CSV, JSON, XML | CSV, JSON, HTML | Cloud-Datenexport |
Offline Web-Companion (INV-LOCAL-06) |
JA (web_companion/) |
NEIN | NEIN | NEIN | Reine Web-App |
Microsoft Store Paketierung (INV-LOCAL-07) |
JA (9P6H501XB8JT) |
Winget / MSI | Winget / MSI | Zip / Setup | Keine Desktop-App |
Permissive Lizenz (INV-LOCAL-08) |
MIT (Zero Copyleft) | GPLv3 (Copyleft) | Apache / Kommerziell | GPLv3 (Copyleft) | Proprietär |
Zweisprachige Parität EN/DE (INV-LOCAL-09) |
JA (100% Wechselseitig) | Teilweise UI | Teilweise UI | Teilweise UI | Nur Englisch |
Sicherheits-SLA (INV-LOCAL-10) |
48h Reaktions-SLA | Community Best Effort | Kommerzielles SLA | Community Best Effort | Anbieter-SLA |
- Schneller Tabellen-Browser: Sortierbare Spalten, dynamische Spaltenbreiten und responsives Paging für Datenbanken mit vielen Datensätzen.
- Interaktiver Schema-Inspektor: Prüfung von
CREATE TABLE-,CREATE INDEX- undCREATE TRIGGER-DDL-Anweisungen. - SQL-Abfrage-Editor: Mehrzeilige SQL-Konsole mit Ausführung per
F9, Zeilenzähler und Laufzeitmessung. - Echtzeit-Suche: Schnelles Filtern sichtbarer Zeilen über alle Spalten hinweg.
- Kontextsensitiver Export: Gezielter Export aktiver Tabellen- oder Abfragedaten als CSV oder strukturiertes JSON (
sqliteviewer-export-v1.json). - Dynamische Internationalisierung: Umschaltung zwischen Deutsch und Englisch im laufenden Betrieb über das Menü.
- Offline Web-Companion: Analyse exportierter JSON-Datensätze im Browser ohne Server und ohne Netzwerkzugriff.
- Store-zertifiziert: Vollständig vorbereitet für den Microsoft Store (
SQLite Viewer Pro) und als eigenständiges Python-Skript nutzbar.
Installation direkt über den offiziellen Microsoft Store mit automatischer Dateiverknüpfung:
- Produktname: SQLite Viewer Pro
- Store-ID:
9P6H501XB8JT - Store-Link: SQLite Viewer Pro im Microsoft Store
Voraussetzungen: Python 3.10 oder neuer (Tkinter ist in regulären Python-Installationen enthalten).
# Repository klonen
git clone https://github.com/file-bricks/SQLiteViewer.git
cd SQLiteViewer
# Direkt starten
python SQLiteViewer.pyEine bestimmte Datenbank direkt öffnen:
python SQLiteViewer.py pfad/zur/datenbank.sqlite- Datenbank öffnen:
Strg+Odrücken oder eine.db-,.sqlite- bzw..sqlite3-Datei per Drag & Drop ins Fenster ziehen. - Tabellen inspizieren: Gewünschte Tabelle in der linken Seitenleiste auswählen. Der Data-Tab zeigt die Datensätze im sortierbaren Raster.
- Suchen & Filtern: Mit
Strg+Fin die Suchleiste springen, Suchbegriff eingeben undEnterdrücken. - Schema prüfen: Im Schema-Tab die exakten Spaltendefinitionen, Primärschlüssel und Fremdschlüssel einsehen.
- SQL ausführen: In den SQL-Editor-Tab wechseln, Abfrage verfassen und mit
F9ausführen. - Daten exportieren: Mit
Strg+Eden Exportdialog öffnen und zwischen CSV odersqliteviewer-export-v1.jsonwählen.
| Tastenkürzel | Aktion | Bereich |
|---|---|---|
Strg+O |
SQLite-Datenbankdatei öffnen | Global |
Strg+F |
Suchleiste fokussieren | Data-Tab |
Strg+E |
Kontextsensitiven Export aufrufen | Data- / SQL-Tab |
F5 |
Aktuelle Tabellendaten neu laden | Data-Tab |
F9 |
Eingegebene SQL-Abfrage ausführen | SQL-Editor-Tab |
Esc |
Suche zurücksetzen oder Dialog schließen | Global |
SQLiteViewer nutzt für strukturierte Exporte die Spezifikation sqliteviewer-export-v1 (vollständig dokumentiert in EXPORTFORMAT.md). JSON-Exporte enthalten Herkunfts- und Filtermetadaten:
{
"schema_version": "sqliteviewer-export-v1",
"app_name": "SQLite Viewer Pro",
"app_version": "2.1.0",
"exported_at": "2026-09-14T17:50:00+02:00",
"source": {
"database_path": "C:/data/sample.sqlite",
"database_name": "sample.sqlite",
"view": "table",
"table": "records",
"query": null,
"row_limit": 1000,
"sort_column": "id",
"sort_descending": false
},
"columns": ["id", "timestamp", "payload"],
"row_count": 1,
"result_rows": [
{"id": 1, "timestamp": "2026-09-14 12:00:00", "payload": "Sample"}
]
}Die erzeugte Datei kann direkt im eigenständigen Browser-Tool web_companion/ abgelegt werden, um die Daten rein clientseitig ohne Server-Upload interaktiv zu sichten.
SQLiteViewer ist als Standard-Desktop-Bridge-Anwendung für Windows paketiert:
- Paket-Identität:
Geiger.SQLiteViewerPro - Herausgeber-CN:
CN=52596601-BAB4-4F3F-B182-E8F3F273B202 - Store-ID:
9P6H501XB8JT - Ausführungs-Alias:
sqliteviewer.exe - Manifest:
store_package.jsonundAppxManifest.xml - Build-Dateien:
build_exe.batundSQLiteViewer.spec
SQLiteViewer erfüllt alle zehn System-Invarianten des open-bricks- und file-bricks-Desktop-Verbunds:
| Invariante | Bezeichnung | Technische Umsetzung |
|---|---|---|
INV-LOCAL-01 |
Zero Network Egress | 100% offline. Keine HTTP-Requests, Telemetrie, Cookies oder Cloud-Verbindungen. |
INV-LOCAL-02 |
Unprivilegierte Ausführung | Läuft im regulären Benutzerkontext (RunAsInvoker). Keine Administrator-Höherstufung. |
INV-LOCAL-03 |
Keine externen Laufzeitabhängigkeiten | Basiert ausschließlich auf der Python-Standardbibliothek (sqlite3) und Tkinter. |
INV-LOCAL-04 |
Nicht-destruktive Dateiverknüpfung | Schreibgeschützter Ansichtsmodus als Standard. Datenbankdateien werden beim Öffnen nicht verändert. |
INV-LOCAL-05 |
Kontextsensitiver Dual-Export | Unterstützung von Standard-CSV sowie strukturiertem JSON-Schema mit Metadaten. |
INV-LOCAL-06 |
Offline Browser-Companion | Mitgeliefertes HTML/JS-Werkzeug (web_companion/) zur serverlosen Betrachtung. |
INV-LOCAL-07 |
Standard Store-Paketierung | Saubere AppX/MSIX-Kompatibilität mit registrierter Store-ID 9P6H501XB8JT. |
INV-LOCAL-08 |
100% Permissive Open-Source-Lizenz | Reines MIT. Keine Copyleft-Verpflichtungen auf Benutzerdaten oder Pipelines. |
INV-LOCAL-09 |
Zweisprachige Parität EN/DE | Vollständig wechselseitige Dokumentation und dynamische Lokalisierung im Interface. |
INV-LOCAL-10 |
Sicherheits- & Vulnerability-SLA | Dokumentierte 48-Stunden-Reaktionszeit bei gemeldeten Sicherheitsvorfällen. |
SQLiteViewer setzt konsequent auf offene, freie Standards. Die vollständige Lizenzdokumentation ist in THIRD_PARTY_LICENSES.md hinterlegt.
- Python Standardbibliothek:
PSF-2.0(Permissiv, kein Copyleft) - Tcl/Tk Fenster-Framework:
Tcl/Tk License(BSD-artig) - Entwicklung & Qualitätssicherung:
pytest(MIT),ruff(MIT / Apache-2.0) - Eigenständigkeit Ihrer Daten: Alle geladenen Datenbanken, Abfragen und exportierten Dateien bleiben zu 100% Ihr alleiniges Eigentum.
SQLiteViewer wird innerhalb der Organisation file-bricks geführt und ist Teil der freien Desktop-Suite open-bricks.
Verwandte Werkzeuge im Verbund:
- LaunchBoards: Lokaler, tastaturgesteuerter Schnellstarter für Workspaces.
- SoftwareCenter: Zentraler, unprivilegierter Windows-Software- und Paketmanager.
- ProSync: Deterministische Verzeichnissynchronisation und differenzielle Backups.
- ProFiler: Leistungsfähiger Dateisystem-Profiler und Speicherplatz-Analysator.
- CleanMarkdown: Deterministischer Linter und Formatierer für Markdown-Dokumente.
- Datenschutzerklärung: Alle Details in
PRIVACY_POLICY.md. SQLiteViewer erfasst keine Benutzerdaten und sendet keine Telemetrie. - Sicherheitsrichtlinie & SLA: Meldeverfahren für Schwachstellen sind in
SECURITY.mdbeschrieben. Wir garantieren eine Reaktionszeit von maximal 48 Stunden (INV-LOCAL-10).
Die Integrität der Funktionen, Lokalisierungen und Metadaten wird durch eine automatisierte Testsuite gesichert:
# Sämtliche Unit- und Vertragstests ausführen
pytest -ra -vEnthaltene Testmodule:
tests/test_sql_execution.py: Sichere Abfrageausführung, Fehlerbehandlung und Datentypen.tests/test_translations.py: Vollständige Schlüsselparität zwischen deutscher und englischer Übersetzung.tests/test_cli_db_argument.py: Pfadvalidierung und CLI-Parameterprüfung.tests/test_store_screenshots.py: Asset-Generierung für die Windows-Store-Präsenz.tests/test_metadata.py: Vertragstests für Banner-Schutz (HOOK-BANNER-ASSET-01), Mermaid-Syntax, zweisprachige Parität, Zielgruppen und Vergleichsmatrix.
Dieses Projekt ist unter der MIT-Lizenz lizenziert.
Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gilt der Haftungsausschluss der MIT-Lizenz. Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.
This project is an unpaid open-source donation. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.
