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

前
次

3 Oracle Database Vaultの開始

Oracle Database Vaultを使用して開始する前に、これをOracle Databaseに登録する必要があります。

内容は次のとおりです。

Oracle DatabaseへのOracle Database Vaultの登録

Oracle Database Vaultは、非マルチテナント環境またはマルチテナント環境のどちらでも登録できます。

内容は次のとおりです。

Oracle DatabaseへのOracle Database Vaultの登録の概要

Oracle Oracleのインストール後に、Oracle Database VaultをインストールしたOracle Databaseに登録(すなわち構成および有効化)する必要があります。

Oracle Databaseには、インストール・プロセスでデフォルトのデータベースを含めるように選択した場合、Database Vaultが付属しますが、このDatabase Vaultを使用するには登録する必要があります。カスタム・データベースを作成する場合、DBCAを使用してDatabase Vaultをインストールし、そのデータベースに対して有効にすることができます。登録プロセスの一部として、Database Vault管理者アカウント作成します。登録プロセスでは、Oracle Label Securityがまだ有効ではない場合、有効になります。Oracle Label SecurityはOracle Database Vaultに必要ですが、別にOracle Label Securityの使用を開始してOracle Label Securityポリシーを作成する場合を除き、別個のライセンスは必要ありません。このプロシージャは、現在のプラガブル・データベース(PDB)、および単一インスタンスとOracle RACの両方のインストールに適用されます。Database Vaultがすでに有効になっているかどうかの確認については、「Oracle Database Vaultが構成および有効化されていることの確認」を参照してください。

この項では、Oracle Database Vaultを非マルチテナント環境において登録する方法、およびマルチテナント環境において登録する複数の方法を説明します。

非マルチテナント環境におけるOracle Database Vaultの登録

非マルチテナント環境では、SQL*PlusからOracle Database Vaultを登録します。

  1. ユーザーアカウントの作成権限を持つユーザーとしてログインし、他のユーザーにCREATE SESSION権限を付与します。

    次に例を示します。

    sqlplus sec_admin
    Enter password: password
    
  2. Database Vault所有者(DV_OWNERロール)およびDatabase Vaultアカウント・マネージャ(DV_ACCTMGRロール)のアカウント用に使用されるアカウントを作成します。

    ロールごとに2つのアカウントを作成することをお薦めします。一方のアカウントはプライマリ・アカウントであり、日常的に使用されます。他方のアカウントは、プライマリ・アカウントのパスワードを忘れてしまいリセットする必要がある場合に備えたバックアップ・アカウントとして使用されます。

    次に例を示します。

    GRANT CREATE SESSION TO dbv_owner IDENTIFIED BY password;
    GRANT CREATE SESSION TO dbv_owner_backup IDENTIFIED BY password;
    GRANT CREATE SESSION TO dbv_acctmgr IDENTIFIED BY password;
    GRANT CREATE SESSION TO dbv_acctmgr_backup IDENTIFIED BY password

    passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

    詳細は、「Oracle Database Vaultアカウントのバックアップ」を参照してください。

    passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

    DV_OWNERアカウントとDV_ACCTMGRアカウントが職務分離のガイドラインにどのように従うかの詳細は、Oracle Database Vault環境での作業分離を参照してください。

  3. SYSDBA管理権限を使用して接続します。
    CONNECT / AS SYSDBA
    Enter password: password
    
  4. プライマリDatabase Vaultユーザー・アカウントを構成します。
    BEGIN
     DVSYS.CONFIGURE_DV (
       dvowner_uname         => 'dbv_owner',
       dvacctmgr_uname       => 'dbv_acctmgr');
     END;
    /
    

    これらのユーザー・アカウントに、DV_OWNERDV_ACCTMGRなどの、Database Vaultロールの名前を入力しないでください。これらの名前は予約語です。Database Vaultロールの詳細は、「Oracle Database Vaultロール」を参照してください。

  5. utlrp.sqlスクリプトを実行して、無効化されたオブジェクトを再コンパイルします。
    @?/rdbms/admin/utlrp.sql
    

    スクリプトから指示がある場合はそれに従い、再びスクリプトを実行します。指示がなくスクリプトが異常終了した場合は、再びスクリプトを実行します。

  6. 先ほど構成したプライマリDatabase Vault所有者ユーザーとして接続します。

    次に例を示します。

    CONNECT dbv_owner
    Enter password: password
    
  7. Oracle Database Vaultを有効化します。
    EXEC DBMS_MACADM.ENABLE_DV;
    
  8. SYSDBA管理権限を使用して接続します。
    CONNECT / AS SYSDBA
    
  9. データベースを再起動します。
    SHUTDOWN IMMEDIATE
    STARTUP
    
  10. プライマリDV_OWNERユーザーとして接続し、前に作成したバックアップDV_OWNERユーザーにDV_OWNERロールを付与します。

    次に例を示します。

    CONNECT dbv_owner
    Enter password: password
    
    GRANT DV_OWNER TO dbv_owner_backup;
    
  11. プライマリDV_ACCTMGRユーザーとして接続し、バックアップDV_ACCTMGRユーザーにDV_ACCTMGRロールを付与します。

    次に例を示します。

    CONNECT dbv_acctmgr
    Enter password: password
    
    GRANT DV_ACCTMGR TO dbv_acctmgr_backup;
  12. 2つのバックアップ・アカウントを、将来必要になる場合に備えて、安全な場所に格納します。

