プライマリ・コンテンツに移動
Oracle® Database Vault管理者ガイド
12cリリース1 (12.1)
B71286-08
目次へ移動
目次
索引へ移動
索引

前
次

11 Oracle Database Vault環境でのDBA操作

データベース管理者は、Oracle Data Pumpなどの製品と連携したDatabase Vaultの使用など、Oracle Database Vault環境で操作を実行できます。

内容は次のとおりです。

Oracle Database VaultのOracle Enterprise Managerとの使用

Oracle Database Vaultの管理者は、Oracle Enterprise Manager Cloud Controlで、他のデータベースへのポリシー伝播などのタスクを実行することができます。

内容は次のとおりです。

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

Database VaultポリシーをDatabase Vaultで保護される他のデータベースに伝播できます。

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

    ログイン方法については、Oracle Database Vaultへのログインで説明します。

  2. 「Database Vault」ホーム・ページの「ポリシー伝播」で、「Database Vaultポリシー伝播」を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oracle Database Vaultポリシーに対するEnterprise Manager Cloud 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 Cloud ControlにおけるOracle Database Vault固有レポート

Database Vaultホーム・ページから、違反に関する情報を見つけることができます。

これらの違反は、次のとおりです。

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

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

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

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

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

DBSNMPユーザー・アカウントのパスワードを変更するには、あらかじめ、このアカウントからDV_MONITORロールを取り消しておく必要があります。

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

  1. DV_OWNERロールを付与されているアカウントを使用して、データベース・インスタンスにログインします。
  2. DBSNMPユーザー・アカウントからDV_MONITORロールを取り消します。
  3. DV_ACCTMGRロールを付与されているユーザーとして接続し、DBSNMPユーザー・アカウントのパスワードを変更します。
  4. DV_OWNERユーザーとして接続し、DV_MONITORロールをDBSNMPユーザー・アカウントに再び付与します。

Oracle Database VaultでのOracle Data Pumpの使用

データベース管理者は、Oracle Data PumpユーザーにDatabase Vault環境で作業する認可を付与します。

内容は次のとおりです。

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

Database Vault環境でOracle Data Pumpを使用するデータベース管理者がデータのエクスポートやインポートを行うには、Database Vault固有の権限が必要です。

これらの管理者は、標準的なOracle Data Pump権限の他に、これらの権限を持っていなければなりません。これらのユーザーがOracle Data Pumpのトランスポータブル表領域操作を実行する場合、特殊な認可が必要です。Oracle Database Vault環境でデータ・ポンプを使用するためにユーザーの認可を確認するには、DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューを問い合せます。

関連項目:

  • Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

  • トランスポータブル表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • DVSYS.DBA_DV_DATAPUMP_AUTHビュー

ユーザーへのData Pumpの通常エクスポート操作および通常インポート操作の認可

Database Vault環境でOracle Data Pumpのエクスポートおよびインポート操作を行う管理者に対しては、様々なタイプの権限を付与することができます。

内容は次のとおりです。

Oracle Data Pumpの通常操作のユーザーへの認可について

Oracle Data Pumpの権限を持つユーザーは、Database Vault環境で通常のOracle Data Pump操作を行うことができます。

フルレベルのData Pump権限を付与すると、これらのユーザーは、トランスポータブル・エクスポート/インポート操作も行えるようになります。

関連項目:

トランスポータブル・エクスポートとトランスポータブル・インポートの操作のみをユーザーが実行できるようにしたい場合は、「ユーザーへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可」を参照してください

Oracle Data Pumpの通常操作に対するDatabase Vault権限のレベル

Oracle Database Vaultでは、Database Vault環境でのOracle Data Pumpの通常操作に必要な認可にいくつかのレベルがあります。

表11-1に、これらのレベルを示します。

表11-1 Oracle Data Pumpの通常操作に対する権限のレベル

シナリオ 必要な権限

データベース管理者は、データを別のスキーマにインポートします。

このユーザーには、BECOME USERシステム権限とIMP_FULL_DATABASEロールを付与する必要があります。脚注1ユーザーに付与されている権限を確認するには、USER_SYS_PRIVSデータ・ディクショナリ・ビューを問い合せます。

データベース管理者は、Database Vault保護なしのスキーマでデータをエクスポートまたはインポートします。

