プライマリ・コンテンツに移動
Oracle® Database Vault管理者ガイド
11gリリース2 (11.2)
B56297-10
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 Oracle Database Vault環境でのDBA操作

この章の内容は、次のとおりです。

Oracle Database VaultのOracle Enterprise Managerとの使用

この項の内容は、次のとおりです。

Oracle Enterprise ManagerのDatabase Vault AdministratorのURLの設定

特定のDatabase Vault AdministratorのURLを使用するようにDatabase ControlまたはGrid Controlを設定できます。

  1. Oracle Enterprise ManagerからOracle Database Vaultホームページへのアクセス

    「Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス」を参照してください。

    Database VaultのURLを保存する場合:

    • Database Controlの場合: DV_OWNERまたはDV_ADMINロールが付与されているだけでなく、Enterprise Managerの管理者であることも確認します。

    • Grid Controlの場合: ターゲット・データベースでOPERATOR権限が付与されていることを確認します。

  2. 「Database Vault Administrator URL」ページにアクセスします。

    Database Vaultのホームページから、「管理」タブをクリックし、「ポリシー管理」で「Database Vault Administratorの起動」リンクをクリックします。

    「Database Vault Administrator URL」ページが表示されます。

  3. 「Database Vault Administrator URL」フィールドで、使用するDatabase Vault AdministratorのURLを入力します。

    次に例を示します。

    https://myserver.us.example.com:1148/dva
    
  4. URLをテストするには、「テストURLの起動」ボタンをクリックします。

  5. Save」ボタンをクリックします。

Oracle Database Vaultポリシーの他のデータベースへの伝播

Oracle Database VaultがOracle Enterprise Manager Grid Controlリリース10.2.0.5環境にインストールされている場合、Database VaultポリシーをDatabase Vaultで保護されている他のデータベースに伝播できます。Grid Controlを使用してDatabase Vaultポリシーを作成したり、Database Vault Administratorで通常提供されているアクションを実行することはできません。これらの機能を実行する場合は、Database Vault Administratorを使用します。

Oracle Database Vaultポリシーを他のデータベースに伝播するには、次のようにします。

  1. Oracle Enterprise ManagerからOracle Database Vault Administratorにアクセスして、DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてDatabase Vaultにログインします。

    伝播するポリシーを含むデータベースを選択したことを確認します。

    「Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス」を参照してください。

  2. Database Vaultホームページから「管理」サブページを選択します。

  3. 「管理」ページの「ポリシー伝播」で、「Database Vaultポリシー伝播」リンクを選択します。

    「ポリシー伝播」サブページの「使用可能なポリシー」領域に、手順1で選択したデータベースに作成されたOracle Database Vaultポリシーのサマリーが表示されます。ここから、ポリシーを他のデータベースに伝播できます。

  4. 「使用可能なポリシー」で、他のデータベースに伝播する各ポリシーを選択します。

    デフォルトでは、すべてのポリシーが選択されています。

    dv_oem.gifの説明が続きます
    図dv_oem.gifの説明

  5. 「宛先データベース」で「追加」ボタンをクリックします。

    dv_oem2.gifの説明が続きます
    図dv_oem2.gifの説明

  6. 「検索と選択: Database Vaultに対応した宛先データベース」で宛先データベースを検索し、ポリシーの伝播先データベースを選択します。「選択」ボタンをクリックします。

  7. 「宛先データベース」で次の処理を行います。

    1. 「宛先データベースに資格証明を適用」で、伝播するポリシーを含むDatabase Vaultデータベースの管理者のユーザー名とパスワードを入力します。

      この機能により、Database Vault管理者のユーザー名とパスワードが、選択したすべての宛先データベースに適用されます。

    2. ポリシーの伝播先データベースを選択します。

    3. 各データベースのDatabase Vault管理者のユーザー名とパスワードを入力します。

    4. 「Apply」ボタンをクリックします。

  8. 「伝播オプション」ページで、次のオプションのオン/オフを選択します。

    シードされたレルム、コマンド・ルール、ルール・セットなどに加えられた変更は、宛先データベースに伝播されません。カスタム作成されたデータのみが伝播されます。

    • 失敗時にリストアします。: ポリシーの伝播でエラーが発生した場合に、伝播がロールバックされます。つまり、宛先データベースの元のポリシーがリストアされます。このオプションを選択しない場合、宛先データベースでポリシーの伝播が続けられ、エラーは無視されます。

    • ユーザー定義ポリシーが存在する場合は、伝播をスキップします。: 宛先データベースにユーザー定義ポリシーがすでにある場合、ポリシーの伝播は試行されません。このオプションを選択しない場合、ユーザー定義ポリシーが宛先データベースにあるかどうかに関係なく、既存のポリシーはすべてクリアされ、ソース・データベースのポリシーが宛先データベースに適用されます。

    • Database VaultメトリックのEnterprise Managerメトリックしきい値を伝播します。: ソース・データベースにOracle Database Vaultメトリックしきい値が設定されている場合、これらのしきい値も宛先データベースに伝播されます。このオプションを選択しない場合、ポリシーのみが伝播され、Oracle Database Vaultしきい値は伝播されません。

  9. 「OK」ボタンをクリックします。

  10. 「確認」ウィンドウで「OK」をクリックします。

    成功または失敗を示すメッセージが表示されます。伝播が成功した場合、ポリシーは宛先データベースでただちにアクティブになります。

