問題タブ [multi-tenant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
430 参照

sql-server - SQLServerとNHibernateによる不透明なテナントの識別

私たちは最近ファッショナブルなマルチテナントSaaSアプリ(共有データベース、共有スキーマ)を開発していますが、私が気に入らない点が1つあります。

ほぼすべての場所で説明する必要があるため、これTenantIDは私を悩ませています。セキュリティの観点からは面倒です。悪意のあるAPIユーザーがTenantID他の値に変更し、混乱する場合はどうなりますか。

私がやりたいのはTenantID、ドメインオブジェクトでこれを完全に取り除き、NHibernateまたはSQLServerのいずれかで処理することです。

私がすでにインターネットで読んだことから、これはCONTEXT_INFO(NHibernateベースの実装)、NHibernateフィルターSQLビュー、およびそれらの組み合わせで行うことができます。

今、私の要件は次のとおりです。

  • TenantIDドメインオブジェクトからの言及を削除します
  • ...ただし、SQL Serverに適切な場所に挿入してもらいます(これはdefault制約によって実現されると思います)
  • ...そして明らかに、この基準に基づいたフィルタリングのサポートを提供し、顧客がお互いのデータを見ることは決してないようにします
  • 可能であれば、SQLServerビューは避けてください。
  • NHibernate、SQL ServerのMARS、および高度に同時実行されるSaaSアプリの一般的な性質とうまく連携するソリューションを用意する

それについてどう思いますか?

0 投票する
2 に答える
1070 参照

sql - MultiTenant と複数の DB

Web/SaaS モデルで販売されるカスタム CRM ソリューションを開発しています。このソリューションを使用するクライアントは、数十または数百に上ると予想されます。MS SQL を db エンジンとして使用します。

オプション 1 は、単一の DB を持ち、テーブルに TenantId 列、適切なインデックスを含め、各 db アクセスで「where tenantId={...}」を使用することです。

オプション 2 は、クライアントごとに個別の DB を用意し、TenantId および where 句の必要性を回避することです。

各クライアントには、数百万ではなく、数十万のレコードがあると予想しています。

私が見ているように、どのオプションを選択しても、データページの総数があります。SQL が複数の DB を管理するのに優れているのか、それとも TenantId とインデックスを持つ単一の DB を管理するのに優れているのかが、決定の中心になっているようです。最初は、ソリューションは単一の DB サーバーで実行されますが、最終的には SAN に移行します。

誰もこれについて意見を持っていますか?

0 投票する
1 に答える
1517 参照

sql-server - SSRS はマルチテナントの使用をサポートできますか?

標準のMicrosoftスタック(asp.net、sqlserver2008、ssis、ssrs)の上に構築されたWebフォームアプリケーションがあります。場合によっては、このスタック全体をマルチテナント型モードで実行して、1 つの「スライス」のユーザーが他のユーザーに見えないようにしたいと考えています。

webapp と ssis 側ではこれを解決しましたが、Sql Server Reporting Services ではまだ解決していません。

Sql Server 2008 の単一のインスタンスを使用して、単一のマシンで複数の論理レポート サービスの「サイト」を作成する方法はありますか? レポート、セキュリティ、およびデータ ソースをスライスごとに個別に構成できる必要があります。

どんな助けでも大歓迎です。

ありがとう!

0 投票する
1 に答える
624 参照

asp.net - NHibernate ISession 固有のイベントリスナー

NHibernate (共有スキーマ) を使用してマルチテナント ASP.NET アプリケーションを作成しています。現在のテナント ID がエンティティに対して保存されていることを確認するために、保存する前に NHibernates イベント リスナーを使用してエンティティを検査/変更するつもりでした。

テナント ID を含む認証トークンは上位で管理され、データ レイヤーに渡されます。

私の問題は、イベント リスナーが特定の ISession ではなく、NHibernate 構成に対して構成されていることです。これは、イベントを発生させた ISession にアクセスすることはできますが、使用する識別子を渡す方法がないことを意味します。

ISession 固有のデータをイベント リスナーに渡すにはどうすればよいですか?

0 投票する
2 に答える
1598 参照

php - マルチテナント アーキテクチャの SaaS PHP/mysql アプリケーションに単一または複数の mysql ユーザーを使用する

顧客ごとに 1 つのデータベースを持つマルチユーザー アプリを構築しています。すべての顧客データベース構造は同一です。現在、独自のデータベースで作業する権限のみを持つ新しい mysql ユーザーを (クライアントごとに) 生成しています。

たとえば、mysql user1 は dbase1.* (database1.alltables) に対する権限を持ち、mysql user2 は dbase2.* に対する権限を持ちます。

これは、バックアップとして別のサーバーにダンプされるのがすでに苦痛であることに気付きました (レプリケーションは使用しませんが、ファイルを時々ダンプしようとしますが、information_schema dbase を削除して、SQL ファイルから再作成することはできません。

とにかく、すべてのクライアント データベースにアクセスできる 1 人のユーザーだけを使用する方がよいのではないかと考えています。これはより安全ではありませんよね?それとも、かなり安全な方法で使用できますか? 確実に管理した方が良いでしょう。

あなたの考えは何ですか?

0 投票する
1 に答える
695 参照

asp.net-mvc - Entity Framework 4 を使用して実行時にデータベース スキーマを変更するための最適な実装は何ですか?

各テナントが 1 人以上のユーザーを持ち、各テナントが 1 人以上のユーザーを持ち、別の場所で分割されている、ここここで説明した「単一データベース、個別のスキーマ」モデルを使用して、SQL Server 上に ASP.Net MVC 2 マルチテナント アプリケーションを構築しています。独自のテナント固有の SQL Server スキーマ。

The application is using Entity Framework 4. 異なるテナントのユーザーがスキーマ内のデータにアクセスできるようにするには、エンティティの ObjectContext を作成するときにスキーマを指定できる必要があります。

このツール ( http://efmodeladapter.codeplex.com/ )への参照をいくつか見たことがありますが、(1) 使用方法の説明で指定されているように EDMX が生成されるたびにコードを更新する必要はなく、(2 ) EF4 より前に作成されたので、今はもっと簡単な方法があることを願っています。

では、EF4 でこれを行う最善の方法は何でしょうか?

ありがとう

0 投票する
2 に答える
1456 参照

asp.net-mvc - 単一のASP.NETMVCアプリケーションで複数のドメインにサービスを提供するにはどうすればよいですか?

(単一のASP.NET MVCアプリケーション内で)メカニズムを実装して、次のことを確認する方法:

  • リクエストがmydomainに届いた場合(ユーザーがmydomain.comにアクセスした場合)->特定のコントローラーセットを使用して処理する
  • リクエストがotherdomainで発生した場合(ユーザーがotherdomain.comにアクセスした場合)->異なるコントローラーセットを使用して処理する

(ドメインは同じウェブホスティングにエイリアスされています)

説明されているメカニズムを確実に機能させるには、ASP.NET MVC内のどの拡張ポイントを使用する必要がありますか?

0 投票する
1 に答える
1382 参照

css - Asp.Net MVC を使用してマルチテナント Web ポータル CSS を管理する方法

MVC を使用してマルチテナント Web ポータル アプリケーションを設計しています。

テナントは、URL またはテナント ID によって識別されます。デフォルトのスキンとテーマのセットを用意しますが、要件に応じて、各テナントに独自のスキンとテーマを設定できます。

マルチテナント Web ポータル アプリケーションの css を処理/添付する最良の方法は何ですか?

0 投票する
2 に答える
1480 参照

java - Spring のセキュリティとマルチテナンシー / REST -> どうやって? ベストプラクティス?参考アプリ?

次のようなURLを保護する方法を探していました

ユーザー (役割ではない) レベル、つまり ID {ownerId} を持つ所有者のみがアクセスできます。さらに、RESTfulな設計を含めて保護したい。所有者レベルで動的に JSON サービスへの非同期アクセス。

私の質問:

  1. これは Spring Security でどのように行うのが最適ですか?
  2. /owners/{ownerId}/pets/new が非同期リクエスト経由でアクセスされた場合、これはどのように行われますか?
  3. iPhoneアプリなどのサードパーティアプリから上記のURIにアクセスするにはどうすればよいですか?
  4. サンプル/参照アプリケーション/記事はありますか?

ありがとう

0 投票する
1 に答える
2300 参照

java - 「共有データベース、個別スキーマ」マルチテナント戦略の実装方法

共有データベースの個別のスキーマ アプローチを使用して、Web アプリケーションをマルチテナント対応にする必要があります。このアプリケーションは、Java/J2EE および Oracle 10g を使用して構築されています。

クライアントごとに 1 つのスキーマで、複数のスキーマを持つ共有データベースを使用する単一のアプリケーションサーバーが必要です。

これを達成するための最良の実装アプローチは何ですか?

  • 中間層 (アプリサーバー) レベルで何をする必要がありますか?
  • クライアントごとに複数のホスト ヘッダーが必要ですか?
  • アプリケーションにアクセスしているクライアントに基づいて、正しいスキーマに動的に接続するにはどうすればよいですか?