このユーザーには、標準のOracle Data Pump権限を付与する必要があります。EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールです。ユーザーがデータをインポートする場合は、このユーザーにBECOME USERシステム権限を付与します。

データベース管理者は、保護スキーマでデータをエクスポートまたはインポートします。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用してDatabase Vault固有の権限もこのユーザーに付与する必要があります。この認可は、EXPDPIMPDPの両方のユーティリティに適用されます。後から、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERプロシージャを使用してこの権限を取り消すことができます。

ユーザーがデータをインポートする場合は、このユーザーにBECOME USERシステム権限も付与します。

データベース管理者は、データベース全体の内容をエクスポートまたはインポートします。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロール、およびDBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャで付与される権限の他に、このユーザーにはDV_OWNERロールも付与する必要があります。ユーザーがデータをインポートする場合は、このユーザーにBECOME USERシステム権限を付与します。

脚注1

デフォルトではBECOME USER権限はIMP_FULL_DATABASEロールに含まれますが、Oracle Database Vault環境ではこの権限は取り消されます。

Database VaultにおけるOracle Data Pumpの通常操作をユーザーに認可

データベース管理者に、Oracle Database Vault環境で通常操作にData Pumpを使用する権限を付与できます。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。
  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 Data Pumpの通常操作に必要なOracle Database Vault権限を、このユーザーに付与します。

    たとえば、Data PumpユーザーDP_MGRに、データベース表EMPLOYEESのオブジェクトをエクスポートおよびインポートする権限を付与するには、次のように入力します。

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

    DP_MGRのアクティビティを特定のスキーマに制限するには、次のプロシージャを入力します。

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

    Data PumpユーザーDP_MGRに、データベース全体のオブジェクトをエクスポートおよびインポートする権限を付与するには、次のように入力します。

    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');
    

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

    DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャの実行後は、 「DVSYS.DBA_DV_DATAPUMP_AUTHビュー」で説明するように、DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューに問い合せてユーザーの認可を確認できます。

  4. データベース全体をエクスポートする必要がある場合は、ユーザーにDV_OWNERロールを付与します。
    GRANT DV_OWNER TO DP_MGR;

Oracle Data Pump権限のユーザーからの取消し

通常操作のためにOracle Data Pumpを使用するデータベース管理者の認可を、取り消すことができます。

  1. ユーザーにDV_OWNERロールが付与されている場合は、オプションでこのロールを取り消します。
    REVOKE DV_OWNER FROM DP_MGR;
    
  2. DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューに問い合せて、Oracle Data Pumpの認可が付与されているユーザーを探します。
    SELECT GRANTEE, SCHEMA, OBJECT FROM DVSYS.DBA_DV_DATAPUMP_AUTH;
    
  3. 手順2で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERコマンドを作成します。

    次に例を示します。

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

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

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

ユーザーへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可

Oracle Data Pumpのトランスポータブル操作を行う必要のあるユーザーには、異なるレベルの権限を付与することができます。

内容は次のとおりです。

Oracle Data Pumpのトランスポータブル操作のユーザーへの認可について

ユーザーには、異なるレベルのトランスポータブル操作権限を付与することができます。

トランスポータブル・エクスポートとトランスポータブル・インポートの操作を実行する権限のみをユーザーに付与する場合は、タスクに基づいて、ユーザーに適切な権限を付与する必要があります。

関連項目:

Databese Vault環境で通常操作を行うユーザーにOracle Data Pumpの権限が必要な場合は、「ユーザーへのData Pumpの通常エクスポート操作および通常インポート操作の認可」も参照してください。

Data Pumpのトランスポータブル操作に対するDatabase Vault権限のレベル

Oracle Database Vaultの場合、Database Vault環境でトランスポータブル・エクスポートとトランスポータブル・インポートの操作を実行するユーザーに必要な権限には、いくつかのレベルがあります。

表11-2に、これらのレベルを示します。

表11-2 Oracle Data Pumpのトランスポータブル操作に対する権限のレベル

シナリオ 必要な権限

データベース管理者は、Database Vault保護なしの表領域または表のトランスポータブル・エクスポートを実行します。

このユーザーには、標準のOracle Data Pump権限を付与する必要があります。EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールです。