Oracle Database Vaultポリシーに対するEnterprise Manager Grid Controlアラートの使用

Grid Controlでは、Oracle Database Vault固有のアラートが生成されます。これらのアラートを表示するには、DV_OWNERDV_ADMINまたはDV_SECANALYSTロールが付与されている必要があります。アラートは次のとおりです。

  • Database Vaultレルム違反未遂。このアラートにより、Oracle Database Vaultセキュリティ分析者(DV_SECANALYSTロール)はDatabase Vaultデータベースでの違反試行を監視できます。アラートの影響を受けるレルムを選択し、エラー・コードを使用して様々な試行タイプに基づいてレルムをフィルタリングできます。このメトリックは、メトリックおよびポリシーの設定ページで有効化できます。デフォルトでは、レルム違反未遂は24時間ごとに収集されます。

  • Database Vaultコマンド・ルール違反未遂。このアラートの機能は、対象がコマンド・ルール違反であることを除き、Database Vaultレルム違反未遂と同じです。

  • Database Vaultレルム構成の問題。このメトリックは、レルムの構成を追跡し、構成が正しくない場合にアラートを生成します。このメトリックは、Oracle Database Vaultのインストール時に有効化され、デフォルトで1時間ごとにデータを収集します。

  • Database Vaultコマンド・ルール構成の問題。このアラートの機能は、対象がコマンド・ルールに対する構成変更であることを除き、Database Vaultレルム構成の問題と同じです。

  • Database Vaultポリシー変更。このメトリックでは、Database Vaultポリシー(レルムやコマンド・ルールに対するポリシー)に変更があると、アラートが生成されます。詳細なポリシー変更レポートが提供されます。

Enterprise Manager Grid ControlでのOracle Database Vault固有レポートの使用

Database Vaultのホームページからは、次のタイプの違反に関する情報を確認できます。

  • レルムおよびコマンド・ルール違反未遂トップ5

  • データベース・ユーザーおよびクライアント・ホストによる違反未遂トップ5

  • 違反未遂の詳細分析の時系列グラフィック・レポート

Database Vaultレポートの完全なアクセス権を持つには、DV_OWNERDV_ADMINまたはDV_SECANALYSTロールが付与されたユーザーとしてDatabase Vault Administratorにログインする必要があります。

Oracle Database Vault環境でのDBSNMPアカウント・パスワードの変更

DBSNMPユーザー・アカウントのパスワードを変更するには、あらかじめ、このアカウントからDV_MONITORロールを取り消しておく必要があります。Oracle Database Vault環境では、DBSNMPユーザー・アカウントにはDV_MONITORロールが付与されます。(DBSNMPユーザーが自分自身のパスワードを変更する場合は、DV_MONITORロールを取り消さずにすぐに変更できます。)

