プライマリ・コンテンツに移動
Oracle® Data Masking and Subsettingガイド
Enterprise Manager 13c
E72570-04
目次へ移動
目次
索引へ移動
索引

前
次

5 データ・サブセッティング

この章では、単一のタスクフローでデータ・マスキングとサブセッティングを実行する統合されたサブセットとマスク機能について説明し、そのプロセスを実証するためにいくつかのシナリオの概要を示します。データ・サブセッティング機能を使用するには、Oracle Data Masking and Subsetting Packライセンスが必要です。

注意:

データ・サブセット化は、Oracle Databaseバージョン10.1以上でのみサポートされています。この章の手順は、Oracle Enterprise Manager Cloud Control 12.1以上のみに適用されます。

データ・セブセット定義の作成

この項で説明する手順では、サブセット定義の作成後、そのプロパティを編集したりサブセット定義をエクスポートするなどのタスクを実行するサブセット・データベースを作成できます。

このインタフェースでは、サブセットの定義の作成時に、インラインまたはソースでマスキングを実行できます。

続行する前に、次の権限があることを確認します。

  • Enterprise Manager Cloud ControlユーザーのEM_ALL_OPERATOR

    注意:

    次の権限を持っている場合、EM_ALL_OPERATOR権限は必要ありません。

    ターゲット権限(すべてのターゲットに適用可能):

    • 表示可能な任意のターゲットに接続

    • 任意の場所でのコマンドの実行

    • 任意のターゲットの表示

    リソース権限:

    • ジョブ・システム

    • 名前付き資格証明

    • Oracle Data Masking and Subsettingのリソース権限

  • データベース・ユーザーのSELECT_ANY_DICTIONARY権限

  • また、インプレース削除操作を実行するには、DBAユーザーは、EXECUTE_ANY_TYPE権限が付与されている必要があります。

