Jednakże istnieją pewne spółki oczywiście, którzy obawiają się, że ich dane mogą być zagrożona, więc oceniamy innych rozwiązań.
Jest to niefortunne, ponieważ klienci czasami cierpią z powodu błędnego przekonania, że tylko fizyczna izolacja może zapewnić wystarczającą ochronę.
Istnieje interesujący artykuł MSDN, zatytułowany Multi-Tenant Data Architecture, który możesz sprawdzić. W ten sposób autorzy skierowana błędne kierunku wspólnego podejścia:
Powszechnym błędem utrzymuje, że tylko fizyczna izolacja może stanowić odpowiedniego poziomu bezpieczeństwa. W danych dane przechowywane przy użyciu współużytkowanego podejścia mogą również zapewnić silne bezpieczeństwo danych, ale wymagają użycia bardziej zaawansowanych wzorców projektowych.
Ponieważ ze względów technicznych i biznesowych, artykuł sprawia krótką analizę na którym pewna podejście może być bardziej odpowiednie niż inne:
ilości, charakteru i potrzeb w najemców można oczekiwać do obsługi wszystkich wpływów Twoja decyzja o architekturze danych na różne sposoby w . Niektóre z następujących pytań mogą wywoływać niepożądane pytania w kierunku bardziej izolowanego podejścia, podczas gdy inne mogą skłonić Cię do bardziej wspólnego podejścia .
Ilu potencjalnych najemców oczekujesz? Być może nigdzie indziej nie jesteś w stanie oszacować przyszłego wykorzystania z upoważnieniem, ale myślisz w kategoriach wielkości rzędu: czy budujesz aplikację dla setek najemców? Tysiące? Dziesiątki z tysięcy? Jeszcze? Im większy jesteś, , oczekuj, że Twoja baza najemców będzie większa, bardziej prawdopodobne, że będziesz chciał rozważyć bardziej wspólne podejście.
Ile przestrzeni dyskowej oczekujesz od danych przeciętnego lokatora? Jeśli spodziewasz się, że niektórzy lub wszyscy lokatorzy będą przechowywać bardzo duże ilości danych, to osobne podejście do bazy danych jest prawdopodobnie najlepsze dla . (Rzeczywiście, wymagania dotyczące przechowywania danych może zmusić cię do przyjęcia modelu oddzielny bazy danych i tak. Jeśli tak, to będzie dużo łatwiejsze do projektowania aplikacji że droga od zaczynają niż przenieść się do podejścia oddzielny bazy później.)
Ilu użytkowników końcowych oczekujesz od przeciętnego najemcy? Im większa liczba, tym bardziej odpowiednie bardziej izolowane podejście będzie spełniać wymagania użytkowników końcowych.
Czy spodziewasz się oferować usługi dodatkowe dla najemców, takie jak jako narzędzie do backupu i przywracania dla dzierżawy ? Takie usługi są łatwiejsze do spełnienia dzięki bardziej odizolowanemu podejściu .
UPDATE: Dalsze zaktualizować o spodziewanej liczby lokatorów.
Oczekiwana liczba najemców (10 000) powinna wykluczyć podejście oparte na wielu bazach danych, dla większości, jeśli nie wszystkich scenariuszy. Nie sądzę, żebyś wpadł na pomysł utrzymania 10 000 instancji bazy danych i konieczności tworzenia setek nowych każdego dnia.
Tylko z tego parametru wygląda na to, że najbardziej odpowiednia jest metoda współdzielonej bazy danych. Fakt, że będziesz przechowywać około 50 MB na dzierżawcę i że nie będzie dodatków dla najemców, czyni to podejście jeszcze bardziej odpowiednim.
W artykule MSDN ww wymienia trzy wzory zabezpieczeń przeciwdziałania względy bezpieczeństwa na podejście shared-bazy danych:
Gdy jesteś przekonany, ze W przypadku środków bezpieczeństwa dotyczących danych dotyczących Twojej aplikacji będziesz w stanie zaoferować swoim klientom Service Level Agrement, który zapewnia silne gwarancje bezpieczeństwa danych.W umowie SLA oprócz gwarancji można również opisać środki, które należy podjąć, aby zapewnić, że dane nie zostaną naruszone.
UPDATE 2: Podobno faceci Microsoft przeniósł/wykonany nowy artykuł dotyczący tego tematu, oryginalny link zniknął i to jest nowe: Multi-tenant SaaS database tenancy patterns (uznanie dla Shai Kerer)
"Wydaje się, że Multi-Schema ma nieco inne tabele dla każdego lokatora". Co jest nie tak w przypadku wielu schematów i wszystkich tych samych tabel? Czy chcesz powiedzieć, że nie chcesz odtwarzać identycznych struktur tabel we wszystkich schematach? A może mówisz, że nie możesz tworzyć identycznych struktur we wszystkich schematach? –
+1 za dobre/interesujące pytanie – AdaTheDev
@ S.Lott Spodziewam się 10.000 najemców z ponad 100 zapisami dziennie. Mając miliony wpisów w jednej definicji tabeli (definition = shared, data = isolated) czuję się lepiej niż tysiące wpisów w tysiącach definicji tabel. Ponieważ niewielu ludzi robi to w ten sposób, nie jestem tak pewny w przypadku wielu schematów. –