DBSNMPユーザー・パスワードを変更するには、次のようにします。

  1. DV_OWNERロールを付与されているアカウントを使用して、SQL*Plusにログインします。

  2. DBSNMPユーザー・アカウントからDV_MONITORロールを取り消します。

  3. DV_ACCTMGRロールを付与されているユーザーとして接続し、DBSNMPユーザー・アカウントのパスワードを変更します。

  4. DV_OWNERユーザーとして接続し、DV_MONITORロールをDBSNMPユーザー・アカウントに再び付与します。

一時的にOracle Database Vaultを無効にして、ALTER USER権限を付与されているユーザーとしてログオンし、DBSNMPパスワードを変更することもできます。その後、Database Vaultを再び有効にします。詳細は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

Oracle Database Vault環境でのOracle Data Pumpの使用

この項の内容は次のとおりです。

Oracle Database Vault環境でのOracle Data Pumpの使用について

Oracle Data Pumpを使用するデータベース管理者がOracle Database Vault環境でデータをエクスポートおよびインポートする場合、Oracle Data Pumpの標準の権限に加えて、Oracle Database Vault固有の認可が付与されている必要があります。(Oracle Database Vaultが有効になっている場合、レガシーのEXPIMPユーティリティを使用できないことに注意してください。)Oracle Database Vault環境でデータ・ポンプを使用するためにユーザーの認可を確認するには、DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューを問い合せます。

付与する必要のある権限レベルは、次のシナリオによって決まります。

  • データを別のスキーマにインポートするユーザーは、BECOME USERシステム権限を持つ必要があります。ユーザーに付与された権限を確認するには、USER_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。

  • データベース管理者は、レルム保護なしのスキーマでデータをエクスポートまたはインポートします。この場合、Oracle Data Pumpの標準の権限のみ必要で、Oracle Database Vault権限は不要です。

  • データベース管理者は、保護スキーマでデータをエクスポートまたはインポートします。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用して、このユーザーにDatabase Vault固有の権限を付与する必要があります。この認可は、EXPDPIMPDPの両方のユーティリティに適用されます。後から、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERプロシージャを使用してこの権限を取り消すことができます。

  • データベース管理者は、データベース全体の内容をエクスポートまたはインポートします。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限に加えて、このユーザーにDV_OWNERロールを付与する必要があります。インポート操作の場合、このユーザーはBECOME USER権限を持つ必要があります。

データベース管理者に対するOracle Data Pumpの使用の認可

データベース管理者がOracle Database Vault環境でData Pumpを使用することを認可するには、次のようにします。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてSQL*Plusにログインします。

  2. 権限を付与するユーザーが、Oracle Data Pumpの使用に必要なEXP_FULL_DATABASEおよびIMP_FULL_DATABASEロールを付与されていることを確認します。

    SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS 
     WHERE GRANTED_ROLE LIKE '%FULL%';
    
  3. このユーザーにOracle Database Vaultに対する権限を付与します。

    たとえば、Data Pumpユーザーdp_mgrにデータベース全体のオブジェクトをエクスポートおよびインポートする権限を付与するには、次のようになります。

    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('dp_mgr');
    

    オプションで、dp_mgrのアクティビティを特定のスキーマまたは表に制限することもできます。次に例を示します。

    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');
    
    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');
    

    このプロシージャの詳細は、「AUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

    DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャの実行後、権限は、「デフォルトのルール・セット」に説明されている「Oracle Data Pump操作を許可」ルール・セットにルールとして格納されます。ユーザーの権限を確認する場合は、DVSYS.DBA_DV_RULE_SETビューに問い合せてこのルール・セットを参照できます。

  4. このユーザーがインポートするオブジェクトが、レルムで保護されている他のオブジェクトに関連付けられている場合、ユーザーによるそのレルムへのアクセスを認可します。

    たとえば、ユーザーdp_mgrSCOTTスキーマをエクスポートするとします。ただし、SCOTTスキーマはSYSMAN.AQ$_MGMT_NOTIFY_QTABLE_S表に関連付けられていて、SYSMANスキーマはレルムで保護されています。このため、ユーザーdp_mgrSCOTTスキーマをエクスポートするには、次のような認可が必要です。

    まず、このユーザーがレルム参加者であることを確認します。次に例を示します。

    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
      realm_name   => 'SYSMAN Realm', 
      grantee      => 'DP_MGR', 
      auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT);
    END;
    /
    

    次に、次のプロシージャを実行して。ユーザーがOracle Data Pump操作を行うことを認可します。

    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR','SYSMAN'); 
    
  5. データベース全体をエクスポートする必要がある場合は、ユーザーにDV_OWNERロールを付与します。

    GRANT DV_OWNER TO dp_mgr;
    
  6. DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せて、「Oracle Data Pump操作を許可」ルール・セットが有効化されていることを確認してください。

    SELECT ENABLED FROM DVSYS.DBA_DV_RULE_SET 
     WHERE RULE_SET_NAME = 'Allow Oracle Data Pump Operation'; 
    