関連項目:

CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録

SQL*Plusでは、CDBルートを管理する共通ユーザーでOracle Database Vaultを登録できます。

  1. マルチテナント環境において、ユーザー作成権限を持ち、CREATE SESSIONおよびSET CONTAINER権限を付与する権限を持つユーザーとして、データベース・インスタンスのルートにログインします。

    次に例を示します。

    sqlplus c##sec_admin
    Enter password: password
    
  2. Database Vault所有者(DV_OWNERロール)およびDatabase Vaultアカウント・マネージャ(DV_ACCTMGRロール)のアカウント用に使用されるアカウントを作成します。

    ロールごとに2つのアカウントを作成することをお薦めします。一方のアカウントはプライマリ・アカウントであり、日常的に使用されます。他方のアカウントは、プライマリ・アカウントのパスワードを忘れてしまいリセットする必要がある場合に備えたバックアップ・アカウントとして使用されます。

    これらのアカウント名の先頭にc##またはC##を付加します。次に例を示します。

    GRANT CREATE SESSION, SET CONTAINER TO c##dbv_owner_root IDENTIFIED BY password CONTAINER = ALL;
    GRANT CREATE SESSION, SET CONTAINER TO c##dbv_owner_root_backup IDENTIFIED BY password CONTAINER = ALL;
    GRANT CREATE SESSION, SET CONTAINER TO c##dbv_acctmgr_root IDENTIFIED BY password CONTAINER = ALL;
    GRANT CREATE SESSION, SET CONTAINER TO c##dbv_acctmgr_root_backup IDENTIFIED BY password CONTAINER = ALL;
    

    passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

    バックアップ・アカウントの詳細は、バックアップOracle Database Vaultアカウントを参照してください。

    DV_OWNERアカウントとDV_ACCTMGRアカウントが職務分離のガイドラインにどのように従うかの詳細は、Oracle Database Vault環境での作業分離を参照してください。

  3. SYSDBA管理権限を持つユーザーSYSとしてルートに接続します。
    CONNECT SYS AS SYSDBA
    Enter password: password
    
  4. プライマリDatabase Vaultユーザー・アカウントを構成します。
    BEGIN
     DVSYS.CONFIGURE_DV (
       dvowner_uname         => 'c##dbv_owner_root',
       dvacctmgr_uname       => 'c##dbv_acctmgr_root');
     END;
    /
    
  5. utlrp.sqlスクリプトを実行して、ルートで無効化されたオブジェクトを再コンパイルします。
    @?/rdbms/admin/utlrp.sql
    

    スクリプトから指示がある場合はそれに従い、再びスクリプトを実行します。指示がなくスクリプトが異常終了した場合は、再びスクリプトを実行します。

  6. 先ほど構成したプライマリDatabase Vault所有者ユーザーとして、ルートに接続します。

    次に例を示します。

    CONNECT c##dbv_owner_root
    Enter password: password
    
  7. Oracle Database Vaultを有効化します。
    EXEC DBMS_MACADM.ENABLE_DV;
    
  8. SYSDBA管理権限を使用して接続します。
    CONNECT / AS SYSDBA
    
  9. データベースを再起動します。
    SHUTDOWN IMMEDIATE
    STARTUP
    
  10. プライマリDV_OWNERユーザーとして接続し、前に作成したバックアップDV_OWNERユーザーにDV_OWNERロールを付与します。

    次に例を示します。

    CONNECT c##dbv_owner_root
    Enter password: password
    
    GRANT DV_OWNER TO c##dbv_owner_root_backup;
    
  11. プライマリDV_ACCTMGRユーザーとして接続し、バックアップDV_ACCTMGRユーザーにDV_ACCTMGRロールを付与します。

    次に例を示します。

    CONNECT c##dbv_acctmgr_root
    Enter password: password
    
    GRANT DV_ACCTMGR TO c##dbv_acctmgr_root_backup;
  12. 2つのバックアップ・アカウントを、将来必要になる場合に備えて、安全な場所に格納します。