データ・サブセット定義を作成するには:

  1. 「エンタープライズ」メニューから「クオリティ管理」を選択し、次に「データ・サブセット定義」を選択します。

  2. 「データ・サブセット定義」ページで「アクション」メニューを開き、「作成」を選択するか、または「作成」アイコンをクリックします。

  3. データ・サブセット定義のプロパティを定義します。

    1. 表示された一般ポップアップで必要な情報を指定し、「続行」をクリックします。

      アプリケーション・データ・モデルと関連付けられているいずれかのソース・データベースを選択できます。

      サブセット定義内でマスキングを行う場合、マスク定義の作成時に使用した同じADMおよびターゲットを使用する必要があります。

    2. ジョブ名、資格証明を指定し、表示される「アプリケーション詳細コレクションのスケジュール」ポップアップでスケジュールを指定して、「発行」をクリックします。

      新しい資格証明を使用する場合は、「新規資格証明」オプションを使用します。それ以外の場合は、「優先資格証明」オプションまたは「名前付き資格証明」オプションを使用します。

    容量の見積りの収集ジョブが実行され、データ・サブセット定義ページが表示されます。表に定義が表示され、「最新のジョブ・ステータス」列に、選択されているスケジュール・オプション、およびジョブを完了するために必要な時間に応じて、「スケジュール済」、「実行中」または「成功」が示されます。

  4. 表内の定義を選択し、「アクション」メニューを開き、「編集」を選択します。

    「データベース・ログイン」ページが表示されます。

  5. 優先資格証明を設定していない場合は「名前付き資格証明」または「新規資格証明」を選択し、「ログイン」をクリックします。

  6. 「編集」ページの「アプリケーション」サブページで、アプリケーションを次のように「使用可能」リストから「選択済」リストへ移動します。

    • データのマスキングのみを行う(サブセット化は行わず)場合は、すべてのアプリケーションを選択します。

    • データのサブセット化のみを行う(マスキングは行わず)場合は、必要な適切なアプリケーションを選択します。

    • データのサブセット化およびマスキングを両方とも行う場合、マスキング定義で必要なアプリケーションを選択する必要があります。

    アプリケーション・スイート、アプリケーションまたはアプリケーション・モジュールの名前はアプリケーション・データ・モデル内に保持されています。

  7. 「オブジェクト・ルール」タブをクリックします。

    注意:

    マスキングのみを行う場合は、すべての行が含まれるようにデフォルトの表ルール・オプションを設定し、手順13に進みます。「列マスク・ルール」タブ、「ルール・パラメータ」タブおよび「オブジェクト・ルール」タブ上のその他の機能は、特にサブセッティングに関連があります。

    ここでルールを追加し、サブセットに含めるデータを定義できます。

  8. 「アクション」を選択し、「作成」を選択して「オブジェクト・ルール」ポップアップを表示するか、「作成」アイコンをクリックします。

    1. ルールを指定するアプリケーションを選択します。

      すべてのオブジェクト、特定のオブジェクトまたは特定のオブジェクト・タイプとルールを関連付けます。

    2. 「すべてのオブジェクト」を選択した場合は、「含める行」セクションで、本番データの一般的なサンプルのニーズに合わせて、最適なオプションを選択します。すべての行を含めない場合は、行の割合を指定することで一部の列を含めることができます。より細かいレベルで、region_id=6などのWhere句を指定できます。

      Where句の指定の詳細は、手順8fを参照してください。

    3. オブジェクト・タイプとして「指定済」を選択した場合、選択したアプリケーションからの表がドロップダウン・リストに表示されます。

      選択した表がパーティション化されている場合は、「パーティションの追加/削除」をクリックし、サブセットに含める必要のあるオブジェクトのパーティションおよびサブパーティションを選択します。

    4. 「関連行を含む」セクションで、次のいずれかを実行します。

      • 「祖先および子孫オブジェクト」を選択する

        このルールは、親列および子列に影響を与えますが、参照整合性が保持され、サブセットの一部として子列も選択されます。

      • 「祖先オブジェクトのみ」を選択する

        このルールは、親列にのみ影響し、参照整合性が保持されます。

      「関連行を含む」チェック・ボックスを無効にすると、参照整合性が保持されない場合があります。ただし、その後追加のルールを指定して、参照整合性をリストアすることもできます。Where句を指定するかどうかによって、このチェック・ボックスを無効にできます。

    5. Where句を指定する場合、次の手順に進みます。そうでない場合は、手順9に進みます。

    6. 必要に応じて、句にパラメータを指定します。

      たとえば、従業員IDの値をemployee_id=:emp_idとして指定する場合、デフォルトの100に問合せ値を入力できます。

      • 「行」ボタンを選択して、employee_id=:emp_idを入力します。

      • 「OK」をクリックしてルールを保存し、「オブジェクト・ルール」タブに戻ります。

        これが新しいルールである場合、「バインド変数emp_idに対応するルール・パラメータは、サブセットを生成する前に作成する必要があります。」という警告が表示されます。

      • 表ルールを選択して、「ルール・パラメータ」タブをクリックしてから「作成」をクリックします。

        ルール・パラメータのプロパティ・ポップアップが表示されます。

      • 「名前」にemp_id、「値」に100を入力します。

        注意:

        emp_idの前にあるコロン(:)はWhere句内にのみ存在し、新規ルール・パラメータの作成時には必要ありません。

      • 「OK」をクリックしてプロパティを保存すると、「ルール・パラメータ」タブに表示されます。

      • 手順10に進みます。

  9. 「OK」をクリックしてルールを保存し、「オブジェクト・ルール」タブに戻ります。

    リスト内に新規ルールが表示されます。その下の表に、関連オブジェクトが表示されます。オブジェクトからの関連行は、サブセット・データベース内の参照整合性を維持するために、サブセットに含まれています。

  10. 「オブジェクト・ルール」タブの「関連オブジェクト」セクションで、サブセット内の祖先および子孫のレベルを制御することで、サブセットのサイズを管理できます。表内の各ノードにはチェック・ボックスがあります。デフォルトでは、チェック・マークで示されたように、すべてのノードはサブセットに含まれます。サブセットからノードを除外するには、チェック・ボックスを選択解除します。選択解除オプションは親行には無効になります(右側の結合列は親行および子行を識別します)。また、サブレットのコンテンツに次のような他の絞込みを行うこともできます。

    • 「親オブジェクトの除外を許可」をクリックします。これにより、グレー表示されていたチェック・マークが有効になります。チェック・ボックスを選択解除することによって、サブセットから親行を選択して除外できます。

    • 表内のノードを選択し、子孫の追加をクリックして、関連行を含めます。開いているダイアログで適切に選択して、「OK」をクリックします。

    これらの絞込みを行うと、右側の列は、サブセットの容量の見積りへの影響を反映します。また、「関連オブジェクト」セクションは、祖先および子孫の表の処理順序を示し、各オブジェクトを含めることの影響が詳細に表示されます。絞込みが終了したら、「容量の見積もり」タブに移動して、サブセットの全体のサイズへの影響の、より詳細な粒度を表示します。

  11. 「オブジェクト・ルール」タブの「デフォルト・オブジェクト行」セクションで、サブセットに定義されたルールの影響を受けないオブジェクトを含めるか除外するかを選択します。

    「すべての行を含む」オプションを選択すると、オブジェクトのすべての行がサブセットの一部として選択されます。

    これは、グローバル・ルールで、サブセット全体に適用されます。すべてのルールの有効範囲が「指定しない」の場合、「すべての行を含む」オプションのみを選択できます。「オブジェクト・ルール」ポップアップで「関連行を含む」オプションの選択を解除すると、有効範囲が「なし」に設定されます。

    注意:

    列ルールを持つサブセット定義の場合は(手順12を参照)、対応するオブジェクトが含まれるように、オブジェクト・ルールを使用してください。必要に応じて、デフォルトのオブジェクト・ルール・オプションを使用して、オブジェクト・ルールの影響を受けないすべてのオブジェクトを含めることもできます。

  12. オプション: インライン・マスキングをサブセット定義の一部として実行するには、「列マスク・ルール」タブをクリックします。

    1. 「作成」をクリックし、スキーマ内の列をフィルタ処理するための検索基準を入力します。通常これらは、CLOBやBLOBなどの垂直列です。

      注意:

      マスキング定義(手順13を参照)のかわりに列マスク・ルールを使用する場合、特定の表で選択できるのは10列までです。この制限は、エクスポート・メソッドに該当し、インプレース削除メソッドには該当しません。

      「OK」をクリックします。

    2. 列の検索結果で行を1つ以上選択し、「マスキング・フォーマットの管理」をクリックします。

    3. ポップアップ・ダイアログで、列に適用するマスキング・フォーマットと値を選択します。複数選択する場合は、1つのフォーマットがすべての列に対して適切であることが必要です。列を複数選択する場合は、選択する列のルール・フォーマットを選択された列に適用できることを確認してください。コンプライアンスに準拠するには、nullではなく一意の列(フラグ)を使用します。

      「OK」をクリックして、列にマスキング・フォーマットを適用します。

  13. オプション: サブセッティング操作の一部にマスキング定義を含めるか、ソース・データでのみマスキングを実行するには、「データ・マスキング定義」 タブをクリックします。

    1. 「追加」をクリックします。

    2. ポップアップ・ダイアログで、適切な定義を取得する検索基準を入力します。必要なラジオ・ボタン(「すべて」または「任意」)を必ず選択してください。インライン・マスキングでは、複合マスキングを除く、すべてのフォーマットがサポートされています。

      注意:

      エクスポート・メソッドを使用する場合、マスキング定義内のどの表のマスクされた列数も10を超えないようにする必要があります。この制限は、インプレース削除メソッドには該当しません。

      「OK」をクリックします。

    検索結果が「データ・マスキング」表に表示されます。

  14. 「容量の見積もり」タブをクリックします。

    • 「推定サブセット・サイズMB」列の値に注意してください。容量の見積りは、オプティマイザ統計に依存し、ヒストグラム統計が存在する場合は、実際のデータの配分のみが計算されます。

    • 新規ルールを追加する場合は常に、更新値の容量の見積りを再確認します。

    • 「容量の見積もり」サブページのデータは、一番大きなアプリケーションが一番上に表示されるようにソートされています。

    注意:

    容量の見積りは、dbms_stats.gather_table_statsが使用されている場合にのみ正確です。また、データ・マスキングが使用されている場合、その影響は容量の見積りに反映されません。

    Where句とそれに続くルール・パラメータ・プロパティを指定すると、「ルール・パラメータ」タブに含まれる値で容量の見積もりサブページが更新されます。

  15. オプション: 「サブセット前/後スクリプト」タブをクリックします。

    • サブセット・データを選択する前にサブセット・データベースで実行するサブセット前スクリプトを指定できます。

    • サブセット・データをアセンブルした後にサブセット・データベースで実行するサブセット後スクリプトを指定できます。

    • どちらのスクリプト・タイプも、ソース・データベースで実行されます。

  16. 「戻る」をクリックします。

    定義が完了し、「データ・サブセッティング定義」表に表示されます。