Oracle Database Vault環境でのデータのエクスポートまたはインポートのガイドライン

Data Pumpを使用するデータベース管理者に必要な認可を行うと、ユーザーは必要なエクスポートまたはインポート操作を実行できるようになります。作業を開始する前に、次のガイドラインに従う必要があります。

  • データベースのデータファイルの完全バックアップを作成します。これにより、新しくインポートしたデータが気に入らなかった場合、容易にデータベースを元の状態に戻すことができます。このガイドラインは、侵入者が自分のポリシーを使用するようにデータ・ポンプ・エクスポート・データを変更した場合に特に有用です。

  • 複数のスキーマまたは表をエクスポートおよびインポートする方法を決定します。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャでは複数のスキーマまたは表は指定できませんが、次のいずれかの方法でこの作業を行うことできます。

    • スキーマまたは表ごとに個別にDBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを実行し、expdpおよびimpdpユーティリティのSCHEMASまたはTABLESパラメータで、これらのオブジェクトのリストを指定します。

    • 全データベースのエクスポートまたはインポート操作を実行します。この場合、次のガイドランを参照してください。

  • データベース全体のエクスポートまたはインポート操作を実行する場合は、expdpまたはimpdp FULLオプションをYに設定します。この設定により、DVSYSスキーマが取得されるため、ユーザーにDV_OWNERロールが付与されていることを確認してください。Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

  • Oracle Database Vaultが有効になっている場合、ダイレクト・パス・オプション(direct=y)でレガシーのEXPユーティリティとIMPユーティリティは使用できません。

Data Pumpを使用するデータベース管理者の認可の取消し

Data Pumpを使用するデータベース管理者の認可を取り消すには、次のようにします。

  1. ユーザーにDV_OWNERロールが付与されている場合は、オプションでこのロールを取り消します。

    REVOKE DV_OWNER FROM dp_mgr;
    
  2. DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せて、「Oracle Data Pump操作を許可」ルール・セットで定義されているユーザーの権限をメモします。

    SELECT RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET_RULE
     WHERE RULE_SET_NAME = 'Allow Oracle Data Pump Operation';
    

    たとえば、ユーザーdp_mgrにデータベース全体に対してエクスポートおよびインポート操作を実行する権限を付与した場合、この権限を定義するルールが、「Oracle Data Pump操作を許可」ルール・セットのルール式のリストに表示されます。

  3. 手順2で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERコマンドを作成します。

    次に例を示します。

    EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR');
    

    この権限取消しが、元の権限付与アクションを補完するものであることを確認します。すなわち、最初にdp_mgrにデータベース全体に対する権限を付与した場合、次のコマンドは機能しません。

    EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');
    
    EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');
    

    詳細は、「UNAUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

  4. ユーザーをレルム参加者にする必要があった場合(「データベース管理者に対するOracle Data Pumpの使用の認可」のステップ4のようにSYSMAN.AQ$_MGMT_NOTIFY_QTABLE_S表オブジェクトにアクセスする場合など)、このユーザーのレルム認可を削除します。

    次に例を示します。

    BEGIN
     DBMS_MACADM.DELETE_AUTH_FROM_REALM(
      realm_name => 'SYSMAN Realm',
      grantee    => 'DP_MGR');
    END;
    /
    

Oracle Database Vault環境でのデータベース・ジョブのスケジュール