関連項目:

個別PDBを管理するためのDatabase Vault共通ユーザーの登録

マルチテナント環境では、Oracle Database Vaultをまずルートに登録して、それからPDBに登録する必要があります。

先にPDBに登録しようとすると、ORA-47503「Database VaultはCDB$ROOTで有効化されていません。」エラーが表示されます。
  1. マルチテナント環境において、ユーザー作成権限を持ち、CREATE SESSIONおよびSET CONTAINER権限を付与する権限を持つユーザーとして、データベース・インスタンスのルートにログインします。

    次に例を示します。

    sqlplus c##sec_admin
    Enter password: password
    
  2. まだ作成していない場合は、Database Vaultアカウントとして使用するユーザー・アカウントを作成します。

    これらのアカウントの詳細は、「CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録」の手順2を参照してください。

  3. 「CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録」に説明されているように、Oracle Database VaulはCDBルートで登録してください。
  4. 共通ユーザーにアクセス権限が必要なPDBに接続します。

    次に例を示します。

    CONNECT c##sec_admin@pdb_name
    Enter password: password
    

    利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

  5. これらのユーザーに、CREATE SESSION権限およびSET CONTAINER権限を付与します。

    次に例を示します。

    GRANT CREATE SESSION, SET CONTAINER TO c##dbv_owner_root CONTAINER = CURRENT;
    GRANT CREATE SESSION, SET CONTAINER TO c##dbv_acctmgr_root CONTAINER = CURRENT;
    
  6. SYSDBA管理権限を持つユーザーSYSとして接続します。
    CONNECT SYS@pdb_name AS SYSDBA
    Enter password: password
    
  7. PDBにいる間に、2つのプライマリDatabase Vaultユーザー・アカウントを構成します。

    次に例を示します。

    BEGIN
     DVSYS.CONFIGURE_DV (
       dvowner_uname         => 'c##dbv_owner_root',
       dvacctmgr_uname       => 'c##dbv_acctmgr_root');
     END;
    /
    
  8. utlrp.sqlスクリプトを実行して、このPDBで無効化されたオブジェクトを再コンパイルします。
    @?/rdbms/admin/utlrp.sql
    

    スクリプトから指示がある場合はそれに従い、再びスクリプトを実行します。指示がなくスクリプトが異常終了した場合は、再びスクリプトを実行します。

  9. 先ほど構成したプライマリDatabase Vault所有者ユーザーとして、PDBに接続します。

    次に例を示します。

    CONNECT c##dbv_owner_root@pdb_name
    Enter password: password
    
  10. このPDBでOracle Database Vaultを有効にします。
    EXEC DBMS_MACADM.ENABLE_DV;
    
  11. SYSDBA管理権限でCDBに接続します。
    CONNECT / AS SYSDBA
    
  12. PDBを閉じてから、再度開きます。

    次に例を示します。

    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    
    ALTER PLUGGABLE DATABASE pdb_name OPEN;
    

