3

私は、単一の SQL DB Web サイト (ASP.NET/VB.NET) を、各クライアントが独自のデータベースを持つマルチテナント アプリに変更しようとしています。

古いサイトでは、すべての ASP ロール、ログイン、およびプロバイダーが単一のデータベースを指していました。

現在、複数のデータベースがあります。使用するのに最適なアーキテクチャ/手法は何だろうと思っています。会社名、さまざまな設定 (通常は web.config にあります)、テナント データベースへの接続文字列など、テナントを構成する 1 つのデータベースがあります。

テナントを構成する単一のデータベースにすべてのメンバーシップとロールを含める必要がありますか?それとも、個々のテナント データベースにメンバーシップとロールを含める必要がありますか? ASP.NET は、web.config で定義された RoleProviders の 1 つのセットしか好まないと思うので、オプション 2 はややこしいようです。

誰かがこれを以前に試したことがありますか、または何か推奨事項がありますか?

4

2 に答える 2

2

組み込みプロバイダーで ASP.Net メンバーシップ モデルを使用している場合は、指定したように、それらを 1 つの DB に配置するのが最も簡単です。

1 つのオプション (私はこれを試したことはありません) は、web.config ファイルで各テナントのプロバイダーを定義することです。これにより、各テナントが独自のメンバーシップ データベースを持つことができ、テナント間のユーザー名の衝突を回避できます (これが必要な場合)。

于 2009-01-27T13:45:48.877 に答える