ヘッダーをスキップ
Oracle Database Vault管理者ガイド
11gリリース1(11.1)
E05797-05
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 Oracle Database Vaultの開始

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

Oracle Database Vault Administratorの起動

この項では、Oracle Database Vault Administratorの起動方法について説明します。

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

Oracle Database Vault Administratorを起動するには、次のようにします。

  1. ブラウザに、次のURLを入力します。

    https://host_name:port/dva
    

    ここでは、次のようになります。

    • host_name: Oracle Database Vaultをインストールしたサーバーです。

    • port: Oracle Enterprise ManagerコンソールのHTTPSポートの番号です。

    たとえば、次のようになります。

    https://myserver:1158/dva
    

    ポート番号が不明な場合は、$ORACLE_HOME/host_sid/sysman/config/emd.propertiesファイルを開いてREPOSITORY_URLを検索します。ほとんどの場合、ホスト名およびポート番号はOracle Enterprise Manager Database Controlと同じです。

    Oracle Database Vault Administratorを起動できない場合は、Oracleデータベース・コンソールのプロセスが稼働していることを確認します。

    • UNIXシステムの場合: $ORACLE_HOME/binディレクトリに移動して次のコマンドを実行します。

      ./emctl status dbconsole
      

      dbconsoleプロセスを起動する必要がある場合は、次のコマンドを実行してください。

      ./emctl start dbconsole
      
    • Windowsシステムの場合: 「管理ツール」で「サービス」ユーティリティを選択した後、「OracleDBConsolesidサービスを右クリックします。必要に応じて、メニューから「開始」を選択し、データベース・コンソールを起動します。

    データベースのログ・ファイルは次のディレクトリにあります。

    $ORACLE_HOME/sysman/log
    
  2. インストール中に作成したOracle Database Vault所有者アカウントを使用してログインします。

    ログインするには、完全な接続文字列を入力する必要があります。これにより、Oracle Database Vaultで複数のOracle Databaseインスタンスを管理できます。

    デフォルトでは、SYSSYSTEMまたはその他の管理アカウントを使用してOracle Database Vault Administratorにログインすることはできません。DV_ADMINまたはDV_OWNERロールがある場合はログインできます。

    次の値を入力します。

    • ユーザー名: DV_OWNERロールを付与されているユーザーの名前を入力します。

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

    • ホスト: 目的のOracle Database Vaultインストールのコンピュータのホスト名を入力します。次の書式を使用します。

      server.domain
      

      たとえば、次のようになります。

      myserver-pc.us.example.com
      
    • ポート: Oracle Databaseのポート番号を入力します。デフォルトのポート番号は1521です。ポート番号が不明な場合は、tnsnames.oraファイルをチェックしてください。

      たとえば、次のようになります。

      1521
      
    • SID/サービス: 「SID」または「サービス」を選択します。これらの値は、tnsnames.oraファイルで確認できます。デフォルトでは、このファイルは$ORACLE_HOME/network/adminにあります。

      • SID: Oracle Databaseインスタンスの名前を入力します。たとえば、次のようになります。

        orcl
        
      • サービス: データベース・インスタンスのサービス名を次の書式で入力します。

        service_name.domain
        

        たとえば、次のようになります。

        orcl.us.example.com
        

図3-1は、ログインすると表示されるOracle Database Vault Administratorのホームページを示しています。

図3-1 Oracle Database Vault Administratorのホームページ

Database Vaultのホームページ
「図3-1 Oracle Database Vault Administratorのホームページ」の説明

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

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

このチュートリアルを使用する前に、HRサンプル・スキーマがインストールされていることを確認してください。サンプル・スキーマのインストールに関する情報は、『Oracle Databaseサンプル・スキーマ』を参照してください。

このチュートリアルの内容は次のとおりです。

手順1: データ・ディクショナリ・レルムへのSYSTEMユーザーの追加

