Bisher haben wir unsere Datenbank aufgebaut und Abfragen optimiert.
In diesem Kapitel geht es darum, wie du MariaDB im Alltag sicher und zuverlässig betreibst: Benutzerverwaltung, Backups und grundlegende Sicherheitsmaßnahmen.

🔹 Benutzerrechte feinjustieren

Im Produktivbetrieb solltest du niemals mit dem Root-Benutzer arbeiten.
Lege stattdessen für jede Anwendung oder jeden Entwickler einen eigenen Benutzer mit minimal notwendigen Rechten an.

Beispiel: Benutzer nur mit Lese-Rechten

CREATE USER 'report'@'localhost' IDENTIFIED BY 'starkespasswort';
GRANT SELECT ON kursdb.* TO 'report'@'localhost';

👉 Hinweis: So kann report Daten lesen, aber nicht ändern oder löschen.

Beispiel: Benutzer mit Schreibrechten für Bestellungen

CREATE USER 'shop'@'localhost' IDENTIFIED BY 'starkespasswort';
GRANT SELECT, INSERT, UPDATE ON kursdb.bestellungen TO 'shop'@'localhost';

🔹 Backups erstellen

Backups sind überlebenswichtig. Mit mysqldump sicherst du komplette Datenbanken.

Komplettes Backup

mysqldump -u kursuser -p kursdb > kursdb_backup.sql

Nur Struktur ohne Daten

mysqldump -u kursuser -p --no-data kursdb > kursdb_struktur.sql

Mehrere Datenbanken sichern

mysqldump -u root -p --databases kursdb firma > multi_backup.sql

Wiederherstellen

mysql -u kursuser -p kursdb < kursdb_backup.sql

👉 Hinweis: Für automatische Backups kannst du einen Cronjob einrichten:

0 2 * * * mysqldump -u kursuser -pPasswort kursdb > /backups/kursdb_$(date +\%F).sql

🔹 Logs nutzen

MariaDB führt verschiedene Logdateien:

  • Error Log → Fehler & Startmeldungen
  • General Log → alle Abfragen (praktisch für Debugging, aber performance-lastig)
  • Slow Query Log → langsame Abfragen für Optimierung

Beispiel: Slow Query Log aktivieren

In /etc/mysql/mariadb.conf.d/50-server.cnf hinzufügen:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 1

Danach Dienst neu starten:

sudo systemctl restart mariadb

🔹 Sicherheitsmaßnahmen

  1. Starke Passwörter für alle Benutzer.
  2. Zugriffe beschränken ('user'@'localhost' statt '%' verwenden, wenn möglich).
  3. Firewall aktivieren: Port 3306 nur für vertrauenswürdige Hosts freigeben.
  4. Regelmäßige Updates von MariaDB installieren.
  5. Dateiberechtigungen prüfen: Backups sollten nicht für jeden lesbar sein.

🔹 Übung

  1. Lege einen Benutzer statistik an, der nur SELECT-Rechte hat.
  2. Erstelle ein vollständiges Backup von kursdb und spiele es in einer Testdatenbank kursdb_test wieder ein.
  3. Aktiviere das Slow Query Log und teste es mit einer absichtlich langsamen Abfrage.

✅ Zusammenfassung

  • Gib Benutzern nur die Rechte, die sie wirklich brauchen.
  • Sichere deine Datenbank regelmäßig mit mysqldump und Cronjobs.
  • Nutze Logs (vor allem Slow Query Log) für Optimierung und Fehleranalyse.
  • Schütze den Datenbankserver mit Firewall und starken Passwörtern.

Im nächsten Kapitel bauen wir eine komplette Beispiel-Datenbank für ein Mini-Projekt auf (z. B. Shop oder Blog-System), die du auch produktiv einsetzen kannst.

📚 Inhaltsverzeichnis

👉 MariaDB Kapitel 1: Einführung & Installation im Terminal
👉 MariaDB Kapitel 2: Benutzer & Rechteverwaltung
👉 MariaDB Kapitel 3: Tabellen sauber anlegen (Primär- & Fremdschlüssel)
👉 MariaDB Kapitel 4: Grundbefehle & Kurzschreibweisen in der MariaDB-Konsole
👉 MariaDB Kapitel 5: CRUD-Befehle  – Daten einfügen, lesen, ändern und löschen
👉 MariaDB Kapitel 6: Primär- und Fremdschlüssel – Tabellen verknüpfen
👉 MariaDB Kapitel 7: Profi-Abfragen mit JOIN, GROUP BY & Aggregatfunktionen
👉 MariaDB Kapitel 8: Indexe, Views & Transaktionen
👉 MariaDB Kapitel 9: Produktivbetrieb – Sicherheit, Backups & Verwaltung
👉 MariaDB Kapitel 10: Abschlussprojekt – Ein Mini-Shop

📚 Bonus-Kapitel Ideen

👉 MariaDB Kapitel 11: Stored Procedures – Automatisierte Abläufe
👉 MariaDB Kapitel 12: Trigger – Aktionen bei Änderungen
👉 MariaDB Kapitel 13: Events – Zeitgesteuerte Aufgaben
👉 MariaDB Kapitel 14: Sicherheit & Best Practices
👉 MariaDB Kapitel 15: Performance-Tuning & Optimierung