Kurze Antwort
Das Fundament einer mandantenfähigen SaaS-Architektur ist, den Mandantenkontext in jeder Schicht der Anwendung zu erhalten: Sitzung, Abfrage, Dateipfad und Hintergrundjob eingeschlossen. Die Datenplatzierung (gemeinsames Schema, eigenes Schema, eigene Datenbank) richtet sich nach Betriebs-, Kosten- und Isolationsanforderungen; eine einzige richtige Antwort gibt es nicht.
Mandantengrenze
Kundenidentität muss von Sitzung über Abfragen und Dateien bis zu Hintergrundaufgaben konsistent bleiben.
Datenhaltung
Gemeinsame Schemata, getrennte Schemata und getrennte Datenbanken unterscheiden sich in Betrieb, Kosten und Isolation. Kein Modell passt zu jedem Produkt.
Rechte und Abonnements
Nutzerrolle und Paketberechtigung des Kunden sind verschiedene Dinge. Beide werden serverseitig geprüft. Versteckte Oberflächenelemente verhindern keinen Zugriff.
Tests und Betrieb
Testen Sie fremde Datensätze, Dateien und Berichte auf unzulässigen Zugriff. Nutzungszählung, Warteschlangen und Überwachung behalten den Mandantenkontext. Skalierung folgt realer Last.
Das Abwägen der Optionen zur Datenplatzierung
Ein gemeinsames Schema ist am günstigsten und am einfachsten zu betreiben, hängt aber davon ab, dass die Mandantenkennung in jeder Abfrage korrekt angewendet wird. Ein eigenes Schema oder eine eigene Datenbank bietet stärkere Isolation und Backups pro Kunde, erhöht aber Betriebs- und Migrationsaufwand. Kundenprofil, rechtliche Anforderungen und Teamkapazität entscheiden.
Eine praktische Bewertungsaufgabe
Testen Sie dieselbe Nutzerrolle in zwei Kundenkonten. Prüfen Sie die Mandantengrenze einzeln bei Listen, Suche, Downloads, Exporten und Hintergrundaufgaben. Auch der Server muss den Zugriff begrenzen; ein Filter in der Oberfläche reicht nicht. Klären Sie Wiederherstellung eines einzelnen Kunden und Löschung seiner Daten vor der verbindlichen Wahl des Speichermodells. Diese Entscheidungen setzen wir auch in unserem eigenen Produkt LiftOfis um.
Häufige Fragen
Zwei Fragen, die uns zu diesem Thema oft gestellt werden.
Sollte ich Kundendaten in getrennten Datenbanken halten?
Das kommt darauf an. Haben Sie wenige große Kunden mit hohem Isolationsbedarf, kann eine eigene Datenbank sinnvoll sein; für viele kleine Kunden passt meist ein gemeinsames Schema besser. Unsere Leistung SaaS-Architekturberatung bewertet diese Entscheidung für Ihr Kundenprofil.
Wie überprüfe ich, dass ein Kunde nicht auf die Daten eines anderen zugreifen kann?
Testen Sie die Mandantengrenze getrennt bei Auflistung, Suche, Dateidownload, Export und Hintergrundjobs und überlassen Sie die Berechtigung nicht allein einem Oberflächenfilter. Diese Tests zu automatisieren, fängt Rückschritte bei späteren Änderungen ab.
Quellen und weiterführende Informationen