Es gibt jedoch natürlich einige Unternehmen, die befürchten, dass ihre Daten kompromittiert werden könnten. Daher prüfen wir andere Lösungen.
Dies ist bedauerlich, da Kunden manchmal unter dem Missverständnis leiden, dass nur physische Isolation genügend Sicherheit bieten kann.
Es gibt einen interessanten MSDN-Artikel mit dem Titel Multi-Tenant Data Architecture , den Sie möglicherweise überprüfen möchten. So haben die Autoren das Missverständnis gegenüber dem gemeinsamen Ansatz angegangen:
Ein weit verbreitetes Missverständnis besagt, dass nur physische Isolation ein angemessenes Sicherheitsniveau bieten kann. Tatsächlich können Daten, die unter Verwendung eines gemeinsamen Ansatzes gespeichert werden, auch eine hohe Datensicherheit bieten, erfordern jedoch die Verwendung komplexerer Entwurfsmuster.
In Bezug auf technische und geschäftliche Überlegungen enthält der Artikel eine kurze Analyse, wo ein bestimmter Ansatz geeigneter sein könnte als ein anderer:
Die Anzahl, Art und Bedürfnisse der Mandanten, die Sie voraussichtlich bedienen werden, wirken sich auf unterschiedliche Weise auf Ihre Entscheidung zur Datenarchitektur aus. Einige der folgenden Fragen neigen Sie möglicherweise zu einem isolierteren Ansatz, während andere Sie zu einem gemeinsameren Ansatz neigen.
Wie viele potenzielle Mieter werden Sie voraussichtlich ansprechen? Sie sind vielleicht bei weitem nicht in der Lage, die voraussichtliche Nutzung mit Autorität abzuschätzen, aber denken Sie in Größenordnungen: Erstellen Sie einen Antrag für Hunderte von Mietern? Tausende? Zigtausende? Mehr? Je größer Ihre erwartete Kundenbasis ist, desto wahrscheinlicher ist es, dass Sie einen gemeinsameren Ansatz in Betracht ziehen.
Wie viel Speicherplatz sollen die Daten des durchschnittlichen Mieters belegen? Wenn Sie erwarten, dass einige oder alle Mandanten sehr große Datenmengen speichern, ist der Ansatz der separaten Datenbank wahrscheinlich am besten. (In der Tat können die Anforderungen an die Datenspeicherung Sie ohnehin dazu zwingen, ein separates Datenbankmodell zu verwenden. In diesem Fall ist es viel einfacher, die Anwendung von Anfang an so zu gestalten, als später zu einem separaten Datenbankansatz überzugehen.)
Wie viele gleichzeitige Endbenutzer soll der durchschnittliche Mieter unterstützen? Je größer die Anzahl, desto geeigneter ist ein isolierterer Ansatz, um die Anforderungen der Endbenutzer zu erfüllen.
Erwarten Sie, dass Sie Mehrwertdienste pro Mandant anbieten, z. B. Sicherungs- und Wiederherstellungsfunktionen pro Mandant? Solche Dienste sind durch einen isolierteren Ansatz einfacher anzubieten.
UPDATE: Weitere Informationen zur erwarteten Anzahl der Mieter.
Diese erwartete Anzahl von Mandanten (10.000) sollte den Multi-Datenbank-Ansatz für die meisten, wenn nicht alle Szenarien ausschließen. Ich glaube nicht, dass Ihnen die Idee gefällt, 10.000 Datenbankinstanzen zu verwalten und jeden Tag Hunderte neuer Instanzen erstellen zu müssen.
Allein aufgrund dieses Parameters scheint der Einzelschema-Ansatz für gemeinsam genutzte Datenbanken am besten geeignet zu sein. Die Tatsache, dass Sie nur etwa 50 MB pro Mandant speichern und keine Add-Ons pro Mandant vorhanden sind, macht diesen Ansatz noch geeigneter.
In dem oben zitierten MSDN-Artikel werden drei Sicherheitsmuster erwähnt, die Sicherheitsaspekte für den Shared-Database-Ansatz berücksichtigen:
Wenn Sie mit den Datensicherheitsmaßnahmen Ihrer Anwendung vertraut sind, können Sie Ihren Kunden ein Service Level Agrement anbieten , das starke Datensicherheitsgarantien bietet. In Ihrem SLA können Sie neben den Garantien auch die Maßnahmen beschreiben, die Sie ergreifen würden, um sicherzustellen, dass die Daten nicht kompromittiert werden.
UPDATE 2: Anscheinend haben die Microsoft-Leute einen neuen Artikel zu diesem Thema verschoben / erstellt, der ursprüngliche Link ist weg und dies ist der neue: Mandantenmuster für SaaS-Datenbanken mit mehreren Mandanten (ein großes Lob an Shai Kerer)