関連項目:

プラグインされたDatabase Vault PDB用の共通Database Vaultアカウント作成

マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。

このシナリオでは、接続されるデータベースには、独自のローカルDatabase Vaultアカウントがあります。
  1. ローカル・プライマリDatabase Vault所有者として、PDBにログインします。

    次に例を示します。

    sqlplus dbv_owner@pdb_name
    Enter password: password
    

    利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

  2. 共通Database Vault DV_OWNERユーザーに、CREATE SESSION権限とSET CONTAINER権限、および適切なDatabase Vaultロールを付与します。

    次のアカウントは、プライマリおよびバックアップ・アカウントになります。

    GRANT CREATE SESSION, SET CONTAINER, DV_OWNER TO c##dbv_owner_root;
    GRANT CREATE SESSION, SET CONTAINER, DV_OWNER TO c##dbv_owner_root_backup;
    
  3. DV_ACCTMGRロールを付与されているユーザーとして接続します。
  4. DV_ACCTMGR共通アカウントを作成します。
    GRANT CREATE SESSION, SET CONTAINER, DV_ACCTMGR TO c##dbv_acctmgr_root;
    GRANT CREATE SESSION, SET CONTAINER, DV_ACCTMGR TO c##dbv_acctmgr_root_backup;

関連項目:

Oracle Database Vaultが構成および有効化されていることの確認

V$OPTION動的ビューと、DVSYS.DBA_DV_STATUSおよびDBA_OLS_STATUSデータ・ディクショナリ・ビューは、Oracle Databaseが構成されて有効になっているかどうかを確認します。

  • V$OPTION動的ビューの問い合せは以下の要領で行います。

    • Oracle Database Vaultが構成および有効化されていることを確認するには、次の問合せを実行して、VALUE設定がTRUEと表示される必要があります。

      SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';
      
    • Oracle Label Securityが有効化されているかどうかを確認するには、次のようにV$OPTION動的ビューに問い合せます。

      SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Label Security';
      
  • ステータスまたはOracle Database Vaultに関する、DVSYS.DBA_DV_STATUSデータ・ディクショナリ・ビューの問合せは、以下の要領で行います。
    SELECT * FROM DVSYS.DBA_DV_STATUS;

    次のような出力が表示されます。

    NAME                 STATUS
    -------------------- -----------
    DV_CONFIGURE_STATUS  FALSE
    DV_ENABLE_STATUS     FALSE
  • Oracle Label Securityの有効化および構成のステータスを確認するには、DBA_OLS_STATUSデータ・ディクショナリ・ビューに問い合わせます。この場合、DVSYS.DBA_DV_STATUSの場合と同様の出力が得られます。

Oracle Database Vaultへのログイン

Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultページが用意されています。