データベース管理者は、Database Vault保護ありの表領域のトランスポータブル・エクスポートを実行します(たとえば、その表領域に存在する表オブジェクトのレルムやコマンドルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用してDatabase Vault固有のトランスポータブル表領域権限もこのユーザーに付与する必要があります。後から、DBMS_MACADM.UNAUTHORIZE_TTS_USERプロシージャを使用してこの権限を取り消すことができます。

完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを介して)、これらの操作を実行できます。

データベース管理者は、Database Vault保護ありの表領域内で表のトランスポータブル・エクスポートを実行します(たとえば、エクスポートする表を含む表領域に存在する表オブジェクトのレルムやコマンド・ルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用して、エクスポートされる表を含む表領域に対するDatabase Vault固有のトランスポータブル表領域権限もこのユーザーに付与する必要があります。

完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャで)、これらの操作を実行できます。

データベース管理者は、データベース全体の内容のトランスポータブル・エクスポートを実行します。

DV_OWNEREXP_FULL_DATABASEIMP_FULL_DATABASEの各ロールの他に、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用してDatabase Vault固有の完全データベース・レベルのOracle Data Pump権限もこのユーザーに付与する必要があります。このユーザーに対してDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを実行する必要はありません。

データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護なしの表領域または表のトランスポータブル・インポートを実行します。

データベース管理者と接続ユーザー両方のEXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、ネットワーク・リンクで指定されている接続ユーザーにDV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護ありの表領域のトランスポータブル・インポートを実行します(たとえば、その表領域に存在する表オブジェクトのレルムやコマンド・ルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用して、ネットワーク・リンクで指定されている接続ユーザーに、その表領域のDatabase Vault固有トランスポータブル表領域権限も付与する必要があります。接続ユーザーに、DV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

Database Vault固有の完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを介して)、これらの操作を実行できます。

データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護ありのトランスポータブル表領域内で表をインポートします(たとえば、エクスポートする表を含む表領域に存在する表オブジェクトのレルムやコマンド・ルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用して、エクスポートされる表を含む表領域に対するDatabase Vault固有のトランスポータブル表領域権限も、接続ユーザーに付与する必要があります。ネットワーク・リンクで指定されている接続ユーザーに、DV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

Database Vault固有の完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを介して)、この操作を実行できます。

データベース管理者は、ネットワーク・リンクを使用してデータベース全体の内容のトランスポータブル・インポートを実行します。

DV_OWNERロールの他に、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用してDatabase Vault固有の完全データベース・レベルのOracle Data Pump権限も、接続ユーザーに付与する必要があります。このユーザーに対してDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを実行する必要はありません。ネットワーク・リンクで指定されている接続ユーザーに、DV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

Database VaultにおけるData Pumpのトランスポータブル操作をユーザーに認可

ユーザーがDatabase Vault環境でOracle Data Pumpのトランスポータブル・エクスポートおよびインポートを実行することを認可できます。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。
  2. 権限を付与するユーザーが、Oracle Data Pumpの使用に必要なEXP_FULL_DATABASEおよびIMP_FULL_DATABASEロールを付与されていることを確認します。
    SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS 
     WHERE GRANTED_ROLE LIKE '%FULL%';
    
  3. トランスポータブル・エクスポートを実行する、またはネットワーク・リンクを使用してデータベースの内容全体のトランスポータブル・インポートを実行する場合は、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用して、完全データベース・レベルのOracle Data Pump権限を付与します。それ以外の場合、この手順は無視してください。

    次に例を示します。

    EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');
    
  4. Database Vault固有のトランスポータブル表領域権限のみが必要な場合は、このユーザーにその権限を付与します。

    次に例を示します。

    EXEC DBMS_MACADM.AUTHORIZE_TTS_USER('DP_MGR', 'HR_TS');
    
  5. トランスポータブル・インポート操作を実行するユーザーが、ネットワーク・リンクを使用して操作を実行したい場合は、このユーザーにDV_DATAPUMP_NETWORK_LINKロールを付与します。

    次に例を示します。

    GRANT DV_DATAPUMP_NETWORK_LINK TO DP_MGR;
    
  6. トランスポータブル・エクスポートを実行するユーザー、またはネットワーク・リンクを使用してデータベース全体のトランスポータブル・インポートを実行する場合は、このユーザーにDV_OWNERロールを付与します。
    GRANT DV_OWNER TO DP_MGR;

