sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit databázi pro více tenantů se sdílenými strukturami tabulek?

Existují však samozřejmě některé společnosti, které se obávají, že by jejich data mohla být kompromitována, a proto posuzujeme další řešení.

To je nešťastné, protože zákazníci někdy trpí mylnou představou, že pouze fyzická izolace může nabídnout dostatečné zabezpečení.

Existuje zajímavý článek MSDN s názvem Multi-Tenant Data Architecture , kterou možná budete chtít zkontrolovat. Takto autoři řešili mylnou představu o sdíleném přístupu:

Obecná mylná představa tvrdí, že pouze fyzická izolace může poskytnout odpovídající úroveň zabezpečení. Data uložená pomocí sdíleného přístupu mohou ve skutečnosti také zajistit vysokou bezpečnost dat, ale vyžadují použití sofistikovanějších návrhových vzorů.

Pokud jde o technické a obchodní úvahy, článek obsahuje stručnou analýzu toho, kde může být určitý přístup vhodnější než jiný:

Počet, povaha a potřeby nájemců, o kterých očekáváte, že budou sloužit všem, ovlivňují vaše rozhodování o datové architektuře lhostejným způsobem. Některé z následujících otázek vás mohou vést k izolovanějšímu přístupu, zatímco jiné vás k více sdílenému přístupu.

  • Na kolik potenciálních nájemců se zaměříte? Možná nejste schopni odhadnout potenciální využití s ​​autoritou, ale uvažujte v řádech:vytváříte aplikaci pro stovky nájemců? tisíce? Desítky tisíc? Více? Čím větší základnu nájemníků očekáváte, tím pravděpodobněji budete chtít zvážit sdílenější přístup.

  • Kolik úložného prostoru očekáváte, že zaberou data průměrného nájemce? Pokud očekáváte, že někteří nebo všichni nájemci budou ukládat velmi velké množství dat, bude pravděpodobně nejlepší tento přístup založený na samostatné databázi. (Požadavky na ukládání dat vás tak jako tak mohou donutit přijmout model oddělené databáze. Pokud ano, bude mnohem snazší navrhnout aplikaci tímto způsobem od začátku, než později přejít na přístup oddělené databáze.)

  • Kolik souběžných koncových uživatelů očekáváte, že bude průměrný nájemce podporovat? Čím větší číslo, tím vhodnější bude izolovanější přístup ke splnění požadavků koncových uživatelů.

  • Očekáváte, že budete nabízet služby s přidanou hodnotou pro jednotlivé nájemce, jako je možnost zálohování a obnovy pro jednotlivé nájemce? Takové služby se snáze nabízejí pomocí izolovanějšího přístupu.

AKTUALIZACE: Dále k aktualizaci o očekávaném počtu nájemců.

Tento očekávaný počet nájemců (10 000) by měl u většiny, ne-li u všech scénářů vylučovat multidatabázový přístup. Nemyslím si, že se vám bude líbit myšlenka udržovat 10 000 instancí databáze a každý den vytvářet stovky nových.

Už jen z tohoto parametru se zdá, že nejvhodnější je přístup sdílené databáze a jednoho schématu. Skutečnost, že budete ukládat jen asi 50 Mb na nájemce a že nebudou existovat žádné doplňky pro každého nájemce, činí tento přístup ještě vhodnější.

Výše citovaný článek MSDN zmiňuje tři bezpečnostní vzory, které řeší bezpečnostní aspekty přístupu sdílené databáze:

Když si budete jisti opatřeními pro bezpečnost dat vaší aplikace, budete moci svým klientům nabídnout Smlouvu o úrovni služeb který poskytuje silné záruky bezpečnosti dat. Ve své smlouvě SLA byste kromě záruk mohli také popsat opatření, která byste přijali, abyste zajistili, že data nebudou ohrožena.

AKTUALIZACE 2: Zřejmě se kluci z Microsoftu přesunuli / vytvořili nový článek týkající se tohoto tématu, původní odkaz je pryč a toto je nový:Vzory pronájmu databáze SaaS pro více nájemců (chvála Shai Kererovi)



  1. Průnik více polí v PostgreSQL

  2. Dočasně deaktivujte všechna omezení cizího klíče

  3. Výhody MySQLi oproti MySQL

  4. Zkontrolujte, zda řádek existuje, jinak vložte