前のトピック: サービス プロバイダ次のトピック: ユーザ インターフェースの影響


マルチテナンシーの仕組み

マルチテナントを有効にすると、各連絡先に対し、すべてのテナント(パブリック)、単一テナント、またはテナント グループ(ユーザ定義または製品によって維持されるもの)へのアクセスを許可できます。 連絡先の役割はアクセス権を制御し、このアクセス権によって読み取りと書き込みの権限が別々に指定されます。

: ユーザの役割の作成およびユーザへの役割の割り当ての詳細については、「管理ガイド」を参照してください。

マルチテナントを有効にした場合、ほとんどの CA APM オブジェクトには、そのオブジェクトを所有するテナントを指定するテナント属性が含まれます。 オブジェクトは、テナント属性とオブジェクトの使用方法に基づいて、以下の 3 つのグループに分類されます。

テナントなし

テナント属性を使用しないでオブジェクトを定義します。 これらのオブジェクト内のデータはすべて公開データであり、すべてのユーザはテナントのない公開データを作成および更新できます。

テナント必須

(DBMS ではなく CA APM によって強制される)null にできないテナント属性を使用してオブジェクトを定義します。 これらのオブジェクト内のデータはすべて、個々のテナントに関連付けられます。パブリック データはありません。

テナント任意

null にできるテナント属性を使用してオブジェクトを定義します。 これらのオブジェクトは、「テナントあり」または「パブリック」として作成できます。 テナントのドロップダウン リストでテナントを選択してオブジェクトを作成するとき、そのオブジェクトはテナントのあるオブジェクトになります。 ただし、テナントのドロップダウン リストで[公開データ]オプションを選択するとき、そのオブジェクトはテナントのあるパブリック オブジェクトになります。 1 つのテナントを公開するだけの役割に割り当てられているユーザには、データの入力時にテナントのドロップダウン リストが表示されません。

ユーザがデータベースに対してクエリを実行すると、その結果は、ユーザがアクセスを許可されているテナントに属するオブジェクトに制限されます。 つまり、表示されるのは、アクセスが許可されているテナントに属するデータのみで、テナントが必要なテーブル内のデータは表示されません。 テナントのある公開データの場合は、公開データでもあるので、テナントがオプションのテーブル内で見ることができます。

テナント ユーザがデータベース オブジェクトの作成または更新を要求するときは、そのユーザの現在の役割が更新できるテナントにオブジェクトが属しているかどうかが確認されます。 また、そのオブジェクトから他のオブジェクトへのすべての参照も確認されます。つまり、パブリック(テナントなし)オブジェクトへの参照、同じテナントのオブジェクトへの参照、またはオブジェクトのテナントの上位テナント階層内のテナントのオブジェクトへの参照であるかどうかが確認されます。 テナントのあるオブジェクトは、その親テナントに属するオブジェクトや、その親の親に属するオブジェクトなどを参照できるということです。

オブジェクトを作成するユーザが複数のテナントに対して更新アクセス権を持っている場合、そのユーザはテナントを明示的に指定する必要があります(直接的または間接的に)。

注: 参照されるオブジェクトの制限には例外が 1 つあります。 一部の参照では、包含オブジェクトのテナント階層内のテナントに属しているオブジェクトへの参照が許可されます。 このような参照は CA APM オブジェクト スキーマで SERVICE_PROVIDER_ELIGIBLE として指定されます。 SERVICE_PROVIDER_ELIGIBLE フラグが重要な意味を持つのは、サービス プロバイダ テナントが、オブジェクトのテナントの上位テナント階層にない場合だけです。サービス プロバイダ テナントがこの階層内にある場合は、テナント検証ルールによってサービス プロバイダの参照が許可されます。

オブジェクトの作成または更新を要求しているサービス プロバイダ ユーザには、テナント ユーザと同じ制限が適用されます。ただし、そのサービス プロバイダ ユーザには、テナントのあるパブリック オブジェクトを作成または更新する権限を与えることができます。 この権限は、サービス プロバイダ ユーザについて定義された役割によって制御されます。 テナントのあるオブジェクトを作成している複数のテナントに対する権限を持つサービス プロバイダ ユーザは、テナントを直接的または間接的に指定する必要があります。