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.

📚 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