これで、スクリプトの生成を続行できます。または、今後使用するために、スクリプトを保存することも可能です。どちらの場合でも、ダンプ・ファイルにデータをエクスポートするか、ターゲット・データベースからデータを削除するかを決定する必要があります。

ヒント:

たとえば、4TBの非常に大きなデータベースがあり、10%などの少量の行をエクスポートする場合、エクスポート・メソッドを使用すると利便性が高まります。インプレース削除メソッドを使用するには、3.6TBのデータが必要で、エクスポート・メソッドのように速くは行われません。

削除されるデータの量がデータ・サイズ全体の少量である場合は、インプレース削除メソッドをお薦めします。

インプレース削除をリモートで実行するか、それをスクリプト化する場合、EMCLI動詞があります。

サブセット・スクリプトの生成

サブセット・スクリプトを生成するためにジョブを準備して発行するには、次の手順に従います。

  1. 表内の定義を選択し、「アクション」メニューを開き、「サブセットの生成」を選択します。サブセット・モード・ポップアップが表示されます。
  2. サブセット・モデルの作成に使用したものと同じターゲット・データベースか、表スキーマやオブジェクトがこのデータベースに類似しているターゲット・データベースを選択します。
  3. エクスポート・ファイルへサブセット・データを書き込む方法とターゲット・データベースからデータを削除する方法のどちらを使用してサブセットを作成するかを決定します。

    データの削除を選択すると、本番データベースではなく本番データベースのクローン・コピーから不要なデータを削除することにより、インプレース・サブセットが作成されます。ルールを満たすデータのみが保持されます。このオプションは、本番データベースに対しては決して使用しないでください。

    優先資格証明を設定していない場合は、名前付き資格証明または新規資格証明を選択します。

    「ルール・パラメータ」タブからパラメータを定義した場合、それらのパラメータは下にある表に表示されます。パラメータの値は、「値」列の関連するフィールドをクリックすると変更できます。

  4. 「続行」をクリックして「パラメータ」ポップアップにアクセスします。ポップアップのコンテンツは、前の手順で、エクスポートと削除のどちらのオプションを選択したかに応じて異なります。

    「エクスポート・ファイルへのサブセット・データの書込み」の場合は、必要な情報を指定し、「続行」をクリックしてジョブをスケジュールします。

    • エクスポート・ダンプを保存するサブセット・ディレクトリを指定します。ドロップダウン・リストは、アクセス権を持つディレクトリ・オブジェクトで構成されます。カスタムのディレクトリ・パスを選択することも可能です。外部ディレクトリを使用して処理を高速化する場合は、チェック・ボックスをクリックします。推奨されるデフォルト: DATA_PUMP_DIR

    • デフォルトをオーバーライドする場合、適切な値を指定します。エクスポート・ファイルの名前を入力します。最大ファイル・サイズをMB単位で指定します。エクスポート・ジョブのために、アクティブな実行操作の最大スレッド数を指定します。これにより、リソース消費と経過時間のバランスを取ることができます。

    • ダンプ・ファイルの圧縮および暗号化を有効にするかどうかを選択します。該当する場合は、暗号化パスワードを入力して確認します。デフォルトでは、ログ・ファイルの生成が選択されています。

    「ターゲット・データベースからのデータの削除」の場合は、必要な情報を指定し、「続行」をクリックしてジョブをスケジュールします。

    • サブセット・スクリプトを保存するサブセット・ディレクトリを指定します。ドロップダウン・リストは、アクセス権を持つディレクトリ・オブジェクトで構成されます。カスタムのディレクトリ・パスを選択することも可能です。推奨されるデフォルト: DATA_FILE_DIR

    • 先に進むには選択したターゲットが本番データベースでないことを示すチェック・ボックスを有効にする必要があります。

  5. 「続行」をクリックして「サブセット・スケジュールの生成」ポップアップからジョブをスケジュールし、「発行」をクリックします。削除オプションの場合は、暗号化シードを指定して確認する必要があります。

    データ・サブセット定義ページが再表示され、「最新のジョブ・ステータス」列に、サブセット・ジョブが実行中であることに続き、このジョブが成功したことが示されます。

この手順の実行後、生成したエクスポート・ファイルを使用してサブセット・データベースをいつでも作成できるようになります。

サブセット・スクリプトの保存

