Files
certigo/docs/DB_COMMANDS.md

4.2 KiB

SQLite Datenbank-Befehle

Verbindung zur Datenbank

Die Datenbank liegt in: ./backend/spaces.db

Verbindung herstellen:

cd /home/nick/Development/certigo-addon/backend
sqlite3 spaces.db

Nützliche SQLite-Befehle

Tabellen auflisten:

.tables

Schema einer Tabelle anzeigen:

.schema audit_logs

Alle Audit-Logs anzeigen:

SELECT * FROM audit_logs ORDER BY timestamp DESC LIMIT 10;

Anzahl der Audit-Logs:

SELECT COUNT(*) FROM audit_logs;

Letzte 5 Audit-Logs mit Details:

SELECT 
    timestamp,
    username,
    action,
    resource_type,
    details
FROM audit_logs 
ORDER BY timestamp DESC 
LIMIT 5;

Einen spezifischen Audit-Log anzeigen (nach ID):

SELECT * FROM audit_logs WHERE id = 'LOG_ID_HIER';

Einen spezifischen Audit-Log anzeigen (nach Timestamp):

SELECT * FROM audit_logs WHERE timestamp = '2025-11-20 16:20:00';

Audit-Logs nach Aktion filtern:

SELECT * FROM audit_logs WHERE action = 'CREATE' ORDER BY timestamp DESC;

Audit-Logs nach Ressourcentyp filtern:

SELECT * FROM audit_logs WHERE resource_type = 'user' ORDER BY timestamp DESC;

Audit-Logs nach Benutzer filtern:

SELECT * FROM audit_logs WHERE username = 'admin' ORDER BY timestamp DESC;

Vollständige Details eines Logs (formatiert):

SELECT 
    id,
    timestamp,
    user_id,
    username,
    action,
    resource_type,
    resource_id,
    details,
    ip_address,
    user_agent
FROM audit_logs 
WHERE id = 'LOG_ID_HIER';

Neueste Logs mit formatierten Details:

SELECT 
    datetime(timestamp) as zeit,
    username,
    action,
    resource_type,
    json_extract(details, '$.message') as nachricht,
    ip_address
FROM audit_logs 
ORDER BY datetime(timestamp) DESC 
LIMIT 10;

Logs der letzten Stunde:

SELECT * FROM audit_logs 
WHERE datetime(timestamp) >= datetime('now', '-1 hour')
ORDER BY timestamp DESC;

Logs von heute:

SELECT * FROM audit_logs 
WHERE date(timestamp) = date('now')
ORDER BY timestamp DESC;

Alle Tabellen auflisten:

SELECT name FROM sqlite_master WHERE type='table';

Prüfen ob audit_logs Tabelle existiert:

SELECT name FROM sqlite_master WHERE type='table' AND name='audit_logs';

Alle Spalten der audit_logs Tabelle:

PRAGMA table_info(audit_logs);

SQLite verlassen:

.quit

oder

.exit

Direkte Befehle (ohne interaktive Shell)

Anzahl der Logs:

sqlite3 backend/spaces.db "SELECT COUNT(*) FROM audit_logs;"

Letzte 5 Logs:

sqlite3 backend/spaces.db "SELECT timestamp, username, action, resource_type, details FROM audit_logs ORDER BY timestamp DESC LIMIT 5;"

Prüfen ob Tabelle existiert:

sqlite3 backend/spaces.db "SELECT name FROM sqlite_master WHERE type='table' AND name='audit_logs';"

Alle Logs als CSV exportieren:

sqlite3 -header -csv backend/spaces.db "SELECT * FROM audit_logs ORDER BY timestamp DESC;" > audit_logs.csv

Einen spezifischen Log anzeigen (Beispiel):

sqlite3 backend/spaces.db "SELECT * FROM audit_logs WHERE id = '5d424293-14c1-48ef-a34c-5555d843d289';"

Neueste 10 Logs mit Details:

sqlite3 -header -column backend/spaces.db "SELECT timestamp, username, action, resource_type, details FROM audit_logs ORDER BY timestamp DESC LIMIT 10;"

Logs nach Aktion filtern:

sqlite3 -header -column backend/spaces.db "SELECT * FROM audit_logs WHERE action = 'CREATE' ORDER BY timestamp DESC LIMIT 10;"

Logs nach Benutzer filtern:

sqlite3 -header -column backend/spaces.db "SELECT * FROM audit_logs WHERE username = 'admin' ORDER BY timestamp DESC LIMIT 10;"

Logs von heute:

sqlite3 -header -column backend/spaces.db "SELECT * FROM audit_logs WHERE date(timestamp) = date('now') ORDER BY timestamp DESC;"

JSON-Details eines Logs formatiert anzeigen:

sqlite3 backend/spaces.db "SELECT json_pretty(details) FROM audit_logs WHERE id = 'LOG_ID_HIER';"

Hinweis: Falls json_pretty nicht verfügbar ist, verwende stattdessen:

sqlite3 backend/spaces.db "SELECT details FROM audit_logs WHERE id = 'LOG_ID_HIER';" | python3 -m json.tool