この項の内容は次のとおりです。

Oracle Database Vault環境でのデータベース・ジョブのスケジュールについて

データベース・ジョブのスケジュールを行うユーザーは、データベース・ジョブのスケジュールに必要な標準のシステム権限に加えて、Oracle Database Vault固有の権限が必要です。

付与する必要のある権限レベルは、次のシナリオによって決まります。

  • 管理者が、独自のスキーマでジョブをスケジュールする場合。スキーマがレルムで保護されている場合を除き、データベース・ジョブをスケジュールする権限が付与されている管理者は、Oracle Database Vault固有の権限がなくても作業を続行できます。スキーマがレルムで保護されている場合は、このユーザーがレルムへのアクセスを許可されていることを確認してください。ユーザーにレルム認可を付与する手順は、「レルム認可の定義」を参照してください。

  • 管理者は別のスキーマでジョブを実行するが、このジョブでOracle Database Vaultのレルムまたはコマンド・ルールで保護されたオブジェクトにアクセスしない場合。この場合、このユーザーには、ジョブに関連するシステム権限のみが必要で、Oracle Database Vault権限は必要ありません。

  • 管理者がデータベースまたはリモート・データベースの任意のスキーマを含む、他のユーザーのスキーマでジョブを実行する場合。このジョブがOracle Database Vaultレルムまたはコマンド・ルールで保護されているオブジェクトにアクセスする場合、DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャを使用して、このユーザーにDatabase Vault固有の権限を付与する必要があります。この権限は、バックグラウンド・ジョブおよびフォアグラウンド・ジョブの両方に適用されます。フォアグラウンド・ジョブの場合、権限はジョブを作成または変更した最後のユーザーに適用されます。また、スキーマ所有者(ジョブが作成された保護スキーマ)がレルムに対して認可されていることを確認してください。

    後から、DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USERプロシージャを使用してこの権限を取り消すことができます。スキーマがレルムで保護されていない場合、ユーザーにDBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャを実行する必要はありません。

ジョブ・スケジュール管理者へのOracle Database Vaultに対する権限の付与

ユーザーにデータベース・ジョブをスケジュールする権限を付与する手順:

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてSQL*Plusにログインします。

    これらのどちらかのロールを付与されているユーザーのみ、必要な権限を付与できます。

  2. 権限を付与するユーザーに、データベース・ジョブをスケジュールするシステム権限が付与されていることを確認してください。

    この権限には、CREATE JOBCREATE ANY JOBCREATE EXTERNAL JOBEXECUTE ANY PROGRAMEXECUTE ANY CLASSMANAGE SCHEDULERが含まれます。DBAおよびSCHEDULER_ADMINロールがこれらの権限を提供しますが、Oracle Database Vaultが有効な場合、権限はこれらのロールから取り消されます。

    次に例を示します。

    SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS 
     WHERE PRIVILEGE IN ('CREATE JOB', 'CREATE ANY JOB');
    
  3. このユーザーにOracle Database Vaultに対する権限を付与します。

    たとえば、ユーザーjob_mgrにデータベースの任意のスキーマのジョブをスケジュールする権限を付与するには、次のようになります。

    EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');
    

    オプションで、job_mgrのアクティビティを特定のスキーマに制限することもできます。

    EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');
    

    このプロシージャの詳細は、「AUTHORIZE_SCHEDULER_USERプロシージャ」を参照してください。

    DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャの実行後、権限は、「デフォルトのルール・セット」に説明されている「スケジューラ・ジョブの許可」ルール・セットにルールとして格納されます。ユーザーの権限を確認する場合は、DVSYS.DBA_DV_RULE_SETビューに問い合せてこのルール・セットを参照できます。

  4. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、ユーザーに権限が付与されていることを確認してください。

    SELECT GRANTEE,OBJECT_OWNER FROM DVSYS.DBA_DV_JOB_AUTH 
    WHERE GRANTEE = 'user_name';
    

ジョブ・スケジュール管理者からの権限の取消し