サブセット・スクリプトを保存するためにジョブを準備して発行するには、次の手順に従います。

  1. 表内の定義を選択し、「アクション」メニューを開いて、サブセット・スクリプトの保存を選択します。サブセット・モード・ポップアップが表示されます。

  2. サブセット・モデルの作成に使用したものと同じターゲット・データベースか、表スキーマやオブジェクトがこのデータベースに類似しているターゲット・データベースを選択します。

  3. エクスポート・ファイルへサブセット・データを書き込む方法とターゲット・データベースからデータを削除する方法のどちらを使用してサブセットを作成するかを決定します。

    データの削除を選択すると、本番データベースではなく本番データベースのクローン・コピーから不要なデータを削除することにより、インプレース・サブセットが作成されます。ルールを満たすデータのみが保持されます。このオプションは、本番データベースに対しては決して使用しないでください。

    優先資格証明を設定していない場合は、名前付き資格証明または新規資格証明を選択します。

    「ルール・パラメータ」タブからパラメータを定義した場合、それらのパラメータは下にある表に表示されます。パラメータの値は、「値」列の関連するフィールドをクリックすると変更できます。

  4. 「続行」をクリックして「パラメータ」ポップアップにアクセスします。ポップアップのコンテンツは、前の手順で、エクスポートと削除のどちらのオプションを選択したかに応じて異なります。

    「エクスポート・ファイルへのサブセット・データの書込み」の場合は、必要な情報を指定し、「続行」をクリックしてジョブをスケジュールします。

    • エクスポート・ダンプを保存するサブセット・ディレクトリを指定します。ドロップダウン・リストは、アクセス権を持つディレクトリ・オブジェクトで構成されます。カスタムのディレクトリ・パスを選択することも可能です。外部ディレクトリを使用して処理を高速化する場合は、チェック・ボックスをクリックします。推奨されるデフォルト: DATA_PUMP_DIR

    • デフォルトをオーバーライドする場合、適切な値を指定します。エクスポート・ファイルの名前を入力します。最大ファイル・サイズをMB単位で指定します。エクスポート・ジョブのために、アクティブな実行操作の最大スレッド数を指定します。これにより、リソース消費と経過時間のバランスを取ることができます。

    • ダンプ・ファイルの圧縮および暗号化を有効にするかどうかを選択します。該当する場合は、暗号化パスワードを入力して確認します。デフォルトでは、ログ・ファイルの生成が選択されています。

    「ターゲット・データベースからのデータの削除」の場合は、必要な情報を指定し、「続行」をクリックしてジョブをスケジュールします。

    • サブセット・スクリプトを保存するサブセット・ディレクトリを指定します。ドロップダウン・リストは、アクセス権を持つディレクトリ・オブジェクトで構成されます。カスタムのディレクトリ・パスを選択することも可能です。推奨されるデフォルト: DATA_FILE_DIR

    • 先に進むには選択したターゲットが本番データベースでないことを示すチェック・ボックスを有効にする必要があります。

  5. 「続行」をクリックします。進行状況インジケータにより、スクリプトの生成が追跡されます。完了すると、スクリプトの生成結果が「ファイル」表にリストされます。

  6. 「ダウンロード」をクリックします。表示される「ファイルのダウンロード」ポップアップで、「保存」をクリックします。

  7. 表示される「別名保存」ポップアップで、ファイルの場所にナビゲートし、「保存」をクリックします。

    スクリプト(SubsetBundle.zip)を含むファイルが、デスクトップの指定された場所に表示されます。

保存したスクリプトを後から実行するには、次の手順に従います。

  1. ZIPファイルをターゲット・データベースに移動し、必要な権限を持っているディレクトリに抽出します。
  2. ファイルを抽出したディレクトリに移動します。
  3. SQLコマンドラインから次のスクリプトを実行します。
    subset_exec.sql
    

    生成されたパラメータ設定を変更する場合は、スクリプトを実行する前に、テキスト・エディタで次のファイルを編集して変更できます。

    subset_exec_params.lst
    

サブセット・テンプレートおよびダンプのインポートとエクスポート

サブセット・テンプレートは、アプリケーション、サブセット・ルール、ルール・パラメータおよび前処理スクリプトまたは後処理スクリプトから構成されるサブセットの詳細を含むXMLファイルです。サブセット定義を作成して、サブセット・データを書き込んでファイルをエクスポートするよう指定すると、エクスポート・ファイルは後で再利用してインポートできるテンプレートになります。テンプレートをインポートして、異なるデータベースでサブセット操作を実行します。

通常、ワークフローは、ADMの作成中に、まず以前にエクスポートした他のXMLファイルであるADMテンプレートをインポートします。その後、データ・サブセット定義の作成中に、関連するサブセット・テンプレートをインポートします。かわりに、サブセット・テンプレートの作成中に、既存のADMを選択(ADMのインポート・フローを省略)することもできます。

注意:

サブセット定義およびサブセット・ダンプのエクスポートおよびインポート操作をリモートで実行またはスクリプト化する場合に、これらの操作を実行するためのEMCLI動詞があります。

サブセット定義のインポート

次の3つのインポートの方法があります。

  • デスクトップからのサブセット定義XMLファイルのインポート

  • サブセット・ダンプのインポート

  • ソフトウェア・ライブラリからのサブセット定義XMLファイルのインポート

デスクトップからサブセット定義XMLファイルをインポートするには、次の手順に従います。

  1. 「アクション」メニューから「インポート」を選択し、次に「デスクトップのファイル」を選択します。

  2. 表示されるポップアップで、次を行います。

    • サブセット定義の名前を指定します

    • サブセットが元にするADM

    • ソース・データベース

    • サブセット定義のインポート元にするデスクトップ上の場所

    • 「続行」をクリックします

  3. 表示されるポップアップで、次を行います。

    • 説明的なジョブ名を入力します(またはデフォルトを使用します)

    • 資格証明を指定します

    • ジョブをスケジュールします

    • 「発行」をクリックします

    ジョブが正常に実行されると、データ・サブセット定義ページにある表のサブセットのリストに、インポートされたサブセットが表示されます。