Oracle Database Vaultページを使用すれば、Database Vaultで保護されたデータベースの管理と監視を1つのコンソールから集中的に行うことができます。このコンソールでは、アラートの自動化、Database Vaultレポートの表示、およびDatabase Vaultで保護されたその他のデータベースへのDatabase Vaultポリシーの伝播が可能です。
  1. Database Vaultで使用するCloud Controlターゲット・データベースが構成されていることを確認します。

    ターゲット・データベースの構成の詳細は、Oracle Enterprise Managerオンライン・ヘルプおよび『Oracle Enterprise Managerアドバンスト構成』を参照してください。

  2. 必要に応じて、Oracle Database Vaultを登録します。

    Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle DatabaseへのOracle Database Vaultの登録」を参照してください。

  3. Cloud Controlを起動します。

    次に例を示します。

    https://myserver.example.com:7799/em
    
  4. セキュリティ管理者としてCloud Controlにログインします。
  5. Cloud Controlのホーム・ページで、「ターゲット」メニューから「データベース」を選択します。
  6. 「データベース」ページで、接続先のOracle Database Vaultで保護されているデータベースのリンクを選択します。

    データベースのホームページが表示されます。

  7. 「セキュリティ」メニューから、「Database Vault」を選択します。

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

  8. 次の情報を入力します。
    • ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。

      • Database Vaultポリシーの作成および伝播: DV_OWNERまたはDV_ADMINロール、SELECT ANY DICTIONARY権限

      • Database Vaultアラートおよびレポートの表示: DV_OWNERDV_ADMINまたはDV_SECANALYSTロール、SELECT ANY DICTIONARY権限

      詳細は、「Oracle Database Vaultロールの概要」を参照してください。

    • パスワード: パスワードを入力します。

    • ロール: リストから「通常」を選択します。

    • 別名保存: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。資格証明は、Enterprise Managerに安全な方法で格納されます。これらの資格証明へのアクセスは、現在ログインしているユーザーによって異なります。

    Database Vaultホームページが表示されます。


    GUID-14EAB030-5CC3-43B2-BC72-D38722700909-default.pngの説明が続く
    図GUID-14EAB030-5CC3-43B2-BC72-D38722700909-default.pngの説明

クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護

このチュートリアルでは、HRスキーマの周辺でレルムを作成する方法を示します。

内容は次のとおりです。

このチュートリアルの概要

このチュートリアルでは、Oracle Database Vault PL/SQLパッケージを使用することで、HRサンプル・データベース・スキーマに関わるレルムを作成します。

HRスキーマのEMPLOYEES表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HRスキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。最後に、レポートを実行し、レルムをテストする際に試行するような疑わしいアクティビティの監査証跡をOracle Database Vaultがどのように作成するかを確認します。

手順1: SYSTEMとしてログインしHRスキーマにアクセスする

このチュートリアル用にHRスキーマを有効にする必要があります。

  1. HRサンプル・スキーマがインストールされていることを確認します。

    サンプル・スキーマのインストールについては、『Oracle Databaseサンプル・スキーマ』を参照してください。

  2. DBAロールを付与されたユーザーとしてデータベース・インスタンスにログインしてから、HRスキーマにアクセスします。

    次に例を示します。

    sqlplus system
    Enter password: password
    
  3. マルチテナント環境で、適切なPDBに接続します。

    次に例を示します。

    CONNECT SYSTEM@my_pdb
    Enter password: password
    

    利用可能なPDBを確認するには、CDBで、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

  4. HR.EMPLOYEES表に次のように問い合せます。
    SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM < 10;
    

    次のような出力が表示されます。

    FIRST_NAME           LAST_NAME                     SALARY
    -------------------- ------------------------- ----------
    Steven               King                           24000
    Neena                Kochhar                        17000
    Lex                  De Haan                        17000
    Alexander            Hunold                          9000
    Bruce                Ernst                           6000
    David                Austin                          4800
    Valli                Pataballa                       4800
    Diana                Lorentz                         4200
    Nancy                Greenberg                      12008
    
    9 rows selected.
    
  5. HRスキーマがロックされて無効になっている場合は、DV_ACCTMGRユーザーとしてデータベース・インスタンスにログインし、アカウントをロック解除して有効にします。例:
    sqlplus bea_dvacctmgr -- For a multitenant environment, sqlplus bea_dvacctmgr@hrpdb
    Enter password: password
    
    ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY password
    

    passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

    この例からわかるように、SYSTEMにはHRスキーマのEMPLOYEES表の給与情報へのアクセス権があります。SYSTEMには、SELECT ANY TABLEシステム権限を含むDBAロールが自動的に付与されるためです。

  6. SQL*Plusを終了しないでください。

手順2: レルムの作成

レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。

レルムを作成したら、レルム内のスキーマやスキーマ・オブジェクトに適用するセキュリティ制限を作成します。