ユーザーからデータベース・ジョブをスケジュールする権限を取り消す手順:

  1. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、「スケジューラ・ジョブの許可」ルール・セットで定義されているユーザーの権限をメモします。

    SELECT GRANTEE FROM DVSYS.DBA_DV_JOB_AUTH;
    

    たとえば、ユーザーjob_mgrにデータベース全体に対してデータベース・ジョブのスケジュールを実行する権限を付与した場合、この権限を定義するルールが、「スケジューラ・ジョブの許可」ルール・セットのルール式のリストに表示されます。

  2. 手順1で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USERコマンドを作成します。

    次に例を示します。

    EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');
    

    この権限取消しが、元の権限付与アクションを補完するものであることを確認します。すなわち、最初にjob_mgrにデータベース全体に対する権限を付与した場合、次のコマンドは機能しません。

    EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');
    

    詳細は、「UNAUTHORIZE_SCHEDULER_USERプロシージャ」を参照してください。

Oracle Database VaultのOracle Recovery Managerとの使用

Oracle Database Vault環境ではRecovery Manager(RMAN)を使用できます。Oracle Database VaultでRMANを使用する場合の機能は、標準のOracle Database環境での機能と同じです。

RMANの詳細は、次のドキュメントを参照してください。

  • 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

  • 『Oracle Database Recovery Managerリファレンス』

Oracle Database Vault環境でのOracle Streamsの使用

Oracle Database Vaul環境でOracle Streamsを使用する場合、次の権限が必要です。

  • Oracle Streams取得プロセスを構成するには、DV_STREAMS_ADMINロールが付与されている必要があります。詳細は、「DV_STREAMS_ADMIN Oracle Streams構成ロール」を参照してください。

  • レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

    EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');
    

    DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

Oracle Database Vault環境でのXStreamの使用

Oracle Database Vault環境でXStreamを使用する場合、次の権限が必要です。

  • XStreamを構成するには、DV_XSTREAM_ADMINロールが付与されている必要があります。詳細は、「DV_XSTREAM_ADMIN XStream管理ロール」を参照してください。

  • レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

    EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');
    

    DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

Oracle Database Vault環境でのOracle GoldenGateの使用

Oracle Database Vault環境でOracle GoldenGateを使用する場合、次の権限が必要です。

  • Oracle GoldenGateを構成するには、DV_GOLDENGATE_ADMINロールが付与されている必要があります。詳細は、「DV_GOLDENGATE_ADMIN Oracle GoldenGate管理ロール」を参照してください。

  • Oracle GoldenGateのTRANLOGOPTIONS DBLOGREADERメソッドを使用してREDOログにアクセスするには、DV_GOLDENGATE_REDO_ACCESSロールが付与されている必要があります。詳細は、「DV_GOLDENGATE_REDO_ACCESS Oracle GoldenGate REDOログ・アクセス・ロール」を参照してください。

  • レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

    EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');
    

    DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

Oracle Database Vault環境でのデータ・マスキングの使用

この項の内容は次のとおりです。


関連項目:

データ・マスキングの詳細は、『Oracle Database Real Application Testingユーザーズ・ガイド』を参照してください。

Oracle Database Vaultが有効なデータベースでのデータ・マスキングについて

Oracle Database Vaultが有効なデータベースでは、Database Vaultの認可を受けたユーザーのみがDatabase Vaultで保護されたデータベース・オブジェクトのデータをマスクできます。Database Vault以外の環境では、SELECT_CATALOG_ROLEおよびDBAロールを付与されたユーザーがデータ・マスキングを行えます。ただし、Database Vaultを使用する場合、ユーザーに追加の権限が必要です。この項では、ユーザーがDatabase Vaultで保護されたオブジェクトのデータをマスクできるようにするために使用できる3つの方法について説明します。

ユーザーに適切な権限がない場合、マスキング定義の作成時またはジョブの実行時に次のエラーが発生します。

ORA-47400: Command Rule violation for string on string 

ORA-47401: Realm violation for string on string. 

ORA-47408: Realm violation for the EXECUTE command 

ORA-47409: Command Rule violation for the EXECUTE command 

ORA-01301: insufficient privileges

データ・ディクショナリ・レルム認可へのデータ・マスキング・ユーザーの追加