サブセット・ダンプをインポートするには、次の手順に従います。

  1. 「アクション」メニューから「インポート」を選択し、次に「サブセット・ダンプ」を選択します。

  2. 表示されるポップアップで、次を行います。

    • ターゲット・データベースを選択します

    • データベースおよびホスト資格証明を指定し、「ログイン」をクリックします。

    • ダンプ・ファイルの場所を指定します。ターゲット・データベース上の選択したディレクトリ、またはターゲット上のカスタム・パスを指定できます。ダンプ・ファイルの元のエクスポート・アクションで外部の場所を使用した場合、その場所も指定する必要があります。

    • 「続行」をクリックします。

  3. 表示されるポップアップで、次を行います。

    • メタデータとデータの両方をインポートするか、またはデータのみをインポートするかを選択します。データのみの場合、切り捨てるか、つまり、既存のデータをオーバーレイするか、既存のデータに追加するかどうかを示します。

    • 必要に応じて、表領域の再マッピングを実行します

    • 必要に応じて、スキーマの再マッピングを実行します

    • ログ・ファイル・オプションを選択します

    • 「続行」をクリックします

  4. 表示されるポップアップで、次を行います。

    • 説明的なジョブ名を入力します(またはデフォルトを使用します)

    • ジョブをスケジュールします

    • 「発行」をクリックします

    ジョブは、ダンプ・ファイルを読み取り、選択したターゲット・データベースにデータをロードします。

ソフトウェア・ライブラリからサブセット定義XMLファイルをインポートするには、次の手順に従います。

  1. 「アクション」メニューから「インポート」を選択し、次に「ソフトウェア・ライブラリのファイル」を選択します。
  2. 表示されるソフトウェア・ライブラリからのデータ・サブセット定義のインポート・ポップアップで、次を行います。
    • 左側で目的のサブセット定義XMLファイルを選択します

    • 右側でADMプロパティを指定します。

    • 「続行」をクリックします

  3. 表示されるポップアップで、次を行います。
    • 説明的なジョブ名を入力します(またはデフォルトを使用します)

    • 資格証明を指定します

    • ジョブをスケジュールします

    • 「発行」をクリックします

    ジョブが正常に実行されると、データ・サブセット定義ページにある表のサブセットのリストに、インポートされたサブセットが表示されます。

サブセット定義のエクスポート

次の2つのエクスポートの方法があります。

  • デスクトップへの選択したサブセット定義のエクスポート

  • ソフトウェア・ライブラリからのサブセット定義のエクスポート

XMLファイルとしてサブセット定義をデスクトップにエクスポートするには、次の手順に従います。

  1. データ・サブセット定義ページから、エクスポートするサブセット定義を選択します。

  2. 「アクション」メニューから「エクスポート」を選択し、次に「選択されたサブセット定義」を選択します。

  3. 表示されるファイル・ダウンロード・ポップアップで、「保存」をクリックします。

  4. 表示される「別名保存」ポップアップで、ファイルの場所にナビゲートし、「保存」をクリックします。

    サブセット定義がXMLファイルに変換され、デスクトップの指定された場所に表示されます。

ソフトウェア・ライブラリからサブセット定義をエクスポートするには、次の手順に従います。

  1. 「アクション」メニューから「エクスポート」を選択し、次に「ソフトウェア・ライブラリのファイル」を選択します。
  2. 表示されるソフトウェア・ライブラリからのサブセット定義のエクスポート・ポップアップで、目的のサブセット定義を選択し、「エクスポート」をクリックします。
  3. 表示されるファイル・ダウンロード・ポップアップで、「保存」をクリックします。
  4. 表示される「別名保存」ポップアップで、ファイルの場所にナビゲートし、「保存」をクリックします。

    サブセット定義がXMLファイルに変換され、デスクトップの指定された場所に表示されます。

ジョブが正常に実行されると、「データ・サブセット定義」ページの表のサブセットのリストに、サブセット・テンプレートが表示されます。

ターゲット・データベースのサブセット・バージョンの作成

サブセットが定義、分析および検証された後、サブセット操作を実行してソース・データのサブセット・バージョンを作成できます。

この手順は、次の条件を前提としています。

  • データベースのサブセット作成に必要なルールが含まれるサブセット定義がすでに存在しています。

  • ソースからデータを抽出し、ターゲット・データベースのサブセット・バージョンを作成するのに必要な権限があります。サブセット技術に応じて、様々なレベルのファイルまたはデータベース権限を作成できます。次の権限が必要となります。

    • ターゲット権限(すべてのターゲットに適用可能):

      • 表示可能な任意のターゲットに接続

      • 任意の場所でのコマンドの実行

      • 任意のターゲットの表示

      リソース権限:

      • ジョブ・システム

      • 名前付き資格証明

      • Oracle Data Masking and Subsettingのリソース権限

      注意:

      Enterprise Manager Cloud ControlユーザーのためのEM_ALL_OPERATOR権限には、前述のすべての権限が含まれています。

    • データベース・ユーザーのSELECT_CATALOG_ROLE

    • データベース・ユーザーのSELECT ANY DICTIONARY権限

    • ターゲット・データベース・ユーザーのデータベースのDBA権限

  • また、インプレース削除操作を実行するには、DBAユーザーは、EXECUTE_ANY_TYPE権限が付与されている必要があります。