トランスポータブル表領域権限のユーザーからの取消し

Data Pumpを使用するデータベース管理者の権限を取り消すことができます。

  1. ユーザーにDV_OWNERロールが付与されている場合は、オプションでこのロールを取り消します。
    REVOKE DV_OWNER FROM DP_MGR;
    
  2. DVSYS.DBA_DV_TTS_AUTHデータ・ディクショナリ・ビューに問い合せて、Oracle Data Pumpの認可が付与されているユーザーを探します。
    SELECT GRANTEE, TSNAME FROM DVSYS.DBA_DV_TTS_AUTH;
    
  3. 手順2で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_TTS_USER文を作成します。

    次に例を示します。

    EXEC DBMS_MACADM.UNUTHORIZE_TTS_USER('DP_MGR', 'HR_TS');
    

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

  4. トランスポータブル・エクスポートを実行した、またはネットワーク・リンクを使用してデータベースの内容全体のトランスポータブル・インポートを実行した場合は、完全データベース・レベルのOracle Data Pump権限を取り消します。

    次に例を示します。

    EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR');
    
  5. すでにトランスポータブル・インポート操作を実行したユーザーが、ネットワーク・リンクを使用して操作を実行した場合は、このユーザーからDV_DATAPUMP_NETWORK_LINKロールを取り消します。

    次に例を示します。

    REVOKE DV_DATAPUMP_NETWORK_LINK FROM DP_MGR;

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

Oracle Data Pumpのデータベース管理者に適切な権限を付与すると、ユーザーがエクスポートまたはインポート操作を行うことができるようになります。

作業を開始する前に、次のガイドラインに従う必要があります。

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

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

    • それぞれのスキーマまたは表に対してDBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを実行し、次にEXPDPユーティリティとIMPDPユーティリティのSCHEMASパラメータまたはTABLESパラメータのオブジェクトのリストを指定します。

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

  • データベース全体のエクスポートまたはインポート操作を実行する場合は、EXPDPまたはIMPDP FULLオプションをYに設定します。この設定により、DVSYSスキーマが取得されるため、ユーザーにDV_OWNERロールが付与されていることを確認してください。

次の点に注意してください。

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

  • DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを通じてDatabase Vault固有のOracle Data Pump権限を付与されている、またはDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを通じてトランスポータブル表領域の権限を付与されているユーザーは、データベース・オブジェクトのエクスポートとインポートを実行できますが、通常アクセス権のないスキーマ表に対するSELECT問合せなど、他のアクティビティを実行することはできません。同様に、指定されたデータベース・オブジェクト外部のオブジェクトに対してData Pump操作を実行することもできません。

  • データベース全体をエクスポートまたはインポートするユーザーにDV_OWNERロールを付与する必要があります。これは、データベース全体のエクスポートには、Oracle Database Vaultポリシーを格納するDVSYSスキーマへのアクセスが必要になるためです。ただし、DVSYSスキーマ自体をエクスポートすることはできません。Data Pumpは、保護定義のみをエクスポートします。インポート・プロセスを開始する前に、ターゲット・データベースにはDVSYSスキーマが必要であり、Database Vaultが有効になっている必要があります。)逆に、インポートされたポリシーをターゲット・データベースに適用するData Pumpインポート操作では、内部的にDBMS_MACADM PL/SQLパッケージが使用され、ここでData PumpユーザーにDV_OWNERロールが必要になります。

関連項目:

Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

Oracle Database VaultでのOracle Schedulerの使用

データベース・ジョブをスケジュールするユーザーには、Oracle Database Vault固有の権限が必要です。

内容は次のとおりです。

Oracle Database VaultでのOracle Schedulerの使用について

付与する必要がある認可レベルは、タスクを実行する管理者のスキーマによって異なります。

次のシナリオが想定されます。

  • 管理者が、独自のスキーマでジョブをスケジュールする場合。スキーマがレルムで保護されている場合を除き、データベース・ジョブをスケジュールする権限が付与されている管理者は、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に対する権限の付与