Oracleデータ・ディクショナリでは、SYSおよびSYSTEMなどのOracle Databaseカタログ・スキーマへのアクセスが制御されます。(これらのスキーマの完全なリストは、「デフォルトのレルム」を参照してください。)システム権限およびデータベース管理者ロールを付与する機能も制御されます。ユーザーをデータ・ディクショナリ・レルムに追加する場合、これらのユーザーに、Oracleデータ・ディクショナリに関連付けられている権限がすでにあれば、これらのユーザーはDatabase Vault環境で同じ権限を持ちます。したがって、ユーザーをこのレルムに追加する場合、このユーザーが信頼できるユーザーであることを確認します。

次に例を示します。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name   => 'Data Dictionary Realm', 
  grantee      => 'DBA_JSMITH', 
  auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT);
END;
/

マスクする表またはスキーマへのアクセス権のユーザーへの付与

データ・マスクする表または表のスキーマがレルム内にある場合、データ・マスキングを行うユーザーを参加者または所有者としてレルム認可に追加する必要があります。表またはスキーマに、他のレルムで保護された表内にある依存オブジェクトがある場合、それらのレルムに対する参加者または所有者認可もユーザーに付与する必要があります。

次の例では、ユーザーDBA_JSMITHに、Business Apps Realmと呼ばれるレルムで保護されたHR.EMPLOYEES表に対する認可を付与する方法を示します。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name   => 'Business Apps Realm', 
  grantee      => 'DBA_JSMITH', 
  auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT;
END;
/

データ・マスキングの権限を有効にするコマンド・ルールの作成

データ・マスキングを行うには、ユーザーは、マスキング・オブジェクトに対するCREATE TABLESELECT TABLEALTER TABLEおよびDROP TABLE権限を持っている必要があります。作成する依存オブジェクトがある場合は、CREATE PACKAGECREATE TRIGGERなどの適切な権限を持っている必要があります。

データ・マスキングの権限を粒度レベルで制御するためのコマンド・ルールを作成できます。これを行うには、データ・マスクする必要のあるオブジェクトへのユーザー・アクセスを禁止または許可するコマンド・ルールを作成します。たとえば、ユーザーがデータ・マスキングを行うユーザーのリスト内にあるかどうかをチェックするAllow Data Maskingと呼ばれるコマンド・ルールを作成できます。ログインするユーザーがこれらのユーザーのいずれかの場合、コマンド・ルールはtrueと評価され、ユーザーは、保護されたオブジェクトに対してデータ・マスクを作成することが許可されます。

このタイプのコマンド・ルールを作成するには、次のようにします。

  1. ルール・セット・ルールを作成します。

    次に例を示します。

    BEGIN
     DBMS_MACADM.CREATE_RULE(
      rule_name  => 'Is HDRISCOLL or DBA_JSMITH User', 
      rule_expr  =>'USER IN(''HDRISCOLL'',''DBA_JSMITH'')';
    END;
    /
    
  2. ルール・セットを作成し、ルールを追加します。

    BEGIN
     DBMS_MACADM.CREATE_RULE_SET(
      rule_set_name    => 'Allow Data Masking', 
      description      => 'Allows users HDRISCOLL and DBA_JSMITH access', 
      enabled          => 'Y',
      eval_options     => 1,
      audit_options    => 1,
      fail_options     => 1,
      fail_message     => 'You do not have access to this object.',
      fail_code        => 20461,
      handler_options  => 0, 
      is_static        => TRUE);
    END;
    /
    BEGIN
     DBMS_MACADM.ADD_RULE_TO_RULE_SET(
      rule_set_name => 'Allow Data Masking', 
      rule_name     => 'Is HDRISCOLL or DBA_JSMITH User'),
      rule_order    => 1);
    END;
    /
    
  3. コマンド・ルールを作成し、このルールを追加します。

    BEGIN
     DBMS_MACADM.CREATE_COMMAND_RULE(
      command         => 'CREATE TABLE', 
      rule_set_name   => 'Allow Data Masking', 
      object_owner    => 'HR', 
      object_name     => 'EMPLOYEES', 
      enabled         => DBMS_MACUTL.G_YES);
    END; 
    /