PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Multi-Tenant-Rail-Anwendung:Was sind die Vor- und Nachteile verschiedener Techniken?

MSDN hat eine gute Einführung in mandantenfähige Datenarchitektur .

An einem Ende des Spektrums haben Sie eine Datenbank pro Mandant („Shared Nothing“). "Shared nothing" macht die Notfallwiederherstellung ziemlich einfach und bietet den höchsten Grad an Isolation zwischen Mandanten. Aber es hat auch die höchsten Durchschnittskosten pro Mandant und unterstützt die wenigsten Mandant pro Server.

Am anderen Ende des Spektrums speichern Sie eine Mandanten-ID-Nummer in jeder Zeile jeder gemeinsam genutzten Tabelle („alles gemeinsam genutzt“). „Alles gemeinsam nutzen“ erschwert die Notfallwiederherstellung – für einen einzelnen Mandanten müssten Sie nur einige wiederherstellen Zeilen in jeder gemeinsam genutzten Tabelle - und hat den niedrigsten Isolationsgrad. (Schlecht formulierte Abfragen können private Daten preisgeben.) Aber es hat die niedrigsten Kosten pro Mandant und unterstützt die höchste Anzahl von Mandanten pro Server.

Das klingt als würden Sie über ein Schema pro Mandant sprechen. Achten Sie genau auf Berechtigungen (SQL GRANT ). und REVOKE Aussagen. Und STANDARDPRIVILEGIEN ÄNDERN .)