ターゲット・データベースのサブセット・バージョンを作成するには:

  1. サブセット定義を選択し、これをソース・データベースに関連付けることにより、サブセット操作を作成します。

    ソース・データベースに対してサブセット定義が検証され、スキーマの差異にフラグが設定されます。このアソシエーションは、アプリケーション開発者が作成した元のアソシエーションとは異なる可能性があります。

  2. 定義を編集し、定義されているスキーマをテスト・スキーマに再マップします。

    データベースに接続するよう求められ、このデータベースは、サブセット定義に関連付けられます。これにより、ベンダーによって指定されたスキーマ名をデータベース内の実際のスキーマ名に再マップすることもできるようになります。

  3. 様々なサブセット作成技術の1つを選択します。

    • データ・ポンプ・ダンプ・ファイルとそれに続くデータ・ポンプ・インポート

    • インプレース削除(ルール条件に一致しない指定したデータベースの行が削除される)

    • 移動中のサブセット作成またはリフレッシュ

    適切なレスポンス・ファイル(SQLスクリプト、データ・ポンプ・スクリプトまたはOSスクリプト)が生成され、操作を続行するのに適した権限についてターゲット・システムが確認され、ターゲットのサイズが見積もられます。

  4. 分析を確認した後、サブセット・プロセスを発行します。

    Enterprise Managerにより、サブセット・プロセスが実行され、実行の結果がまとめられます。

アプリケーション・データ・モデルによるサブセット定義の同期化

たとえば、ADMへの変更、参照関係の追加または表の削除で、失効したサブセット定義をレンダリングできます。「サブセット定義」ページには、この条件が明確に示され、サブセット名および無効なステータスの横にロック・アイコン表示されます。また、「アクション」メニューのほとんどのメニュー項目は無効になります。ステータスを有効に戻し、サブセット定義のロック解除するには、関連付けられたADMと定義を同期する必要があります。

  1. 「サブセット定義」ページで、ロックされたサブセット定義を選択します。
  2. 「アクション」メニューから、「同期化」を選択します。
  3. ジョブの発行ダイアログを完了し、「発行」をクリックします。

    ジョブが完了すると、サブセット定義のロックが解除され、使用可能になります。

サブセット定義での権限の付与

他のユーザーがアクセス権を持つことができるように、作成するサブセット定義で権限を付与できます。これを行うには、少なくともサブセット定義にデザイナ権限を持つEnterprise Manager管理者である必要があります。

  1. 「エンタープライズ」メニューから、「クオリティ管理」「データ・サブセット定義」の順に選択します。
  2. 権限を付与するサブセット定義を選択します。
  3. 「アクション」メニューから、「権限付与」を選択します。
    • オペレータ: 選択したロールまたは管理者にサブセット定義のオペレータ権限を付与します(権限受領者は定義を表示およびコピーできますが、編集することはできません)。

    • デザイナ: 選択したロールまたは管理者にサブセット定義のデザイナ権限を付与します(権限受領者は定義を表示および編集できます)。

  4. 開いたダイアログで、タイプ(管理者、ロール、あるいはその両方)を選択します。必要に応じて、名前で検索します。選択し、「選択」をクリックします。

    これらの選択は、サブセット定義に対する権限を持ちます。

  5. 前に付与された権限を拒否するには、「取消」アクションを使用します。

テスト・データ管理領域内の権限の詳細は、「Oracle Data Masking and Subsettingのアクセス権」を参照してください。

インライン・マスキングおよびサブセット化について

機密データのマスキングと同時に、データベースのサイズを減らすことができます。これは、テスト用にマスクされた大きい本番データベースの格納に関連するハードウェアのコストを大幅に減らすと同時に、エクスポートされた本番データを曖昧にする、二重の役割を果たします。

注意:

インライン・マスキングは、Oracle Database 11g 以上のリリースでのみ使用可能です。

データ・マスキングをサブセット化と統合する利点は、次のとおりです。

  • 単一のフローでテスト・システムを準備します

  • テストの目的で、大きいサイズのマスクされたデータベースを維持する必要がなくなります

  • ダンプ・ファイルの形式でエクスポートされたデータは、機密データを公開せずに、複数のデータベースにインポートできます

  • 大きいデータ・チャンクを含む列を破棄する機能によって、サブセット化が強化されます

サブセットの作成中に、1つ以上のデータ・マスキング定義を選択できます。マスキング定義は、現在のサブセット定義と同じADMに基づいている必要があります。同時に、CLOB列およびBLOB列をNull (または、Fixed StringやFixed Numberなど、別のサポートされた形式)に設定するよう、列ルールを定義することによって、サブセット・サイズを大幅に減らすことができます。

次の2つの方法で、サブセットを生成します。

  • エクスポート・ダンプ: マスキング定義がサブセット・モデルの一部である場合、マッピング表は生成中に作成され、結果となるダンプには、マスクされた値が含まれます。

  • 配置された削除: 本番データベースのクローニングされたコピーでサブセット化が実行されます。データ・マスキングがサブセット・モデルの一部である場合、事前生成されたマスキング・スクリプトがターゲット上で連続して実行されます。

インライン・マスキングの利点は、次のとおりです。

  • 機密データは本番環境に残らないため、公開されません(エクスポート・ダンプ・オプション)。

  • 一時的にデータをステージング領域に格納する必要がありません。

  • エクスポートされたデータは、後で複数の環境にインポートできます。

  • データのサブセットのみをエクスポートする表ルールを定義でき、列ルールを使用してさらにボリュームを減らして、大きい垂直列を削除できます。

  • 同じデータを異なる方法でマスクし、異なるテスト・データベースにインポートできます。

  • プロビジョニング・フレームワークを使用して、機密ではないデータを含む、縮小された参照用の完全なデータベースの複数のコピーを作成する(配置された削除)か、またはダンプ・ファイルを複数のデータベースにインポート(エクスポート・ダンプ)できます。

「データ・サブセット定義の作成」の項では、サブセット定義を作成する際に、データのサブセット化およびデータ・マスキングも一緒に実行する手順を説明します。データ・マスキングおよびデータ・マスキングの定義の作成の詳細は、「データ・マスキング」を参照してください。

インライン・マスキングおよびサブセット化のシナリオ