このチュートリアルでは、SYSTEMユーザーは、新しいユーザー・アカウントSEBASTIANANY権限を付与します。これを実行するには、SYSTEMをOracleデータ・ディクショナリ・レルムに含める必要があります。

SYSTEMをOracleデータ・ディクショナリ・レルムに含めるには、次のようにします。

  1. Database Vault所有者(DV_OWNER)ロールが付与されているデータベース・アカウントを使用して、Oracle Database Vault Administratorにログインします。

    ログイン方法は、「Oracle Database Vault Administratorの起動」で説明されています。

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

  3. 「レルム」ページで、リストから「Oracleデータ・ディクショナリ」を選択し、「編集」をクリックします。

  4. 「レルムの編集: Oracleデータ・ディクショナリ」ページの「レルム認可」で、「作成」をクリックします。

  5. 「レルム認可の作成」ページで、「権限受領者」リストからSYSTEM [USER]を選択します。

  6. 「認可タイプ」に、「所有者」を選択します。

  7. 「認可ルール・セット」を「<未選択>」のままにします。

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

    「レルムの編集: Oracleデータ・ディクショナリ」ページの「レルム認可」に、SYSTEMが所有者として表示されます。

  9. 「OK」をクリックして「レルム」ページに戻ります。

  10. 「管理」ページに戻るには、「レルム」のデータベース・インスタンスinstance_nameリンクをクリックします。

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

ユーザーSYSTEMとしてSQL*Plusにログインし、HRスキーマにアクセスします。

sqlplus system
Enter password: password

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

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

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Donald               OConnell                        2600
Douglas              Grant                           2600
Jennifer             Whalen                          4400
Michael              Hartstein                      13000
Pat                  Fay                             6000
Susan                Mavris                          6500
Hermann              Baer                           10000
Shelley              Higgins                        12000
William              Gietz                           8300

9 rows selected.

HRスキーマがロックされて無効になっている場合、Database Vaultアカウント・マネージャとしてSQL*Plusにログインし、ロックを解除してアカウントを有効にします。たとえば、次のようになります。

sqlplus dbvacctmgr
Enter password: password

ALTER USER ACCOUNT UNLOCK IDENTIFIED BY password

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

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

手順3: レルムの作成

レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。レルムを作成したら、レルム内のスキーマやスキーマ・オブジェクトに適用するセキュリティ制限を作成します。まず、HRスキーマにレルムを作成します。

  1. Oracle Database Vault Administratorの「レルム」ページで、「作成」をクリックします。

  2. 「レルムの作成」ページの「一般」で、「名前」HR Realmと入力します。

  3. 「ステータス」に「有効」が選択されていて、そのレルムが使用可能になっていることを確認します。

  4. 「監査オプション」で、「失敗時に監査」が選択されていて、後から監査証跡を作成できることを確認します。

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

    レルムのリストにHR Realmが表示された状態でレルムのサマリー・ページが表示されます。

手順4: HRスキーマのEMPLOYEES表の保護

この手順では、HRスキーマのEMPLOYEES表をHRレルムのセキュア・オブジェクトに追加します。

  1. 「レルム」ページで、リストからHR Realmを選択し、「編集」をクリックします。

  2. 「レルムの編集: HR Realm」ページで、「レルム・セキュア・オブジェクト」までスクロールし、「作成」をクリックします。

  3. 「レルム・セキュア・オブジェクトの作成」ページで、次の設定を入力します。

    • オブジェクト所有者: リストからHRを選択します。

    • オブジェクト・タイプ: %を選択します。

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

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

  5. 「レルムの編集: HR Realm」ページで「OK」をクリックします。

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

この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。そのため、この手順でデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIANユーザー・アカウントを作成します。レルムに対してこのユーザーを認可すると、SEBASTIANによるEMPLOYEES表の表示や変更が可能になります。

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

    たとえば、次のようになります。

    SQL> CONNECT dbvacctmgr
    Enter password: password
    
    CREATE USER SEBASTIAN IDENTIFIED BY password;
    

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

  2. SYSTEM権限として接続し、SEBASTIANに次の追加権限を付与します。

    CONNECT SYSTEM
    Enter password: password
    
    GRANT CREATE SESSION, SELECT ANY TABLE TO SEBASTIAN;
    

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

