管理ガイド> TDVリソースのセキュリティ管理> 行ベースのセキュリティ> 行ベースのセキュリティについて
 
行ベースのセキュリティについて
機密データへのアクセスの制御は、TDVの基本的な部分です。行ベースのセキュリティは、特定の行に適用できるアクセス制御の形式です。行ベースのセキュリティは、制限された行へのアクセスを禁止します。通常、行ベースのセキュリティは、ユーザーとグループに基づいてさまざまなデータ表示権限を定義することによって制御されます。
TDVには、ユーザーまたはグループに基づく行フィルターポリシーの作成に役立つガイド付きメソッドがあります。 TDVは、行フィルターポリシーを駆動するSQLスクリプトへのアクセスも提供します。関連するSQLスクリプトファイルを作成および変更して、カスタム行フィルターポリシーを定義できます。たとえば、従業員の給与や特定の資産の場所は、特定のグループやユーザーから制限したいデータである可能性があります。または、時間帯や地域に基づいてアクセスを制限することもできます。
行ベースのセキュリティポリシーを列ベースのセキュリティポリシーと組み合わせて使用している場合、TDVは列ベースのポリシーを適用する前に行ベースのポリシーを適用します。
行フィルターポリシー
行フィルターポリシーは、データアクセスをどのように制御するかを定義するために使用されるSQLスクリプトです。 TDVの2つの主要な行フィルターポリシーカテゴリは次のとおりです。
カテゴリ
説明
表形式
行ベースのセキュリティのポリシーを作成するためのTDVユーザーインターフェイスガイド付きメソッド。デフォルトの表形式オプションを使用することにより、TDVは、ユーザーまたはグループに基づいてルールを含むポリシーを定義するために必要なすべてのSQLスクリプトを作成します。
自由形式
あなたが書いたカスタマイズされたSQLスクリプト。
グループ
このカテゴリでは、複数のポリシーを任意の数のリソースに割り当てることができます。
行フィルターポリシーの定義に関係なく、割り当てられているテーブルまたはビューは、行フィルターポリシーが適用されていない場合よりも多くのデータを提供することはありません。
ルール
表形式の行フィルターポリシーを定義している場合は、TDVを使用して複数のルールを定義できます。各表形式の行フィルターポリシーには、1つ以上のルールを含めることができます。各ルールは、TDV内で定義されている特定のユーザーまたはグループに関連付けられています。ルールを定義するときは、次を選択できます。
すべての行
行なし
述語によって定義された選択された行
別のフィルター手順で定義された選択された行
課題
割り当ては、特定の行フィルターポリシーをテーブルまたはビューリソースに関連付けるために使用されます。単一行フィルターポリシーは、1つ以上のテーブルまたはビューに適用できます。行フィルターポリシーを定義してリソースに適用した後、行フィルターポリシーの基準に基づいてデータの表示を制御できます。
WHERE句の動作
定義する行フィルターポリシーは、ビューまたはテーブルのSQLコードを変更しません。行フィルターポリシーは、テーブルまたはビューを使用するSQLステートメントのWHERE句に一時的に追加するだけです。
行フィルターポリシーは、実行時にAND演算子を使用して追加されます。定義されたルールは、実行時にOR演算子を使用して一緒に追加されます。
行フィルターポリシーとキャッシュ制限
行フィルターポリシーを定義して、TDVデータキャッシング環境の一部であるビューに適用できます。ただし、ビュー定義で行フィルターポリシーが割り当てられているテーブルまたはビューの結果を使用する場合、キャッシュを作成することはできません。
Studio内で、行フィルターポリシーとキャッシュが有効になっているビューがあり、そのビューに関連付けられているキャッシュを開くと、行フィルターポリシーが適用されていないかのように、ビュー内のすべてのデータを表示できます。たとえば、行フィルターポリシーとキャッシュがORDERSで定義されている場合、ORDERSのデータを表示すると、データは行フィルターポリシーによって制約されていることがわかります。ただし、ORDERS_CACHEのデータを表示すると、すべてのデータが表示されます。
グループ行フィルターポリシーを使用した行フィルターポリシーの動作
個々の行フィルターポリシーとグループ行フィルターポリシーを定義し、それらを同じリソースに割り当てることができるため、予測できないように見える動作が発生する可能性があります。
グループ内でも使用され、同じリソースに割り当てられている特定のリソースに割り当てられた2つのポリシーの場合、TDVは、(p1とp2)または(p1とp2)のようなアルゴリズムを使用してポリシーを適用します。
さらに例を追加すると、リージョン、製品、および顧客のデータを含むV_SALESビューと、IDに基づいて各データセットをセグメント化するためのフィルターをそれぞれに持つREGION、PRODUCT、およびCUSTOMERのポリシーが設定されます。 V_SALESの場合、各ポリシーを1つに結合し、それにグループを割り当てるグループ行フィルターポリシーが作成された場合。
ALLを選択すると、3つのポリシーがSQLでAND演算子を使用して結合されます。
ANYを選択すると、3つのポリシーがSQLでOR演算子を使用して結合されます。
グループを定義する方法の詳細については、行フィルターポリシーグループの作成または編集を参照してください。