後述のシナリオでは、機密列の詳細が取得される本番(またはテスト)データベース用に、アプリケーション・データ・モデル(ADM)が存在すると想定します。示す手順は、高レベルです。マスキング定義の作成の詳細は、「アプリケーション・データ・モデルおよびワークロードによるマスキング」、サブセット定義の作成および編集の詳細は、「データ・サブセット定義の作成」を参照してください。

本番データのマスクおよびエクスポート

セキュリティ管理者として、マスクされた値を含むデータをエクスポートすることによって、本番データベースのコピーを作成します。つまり、エクスポート・ダンプには、マスクされた値のみがあり、機密データはありません。

  1. マスキング定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 機密列(依存列および推奨されるマスキング・フォーマットを含む)を検索および選択します。

    3. 推奨されるフォーマットを確認し、必要に応じて編集します。

    4. 結果を保存します。

  2. サブセット定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 作成されたサブセット・ジョブを発行します。

  3. サブセット化定義を編集します。

    「データ・マスキング」タブで、マスキング定義を検索および選択します。システム検証では、複数のマスキング定義を使用する、重複した列をチェックします。

  4. 「エクスポート」オプションを使用して、サブセットを生成します。

結果をまとめると、次のようになります。

  • マッピング表およびマッピング関数を作成するスクリプトを生成および実行します。各マッピング関数に列をマップする表も作成します。

  • サブセット化およびマスキングのスクリプトを、ターゲット・データベースにコピーします。

  • マッピング関数を使用して機密データをマスクされた値で置き換えて、本番データのエクスポート・ダンプを生成します。

テスト・データベース上のマスクおよび削除操作

セキュリティ管理者として、機密情報をマスクすることによって、使用可能なテスト・データベースを作成します。結果となるデータベースには、マスクされた値のみがあり、機密データはありません。

  1. クローン・データベース上でマスキング定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 機密列(依存列および推奨されるマスキング・フォーマットを含む)を検索および選択します。

    3. 推奨されるフォーマットを確認し、必要に応じて編集します。

    4. 保存します。

  2. サブセット定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 作成されたサブセット・ジョブを発行します。

  3. サブセット化定義を編集します。

    「データ・マスキング」タブで、マスキング定義を検索および選択します。システム検証では、複数のマスキング定義を使用する、重複した列をチェックします。

  4. 「配置された削除」オプションを使用して、サブセットを生成します。

結果をまとめると、次のようになります。

  • サブセット化およびマスキングのスクリプトを、ターゲット・データベースにコピーします。

  • サブセット・ルール(指定されている場合)に基づき、データのサブセット化を実行します。

  • 事前生成されたデータ・マスキング・スクリプトをターゲット・データベース上で連続して実行します。

  • テストで使用するための本番データベースのマスクされたコピーを作成します。

機密データのマスクおよび本番データベースのサブセットのエクスポート

セキュリティ管理者として、マスクされた値を含む本番データのサブセットをエクスポートすることによって、本番データベースのコピーを作成します。

  1. マスキング定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 機密列(依存列および推奨されるマスキング・フォーマットを含む)を検索および選択します。

    3. 推奨されるフォーマットを確認し、必要に応じて編集します。

    4. 保存します。

  2. サブセット定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 作成されたサブセット・ジョブを発行します。

  3. サブセット定義を編集します。

    1. 領域の見積りとなる表ルールを定義します。

    2. 「データ・マスキング」タブで、マスキング定義を検索および選択します。システム検証では、複数のマスキング定義を使用する、重複した列をチェックします。

  4. 「エクスポート」オプションを使用して、サブセットを生成します。

結果をまとめると、次のようになります。

  • マッピング表およびマッピング関数を作成するスクリプトを生成および実行します。各マッピング関数に列をマップする表も作成します。

  • サブセット化およびマスキングのスクリプトを、ターゲット・データベースにコピーします。

  • マッピング関数を使用して機密データをマスクされた値で置き換えて、本番データのエクスポート・ダンプを生成します。

テスト・データベース上のサブセット、マスクおよび削除操作の実行

セキュリティ管理者として、機密情報をマスクすることによって、使用可能なテスト・データベースを作成します。インポートの際、データベースには、マスクされた値のみがあり、機密データはありません。

  1. マスキング定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 機密列(依存列および推奨されるマスキング・フォーマットを含む)を検索および選択します。

    3. 推奨されるフォーマットを確認し、必要に応じて編集します。

    4. 保存します。

  2. サブセット定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 作成されたサブセット・ジョブを発行します。

  3. サブセット定義を編集します。

    1. 領域の見積りとなる表ルールを定義します。

    2. 「データ・マスキング」タブで、マスキング定義を検索および選択します。システム検証では、複数のマスキング定義を使用する、重複した列をチェックします。

  4. 「配置された削除」オプションを使用して、サブセットを生成します。

結果をまとめると、次のようになります。

  • サブセット化およびマスキングのスクリプトを、ターゲット・データベースにコピーします。

  • サブセット・ルール(指定されている場合)に基づき、データのサブセット化を実行します。

  • サブセットの完了にに続いて、事前生成されたデータ・マスキング・スクリプトをターゲット・データベース上で連続して実行します。

  • マスキング定義およびサブセット化ルールを適用すると、マスクされたデータベースはサイズが削減されます。

列ルールの適用

セキュリティ管理者として、大きいサイズの列を選択し、それにNULLまたは固定値を設定することによって、ターゲット指定されたサブセットを作成します。表ルールは、さらにデータベース・サイズを減らすためにも使用できます。サイズ減少の影響は、すぐに明白となり、最後のサブセットに適用されます。

  1. サブセット定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 作成されたサブセット・ジョブを発行します。

  2. サブセット定義を編集します。

    1. 「表ルール」タブをクリックし、必要に応じて既存のオプションから選択します。

    2. 「列ルール」タブをクリックし、次に「作成」をクリックします。

    3. 大きいサイズの列を検索するためのフィルタ基準を指定し、結果表で目的の列を選択します。

    4. 「マスキング・フォーマットの管理」をクリックし、ドロップダウン・リストからフォーマットを選択します。選択内容に適している場合、値を入力します。

    5. 「OK」をクリックし、更新された領域の見積りを確認します。

  3. 「エクスポート」オプションまたは「配置された削除」オプションのいずれかを使用して、サブセットを生成します。

