4.2 KiB
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