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
- Starke Passwörter für alle Benutzer.
- Zugriffe beschränken (
'user'@'localhost'
statt'%'
verwenden, wenn möglich). - Firewall aktivieren: Port
3306
nur für vertrauenswürdige Hosts freigeben. - Regelmäßige Updates von MariaDB installieren.
- Dateiberechtigungen prüfen: Backups sollten nicht für jeden lesbar sein.
🔹 Übung
- Lege einen Benutzer
statistik
an, der nur SELECT-Rechte hat. - Erstelle ein vollständiges Backup von
kursdb
und spiele es in einer Testdatenbankkursdb_test
wieder ein. - 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