Database Vault環境で、ユーザーにデータベース・ジョブをスケジュールする権限を付与できます。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

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

  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プロシージャ」を参照してください。

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

    このビューの詳細は、「DVSYS.DBA_DV_JOB_AUTHビュー」を参照してください。

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

ユーザーからデータベース・ジョブをスケジュールする権限を取り消すことができます。

  1. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、ユーザーの認可を探します。
    SELECT GRANTEE, SCHEMA FROM DVSYS.DBA_DV_JOB_AUTH WHERE GRANTEE='username';
    
  2. 前の手順で収集した情報を使用して、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 Recovery ManagerとOracle Database Vault

Oracle Database Vault環境ではRecovery Manager(RMAN)を使用できます。

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

関連項目:

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

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

Oracle Database VaultでOracle Streamsを使用するための権限

Oracle Database Vault環境でOracle Streamsを使用する場合、適切な権限が必要です。

必要な権限は、次のとおりです。

  • Oracle Streams取得プロセスを構成するには、DV_STREAMS_ADMINロールが付与されている必要があります。

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

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

関連項目:

Oracle Database VaultでXStreamを使用するための権限

Oracle Database Vault環境でOracle Streamsを使用する場合、適切な権限が必要です。

これらの権限は次のとおりです。

  • XStreamを構成するには、DV_XSTREAM_ADMINロールが付与されている必要があります。

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

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

関連項目:

Oracle Database VaultでOracle GoldenGateを使用するための権限

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

これらの権限は次のとおりです。

  • Oracle GoldenGateを構成するには、DV_GOLDENGATE_ADMINロールが付与されている必要があります。

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

  • レプリケートされた側でユーザーを作成する場合は、DV_ACCTMGRロールがあらかじめ付与されていないければなりません。

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

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

関連項目:

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

Oracle Database Vault環境でデータ・マスキングを行うには、適切な権限がなければなりません。

内容は次のとおりです。

関連項目:

データ・マスキングの詳細は、『Oracle Database 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デフォルト・コンポーネント保護レルムに追加するとデータ・ディクショナリ・レルム認可を付与できます。

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

  • Oracleデフォルト・コンポーネント保護レルムにユーザーを追加するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

次に例を示します。

BEGIN
 DBMS_MACADM.ADD_AUTH_TO_REALM(
  realm_name   => 'Oracle Default Component Protection Realm', 
  grantee      => 'DBA_JSMITH', 
  auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT);
END;
/

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

マスクする表またはスキーマへのアクセス権をユーザーに付与するには、適切なレルムに対してユーザーを認可する必要があります。

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

  • データ・マスクするオブジェクトを保護するレルムに対して、データ・マスキング・ユーザーを認可するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

次の例では、ユーザー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;
/

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

Oracle Database環境でデータ・マスキングを使用するには、表、パッケージ、およびトリガの管理権限が必要です。

データ・マスキングを行うには、ユーザーは、マスキング・オブジェクトに対する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; 
    /

スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン

リリース12c以降のスタンドアロンのOracle DatabaseはPDBに変換可能で、さらにそのPDBをCDBにプラグインすることができます。

  1. DV_OWNERロールを付与されているユーザーとしてルートに接続します。

    次に例を示します。

    sqlplus c##sec_admin
    Enter password: password
    
  2. CONTAINER = CURRENTを指定して、ユーザーSYSDV_PATCH_ADMINロールを付与します。
    GRANT DV_PATCH_ADMIN TO SYS CONTAINER = CURRENT;
    
  3. ルートで、SYSOPERシステム権限を持つユーザーSYSとして接続します。

    次に例を示します。

    CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
    Enter password: password
    
  4. データベースを読取り専用モードで再起動します。

    次に例を示します。

    SHUTDOWN IMMEDIATE
    STARTUP MOUNT
    ALTER DATABASE OPEN READ ONLY
    
  5. Database Vault対応のデータベースに、DV_OWNERロールを持つユーザーとして接続します。

    次に例を示します。

    CONNECT sec_admin@dv_db
    
  6. このデータベースで、ユーザーSYSDV_PATCH_ADMINロールを付与します。
    GRANT DV_PATCH_ADMIN TO SYS;
    
  7. オプションで、DBMS_PDB.CHECK_PLUG_COMPATIBILITYファンクションを実行して、切断されたPDBがCDBと互換性があるかどうかを確認します。

    ファンクションを実行するとき、次のパラメータを設定します。

    • pdb_descr_file: PDBの記述を含むXMLファイルへのフルパスを設定します。

    • store_report: PDBにCDBと互換性がない場合にレポートを生成するかどうかを指定します。レポートを生成する場合はTRUEに、レポートを生成しない場合はFALSEに設定します。生成されたレポートは、PDB_PLUG_IN_VIOLATIONS一時表に格納され、PDBにCDBとの互換性がない場合にのみ生成されます。

    たとえば、/disk1/usr/dv_db_pdb.xmlファイルで記述されているPDBに現在のCDBと互換性があるかどうかを判断するには、次のPL/SQLブロックを実行します。

    SET SERVEROUTPUT ON
    DECLARE
      compatible CONSTANT VARCHAR2(3) := 
        CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
               pdb_descr_file => '/disk1/usr/dv_db_pdb.xml',
               store_report   => TRUE)
        WHEN TRUE THEN 'YES'
        ELSE 'NO'
    END;
    BEGIN
      DBMS_OUTPUT.PUT_LINE(compatible);
    END;
    /
    

    出力がYESの場合はPDBに互換性があり、次の手順に進むことができます。

    出力がNOの場合は、PDBに互換性がありません。PDB_PLUG_IN_VIOLATIONS一時表を調べると、互換性がない理由を確認できます。

  8. PDBを記述するXMLファイルを作成します。

    次に例を示します。

    BEGIN
      DBMS_PDB.DESCRIBE(
        pdb_descr_file => '/disk1/oracle/dv_db.xml');
    END;
    /
    
  9. CREATE PLUGGABLE DATABASE文を実行し、USING句でXMLファイルを指定します。要求された場合には、他の句を指定します。

    次に例を示します。

    CREATE PLUGGABLE DATABASE dv_db_pdb AS CLONE USING 'dv_db.xml' NOCOPY;
    
  10. 作成したPDBに、SYSDBA管理権限を持つユーザーSYSとして接続します。
    CONNECT SYS@dv_db_pdb AS SYSDBA
    
  11. noncdb_to_pdb.sqlスクリプトを実行します。
    @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
    
  12. 読書き制限モードで、このPDBを開きます。
    ALTER PLUGGABLE DATABASE dv_db_pdb OPEN READ WRITE RESTRICTED;
    
  13. 次のプロシージャを実行してPDBを同期します。
    EXECUTE DBMS_PDB.SYNC_PDB;
    
  14. DV_OWNERロールを付与されているユーザーとしてルートに接続します。
    sqlplus c##sec_admin
    Enter password: password
    
  15. CONTAINER = CURRENTを指定して、ユーザーSYSからDV_PATCH_ADMINロールを取り消します。
    REVOKE DV_PATCH_ADMIN FROM SYS CONTAINER = CURRENT;
    
  16. Database Vault対応のレガシー・データベースに、SYSOPERシステム権限を持つユーザーSYSとして接続します。
    CONNECT SYS@dv_db_pdb AS SYSOPER
    
  17. このデータベースを再起動します。

    次に例を示します。

    SHUTDOWN IMMMEDIATE
    STARUP
    
  18. ユーザーSYSからDV_PATCH_ADMINロールを取り消します。
    REVOKE DV_PATCH_ADMIN FROM SYS;

Oracle Database Vault環境でのORADEBUGユーティリティの使用

ORADEBUGユーティリティは、主にOracleサポートがOracle Databaseで生じる問題を診断する場合に使用します。

ユーザーがOracle Database Vaultが有効な環境でORADEBUGユーティリティを実行できるかどうかを制御できます。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。
  2. 必要に応じて、ORADEBUGがすでに無効か有効かを確認します。
    SELECT * FROM DVSYS.DBA_DV_ORADEBUG;
    
  3. 次のいずれかのプロシージャを実行します。
    • ORADEBUGの使用を無効にする場合:

      EXEC DBMS_MACADM.DISABLE_ORADEBUG;
      
    • ORADEBUGの使用を有効にする場合:

      EXEC DBMS_MACADM.ENABLE_ORADEBUG;