結果をまとめると、次のようになります。

  • 本番データのエクスポート・ダンプ/サブセットを生成します。

  • 列ルールがターゲット・データベースに適用されます。

  • 表ルールも適用する場合、結果となるサブセットには、表ルールと列ルールを組み合せた効果が反映されます。

インライン・マスキングを使用するサブセット定義のエクスポート

セキュリティ管理者として、再利用するためのサブセット定義をエクスポートします。

  1. サブセット定義を作成します。次のことを意味します。

    1. 適切なADMを選択します。

    2. 作成されたサブセット・ジョブを発行します。

  2. サブセット定義を編集します。

    1. 領域の見積りを計算するためのルールを作成します。

    2. 「データ・マスキング」タブで、マスキング定義を検索および選択します。システム検証では、複数のマスキング定義を使用する、重複した列をチェックします。

  3. サブセット・ホームページでサブセット定義を選択し、エクスポートします。

サブセット定義は、次を含む可能性のあるXMLファイルとして、クライアント・マシンに保存されます。

  • 選択したアプリケーションに関する情報

  • ルールおよびルール・パラメータ

  • 選択したマスキング定義

  • nullに設定する列

  • 前処理スクリプトおよび後処理スクリプト

列ルールを使用する場合、リスト内のマスキング定義が置き換えられます。

インライン・マスキングを使用するサブセット定義のインポート

セキュリティ管理者として、以前にエクスポートしたサブセット定義のレプリカを作成するために、サブセット定義XMLファイルをインポートします。

  1. サブセット定義をインポートします。

  2. エクスポートされたマスキング定義を含むエクスポートされたXMLテンプレートを選択します。システム検証では、次を行います。

    • 複数のマスキング定義を使用する、重複した列をチェックします。

    • 指定されたマスキング定義は、現在のサブセット・モデルと同じADMの一部であることを確認します。

  3. サブセット・モデルを作成するジョブを発行します。

結果をまとめると、次のようになります。

  • サブセット定義モデルを作成します。

  • 指定したルールを適用し、領域の見積りを計算します。

  • XMLの一部であったマスキング定義を記憶します。

サブセット・ダンプのインポート

セキュリティ管理者として、次のいずれかまたは両方を含むサブセット・ダンプをインポートします。

  • 本番データベースのマスクされたバージョン

  • 本番データベースのサブセット・バージョン

この例では、以前のエクスポート・ダンプを想定していることに注意してください。

  1. サブセットのホームページで、「アクション」メニューからサブセット・ダンプのインポートを選択します。

  2. 資格証明、ダンプ名を指定し、ダンプの場所を選択します。

  3. インポート・タイプ、表領域オプション、およびログ・ファイルの場所の詳細を指定します。

  4. ジョブをスケジュールし、発行します。

ジョブは、ダンプ・ファイルを読み取り、選択したターゲット・データベースにデータをロードします。

サブセット・スクリプト・バンドルの保存

セキュリティ管理者として、Enterprise Manager外部のターゲット・データベース上で実行できるように、サブセット・スクリプト・バンドルを保存します。

この例では、表ルールおよびマスキング定義を必要とするサブセット・モデルが存在することを前提としています。

  1. サブセットのホームページで、「アクション」メニューから「生成」を選択し、次に「サブセット」を選択します。

  2. モードのページで次のように入力します。

    1. サブセット作成の方法を示します。

    2. 使用する資格証明を指定します。

    3. ルール・パラメータを適切に指定します。

    4. 「続行」をクリックします。

  3. パラメータのページで次のように入力します。

    1. サブセット・エクスポートを保存する場所を選択します。

    2. サブセットを外部に格納する場合、チェック・ボックスをクリックして、その場所を選択します。

    3. エクスポート・ファイル名を指定します。%ワイルドカードを使用できます。

    4. 最大ファイル・サイズおよびスレッド数を指定します。

    5. ログ・ファイルを生成し、ログ・ファイル名を指定するかどうかを示します。

    6. 「続行」をクリックします。

  4. スクリプト・ファイル生成の進行状況に注意してください。完了したら、「ダウンロード」をクリックします。

  5. SubsetBundle.zipファイルを保存する場所を指定します。

ライフサイクル管理

この項では、アプリケーション・データ・モデル、データ・マスキングおよびデータ・サブセッティング定義のライフサイクル管理について説明します。

Enterprise Managerユーザーが削除または変更された場合、ユーザーはアプリケーション・データ・モデル、データ・マスキングおよびデータ・サブセッティングの定義をシステム内の別のユーザーに再割当てできます。ただし、ユーザーがアプリケーション・データ・モデル、データ・マスキングおよびデータ・サブセッティングの定義を別のユーザーに再割当てしない場合、これらの定義はSYSMANユーザーに再割当てされます。

システム内の別のユーザーへのアプリケーション・データ・モデル、データ・マスキングおよびデータ・サブセッティング定義の再割当てを試みたとき、再割当てされたユーザーがすでに同じ名前の定義を持っていた場合は、元の定義の名前が変更されます。

たとえば、ユーザーAがADM1というアプリケーション・データ・モデルを持ち、ユーザーBもADM1という名前のアプリケーション・データ・モデルを持っているとします。ユーザーBを削除し、その定義をユーザーAに割り当てることを選択した場合、元の定義ADM1は、ADM1_Bという名前に変更されます。同じ名前を持つ元の定義は、接尾辞"_"を付けられ、削除されるユーザー名を付加されます。再割当ての後、ユーザーAは、ADM1およびADM1_Bの両方の定義を持つことになります。