まず、HRスキーマにレルムを作成します。

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

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

  2. 「管理」ページの「Database Vaultコンポーネント」で、「レルム」をクリックします。(デフォルトで選択されています。)
  3. Oracle Database Vault Administratorの「レルム」ページで、「作成」をクリックします。
  4. 「レルムの作成」ページの「一般」で、「名前」の後にHR Appsと入力します。
  5. 「説明」フィールドに、Realm to protect the HR schemaと入力します。
  6. 「必須レルム」チェック・ボックスの選択を解除したままにします。
  7. 「ステータス」に「有効」が選択されていて、そのレルムが使用可能になっていることを確認します。
  8. 「監査オプション」で、「失敗時に監査」が選択されていて、後から監査証跡を作成できることを確認します。
  9. 「次へ」をクリックして、「レルム・セキュア・オブジェクト」ページを表示します。
  10. 「追加」ボタンをクリックして、「セキュア・オブジェクトの追加」ダイアログ・ボックスで次の情報を入力します。
    • 所有者: HRと入力してHRスキーマを選択します。

    • オブジェクト・タイプ: TABLEと入力します。

    • オブジェクト名: EMPLOYEESと入力します。

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

    HR.EMPLOYEES表は、「レルムの作成 : レルム・セキュア・オブジェクト」ページに追加されます。

  12. 「完了」「終了」の順にクリックします。

この段階で、レルムが作成されていますが、それに対する認可は割り当てられていません。このチュートリアルで後ほど対応します。

手順3: SEBASTIANユーザー・アカウントの作成

この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。

そのため、この手順でデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIANユーザー・アカウントを作成します。

  1. DV_ACCTMGRロールを持つDatabase Vaultアカウント・マネージャとしてSQL*Plusに接続し、ローカル・ユーザーSEBASTIANを作成します。

    次に例を示します。

    CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
    Enter password: password
    
    GRANT CREATE SESSION TO SEBASTIAN IDENTIFIED BY password;
    

    passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  2. SYSDBA権限を持つSYSとして接続し、SEBASTIANに次の追加権限を付与します。
    CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
    Enter password: password
    
    GRANT READ ANY TABLE TO SEBASTIAN;
    

(「手順6: レルムのテスト」でレルムをテストする際に必要なため、SQL*Plusを終了しないでください。)

手順4: ユーザーSEBASTIANによるレルムのテスト

この段階では、ユーザーSEBASTIANに、READ ANY TABLEシステム権限があるとしてもレルムをテストさせます。

  1. ユーザーSEBASTIANとして接続します。
    CONNECT sebastian
    Enter password: password
  2. HR.EMPLOYEES表を問い合せます。
    SELECT COUNT(*) FROM HR.EMPLOYEES;

    次のような出力結果が表示されます。

    ERROR at line 1:
    ORA-01031: insufficient privileges
    
ユーザーSEBASTIANにはREAD ANY TABLEシステム権限がありますが、HR.EMPLOYEES表を問合せできません。これは、HR AppsレルムがREAD ANY TABLEシステム権限よりも優先されるためです。

手順5: レルムの認可の作成

次に、HR.EMPLOYEES表にアクセスできるよう、ユーザーSEBASTIANにHR Appsレルムへの認可を与える必要があります。

  1. Database Vault Administratorの「レルム」ページで、レルムのリストから「HR Apps」を選択し、「編集」をクリックします。
  2. 「レルム認可」ページになるまで、「次へ」ボタンをクリックします。
  3. 「追加」をクリックし、「認可の追加」ダイアログ・ボックスに次の情報を入力します。
    • レルム認可の権限受領者: SEBASTIANと入力します。

    • レルム認可タイプ: リストから「参加者」を選択します。

    • レルム認可ルールセット: このフィールドは空白のままにします。

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

    「参加者」認可により、HR Appsレルム内のユーザーSEBASTIANは、HR Appsレルムで保護されるオブジェクトのアクセス、操作および作成を管理できるようになります。この場合、EMPLOYEES表の表示を許可されているのは、HRユーザーおよびSEBASTIANのみです。

  5. 「完了」「終了」の順にクリックします。

手順6: レルムのテスト

レルムをテストするには、HR以外のユーザーとしてEMPLOYEES表にアクセスを試みる必要があります。

通常、SYSTEMアカウントにはHRスキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES表を保護しているため、アクセス権はありません。

  1. SQL*Plusで、SYSTEMとして接続します。

    CONNECT SYSTEM -- Or, CONNECT SYSTEM@hrpdb
    Enter password: password
    
  2. もう一度、EMPLOYEES表内の給与情報へのアクセスを試みます。

    SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;
    

    次のような出力結果が表示されます。

    Error at line 1:
    ORA-01031: insufficient privileges
    

    SYSTEMにはEMPLOYEES表の給与情報へのアクセス権はなくなります。(実際に、ユーザーSYSでもこの表にはアクセスできません。)しかし、ユーザーSEBASTIANには、この情報へのアクセス権があります。

  3. ユーザーSEBASTIANとして接続します。

    CONNECT sebastian -- Or, CONNECT sebastian@hrpdb
    Enter password: password
    
  4. 次の問合せを実行します。

    SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;
    

    次のような出力が表示されます。

    FIRST_NAME           LAST_NAME                     SALARY
    -------------------- ------------------------- ----------
    Steven               King                           24000
    Neena                Kochhar                        17000
    Lex                  De Haan                        17000
    Alexander            Hunold                          9000
    Bruce                Ernst                           6000
    David                Austin                          4800
    Valli                Pataballa                       4800
    Diana                Lorentz                         4200
    Nancy                Greenberg                      12008
    
    9 rows selected.

手順7: 統合監査が有効ではない場合のレポートの実行

HR Appsレルム内の障害に関する監査を有効化したので、レポートを作成してセキュリティ侵害を見つけることができます。

たとえば、「ステップ6: レルムのテスト」で行なおうとした違反に関するレポートを作成できます。

  1. ユーザーSYSTEMとしてSQL*Plusに接続し、統合監査が有効ではないことを確認します。
    CONNECT SYSTEM -- Or, CONNECT SYSTEM@hrpdb
    Enter password: password
    
    SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
    

    VALUETRUEを戻す場合、この項を完了できません。「手順8: このチュートリアルのコンポーネントの削除」に進みます。

    統合監査が有効な場合、イベントを取得する統合監査ポリシーを作成する必要があります。Oracle Database Vaultの統合監査ポリシーの作成方法については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  2. 「Database Vault Administrator」ページで、「ホーム」をクリックしてホーム・ページを表示します。
  3. Database Vaultの「ホーム」ページの「レポート」で、「Database Vaultレポート」を選択します。
  4. 「Database Vaultレポート」ページで、「Database Vault強制監査レポート」を選択します。
  5. Database Vault監査レポートリストで、「レルム監査レポート」を選択します。
  6. 「検索」領域で、「コマンド」メニューから「等しい」を選択し、テキスト・フィールドにSELECTと入力します。次に「検索」をクリックします。

    「検索」リージョンの後の表にレポートが表示されます。

  7. 「OK」をクリックしてレポートを終了します。

Oracle Database Vaultにより、違反の種類(この場合は前の項目で入力したSELECT文)、発生した時間と場所、違反を試みたユーザーのログイン・アカウント、および違反の内容などを示すレポートが生成されます。

手順8: このチュートリアルのコンポーネントの削除

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

  1. ユーザーSEBASTIANを削除します。

    SQL*Plusで、次のようにOracle Database Vaultアカウント・マネージャ(たとえばbea_dvacctmgr)としてログインし、SEBASTIANを削除します。

    sqlplus bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
    Enter password: password
    
    DROP USER SEBASTIAN;
    
  2. HR Appsレルムを削除します。

    1. Cloud Controlで、DV_OWNERロールがあるユーザーとしてログインしていることを確認します。

    2. Database Vaultの「ホーム」ページで、「管理」をクリックします。

    3. 「レルム」ページで、レルムのリストからHR Appsを選択します。

    4. 「削除」をクリックして、「確認」ウィンドウで「はい」をクリックします。

  3. 必要な場合は、SQL*Plusで、HRアカウントをロックし、無効にします。

    ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;