ただし、データが危険にさらされることを恐れる企業も当然あるため、他のソリューションを検討しています。
これは残念なことです。物理的な分離だけで十分なセキュリティを提供できるという誤解に顧客が悩まされることがあるからです。
Multi-Tenant Data Architectureというタイトルの興味深い MSDN 記事があり、確認することをお勧めします。これは、著者が共有アプローチに対する誤解に対処した方法です。
よくある誤解は、適切なレベルのセキュリティを提供できるのは物理的な分離だけだというものです。実際、共有アプローチを使用して保存されたデータも強力なデータ安全性を提供できますが、より洗練された設計パターンを使用する必要があります。
技術的およびビジネス上の考慮事項については、この記事では、特定のアプローチが別のアプローチよりも適切な場合について簡単に分析しています。
サービスを提供すると予想されるテナントの数、性質、およびニーズはすべて、さまざまな方法でデータ アーキテクチャの決定に影響します。以下の質問の中には、より孤立したアプローチにバイアスをかけるものもあれば、より共有されたアプローチにバイアスをかけるものもあります。
ターゲットとする見込みテナントは何人ですか?権限を持って将来の使用を見積もるにはほど遠いかもしれませんが、桁違いに考えてみてください。何百ものテナント用のアプリケーションを構築していますか? 数千?何万もの?もっと?テナント ベースが大きくなると予想されるほど、より共有されたアプローチを検討する可能性が高くなります。
平均的なテナントのデータが占めると予想されるストレージ容量はどれくらいですか? 一部またはすべてのテナントが非常に大量のデータを格納することが予想される場合は、個別のデータベース アプローチがおそらく最適です。(実際、データ ストレージの要件により、いずれにせよ分離データベース モデルを採用する必要がある場合があります。その場合、後で分離データベース アプローチに移行するよりも、最初からそのようにアプリケーションを設計する方がはるかに簡単です。)
平均的なテナントがサポートすると予想される同時エンド ユーザー数は? 数値が大きいほど、エンド ユーザーの要件を満たすために、より分離されたアプローチが適切になります。
テナントごとのバックアップや復元機能など、テナントごとの付加価値サービスを提供する予定はありますか? このようなサービスは、より分離されたアプローチによって提供しやすくなります。
更新:予想されるテナント数についてさらに更新します。
予想されるテナント数 (10k) では、すべてではないにしても、ほとんどのシナリオでマルチデータベース アプローチを除外する必要があります。10,000 のデータベース インスタンスを維持し、毎日何百もの新しいインスタンスを作成しなければならないという考えを気に入るとは思いません。
このパラメーターだけを見ると、共有データベース、単一スキーマのアプローチが最も適しているように見えます。テナントごとに約 50Mb を格納するだけで、テナントごとのアドオンがないという事実は、このアプローチをより適切なものにします。
上記の MSDN の記事では、共有データベース アプローチのセキュリティに関する考慮事項に対処する 3 つのセキュリティ パターンについて言及しています。
アプリケーションのデータ安全対策に自信がある場合は、強力なデータ安全保証を提供するサービス レベル アグリーメントをクライアントに提供できます。SLA では、保証とは別に、データが危険にさらされないようにするために講じる対策についても説明できます。
更新 2:どうやら Microsoft の担当者が移動したか、このテーマに関する新しい記事を作成したようです。元のリンクはなくなり、これが新しいリンクです:マルチテナント SaaS データベースのテナンシー パターン(Shai Kerer に敬意を表します)