この段階では、SEBASTIANSELECT ANY TABLE権限があっても、レルムによって保護されているためHR.EMPLOYEES表から選択できません。

次に示すようにしてユーザーSEBASTIANを認可し、HR Realmへのアクセス権を付与します。

  1. Database Vault Administratorの「レルム」ページで、レルムのリストからHR Realmを選択し、「編集」をクリックします。

  2. 「レルムの編集: HR Realm」ページで、「レルム認可」までスクロールし、「作成」をクリックします。

  3. 「レルム認可の作成」ページの「権限受領者」で、リストからSEBASTIAN[USER]を選択します。

    リストにSEBASTIANが表示されない場合は、ブラウザの「更新」ボタンをクリックします。

    SEBASTIANHRスキーマのEMPLOYEES表にアクセスできる唯一のユーザーになります。

  4. 「認可タイプ」で「所有者」を選択します。

    所有者の認可により、HRレルムのユーザーSEBASTIANは、レルム内のオブジェクトの作成、アクセスおよび操作とともに、HRによって保護されるデータベース・ロールの管理が可能になります。この場合、EMPLOYEES表の表示を許可されているのは、HRユーザーおよびSEBASTIANのみです。

  5. このレルムはルール・セットで制御する必要がないため、「認可ルール・セット」で「<未割当て>」を選択します。

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

手順6: レルムのテスト

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

SQL*Plusで、SYSTEMとして接続し、EMPLOYEES表の給与情報へのアクセスを再試行します。

sqlplus system
Enter password: password

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

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

Error at line 1:
ORA-01031: insufficient privileges

SYSTEMにはEMPLOYEES表の給与情報へのアクセス権はなくなります。しかし、ユーザーSEBASTIANには、この情報へのアクセス権があります。次のようにします。

CONNECT SEBASTIAN
Enter password: password

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

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

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Donald               OConnell                        2600
Douglas              Grant                           2600
Jennifer             Whalen                          4400
Michael              Hartstein                      13000
Pat                  Fay                             6000
Susan                Mavris                          6500
Hermann              Baer                           10000
Shelley              Higgins                        12000
William              Gietz                           8300

9 rows selected.

手順7: レポートの実行

HR Realmの失敗時の監査を有効にしたため、「手順6: レルムのテスト」で試みたように、レポートを生成してセキュリティ違反を検出できます。

  1. Oracle Database Vault Administratorのホームページで、「Database Vaultレポート」をクリックします。

    レポートを実行するには、DV_OWNERDV_ADMINまたはDV_SECANALYSTロールのあるアカウントを使用してログインしている必要があります。ユーザーSEBASTIANは、自分のレルムに影響する場合であっても、レポートを実行できないことに注意してください。これらのロールの詳細は、「Oracle Database Vaultロール」で説明しています。現在、Database Vault所有者(DV_OWNER)アカウントとしてログインしている必要があります。

  2. 「Database Vaultレポート」ページで、「Database Vaultの監査レポート」までスクロールし、「レルムの監査」を選択します。

  3. 「レポートの実行」をクリックします。

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

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

  1. データ・ディクショナリ・レルムからSYSTEMアカウントを削除します。

    1. DV_OWNERロールが付与されているデータベース・アカウントを使用してOracle Database Vault Administratorにログインしていることを確認します。

    2. 「管理」ページで、「レルム」を選択します。

    3. レルムのリストから「Oracleデータ・ディクショナリ」を選択して「編集」をクリックします。

    4. 「レルム認可」でSYSTEMを選択します。

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

  2. HR Realmを削除します。

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

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

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

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

    sqlplus dbvacctmgr
    Enter password: password
    
    DROP USER SEBASTIAN;
    
  4. 必要な場合、HRアカウントをロックし、無効にします。

    ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;