11 Oracle Database Vaultとその他のOracle製品の統合

Oracle Database Vaultは、Oracle Enterprise User Securityなど別のOracle製品と統合できます。

Oracle Database Vaultとエンタープライズ・ユーザー・セキュリティの統合

Oracle Database Vaultは、Oracle Enterprise User Securityと統合できます。

Oracle Database Vaultとエンタープライズ・ユーザー・セキュリティの統合について

エンタープライズ・ユーザー・セキュリティでは、データベース・ユーザーと認可が1箇所で集中管理されます。

Oracle Identity Managementと組み合せ、Oracle Database Enterprise Editionで使用できます。

通常、Oracle Database VaultをOracle Enterprise User Securityと統合するには、適切なレルムを構成して、保護の対象となるデータベース内のデータを保護します。

必要に応じてOracle Database Vaultレルムを定義した後に、エンタープライズ・ユーザーに対してアクセスを許可または禁止するルール・セットを作成できます。

エンタープライズ・ユーザー認可の構成

エンタープライズ・ユーザー認可を構成するには、Oracle Database Vaultルール・セットを作成して、ユーザー・アクセスを制御する必要があります。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、PDBまたはアプリケーション・ルートに接続します。
    次に例を示します。
    CONNECT c##sec_admin_owen@pdb_name
    Enter password: password

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

  2. DBMS_MACADM.CREATE_RULEプロシージャを実行して、ユーザー・アクセスを許可または禁止するルールを作成します。
    BEGIN
     DBMS_MACADM.CREATE_RULE(
      rule_name  => 'Control User Access', 
      rule_expr  =>'SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'user_domain_name'',
      scope      => DBMS_MACUTL.G_SCOPE_LOCAL);
    END;
    /

    詳細は、次のとおりです。

    • rule_nameはルール名を指定します。必要に応じて、有効な名前を入力します。
    • rule_exprは、この例で指定したルール式を使用する必要があります。'user_domain_name'をドメインで置き換えます。次に例を示します。
      'SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'myserver.us.example.com''
    • scopeDBMS_MACUTL.G_SCOPE_LOCALにする必要があります。
  3. DBMS_MACADM.CREATE_RULE_SETプロシージャを実行して、ルールに使用するルール・セットを作成します。
    次に例を示します。
    BEGIN
     DBMS_MACADM.CREATE_RULE_SET(
      rule_set_name    => 'EM User Authorization', 
      description      => 'Allows or disallows user access to EM', 
      enabled          => DBMS_MACUTL.G_YES,
      eval_options     => DBMS_MACUTL.G_RULESET_EVAL_ANY,
      audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_OFF,
      fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SILENT,
      fail_message     => '',
      fail_code        => 20461,
      handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_OFF, 
      handler          => ' ',
      is_static        => TRUE);
    END;
    /
  4. DBMS_MACADM.ADD_RULE_TO_RULE_SETプロシージャを実行して、ルール・セットにルールを追加します。
    次に例を示します。
    BEGIN
     DBMS_MACADM.ADD_RULE_TO_RULE_SET(
      rule_set_name => 'EM User Authorization', 
      rule_name     => 'Control User Access',
      rule_order    => 1);
    END;
    /
  5. DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを実行して、保護するデータのレルム認可にルール・セットを追加します。
    たとえば、HR Realmというレルムの場合は、次のようになります。
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
      realm_name    => 'HR Realm', 
      grantee       => 'pfitch', 
      rule_set_name => 'EM User Authorization',
      auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER,
      auth_scope    => DBMS_MACUTL.G_SCOPE_LOCAL);
    END;
    /

Oracle Database Vaultアカウントをエンタープライズ・ユーザー・アカウントとして構成

既存のOracle Database Vaultユーザー・アカウントをPDBのエンタープライズ・ユーザー・アカウントとして構成できます。

  1. CREATE ROLEシステム権限が付与されたユーザーとしてPDBにログインします。

    次に例を示します。

    sqlplus sec_admin@pdb_name
    Enter password: password
    

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

  2. DV_OWNERロールのグローバル・ロールとDV_ACCTMGRロールのグローバル・ロールを作成します。

    次に例を示します。

    CREATE ROLE g_dv_owner IDENTIFIED GLOBALLY;
    CREATE ROLE g_dv_acctmgr IDENTIFIED GLOBALLY;
    
  3. DV_OWNERロールを付与されたユーザーとして接続します。

    次に例を示します。

    CONNECT sec_admin_owen@pdb_name
    Enter password: password
    
  4. DV_OWNERロールをグローバルDV_OWNERロールに付与します。
    GRANT DV_OWNER TO g_dv_owner;
    
  5. DV_ACCTMGRロールを付与されているユーザーとして接続します。

    次に例を示します。

    CONNECT dbv_acctmgr@pdb_name
    Enter password: password
    
  6. DV_ACCTMGRロールをグローバルDV_ACCTMGRロールに付与します。
    GRANT DV_ACCTMGR TO g_dv_acctmgr;
    
  7. SYSDBA管理権限を持つユーザーSYSとして接続します。
    CONNECT SYS@pdb_name AS SYSDBA 
    Enter password: password
    
  8. Database VaultユーザーをOIDにインポートするDV_ACCTMGRユーザーに、一時的にCREATE TABLE権限とSELECT_CATALOG_ROLEロールを付与します。
    GRANT CREATE TABLE, SELECT_CATALOG_ROLE TO dbv_acctmgr;
    
  9. コマンド・ラインで、ユーザー移行ユーティリティ(UMU)を実行してDatabase VaultアカウントをOracle Internet Directory (OID)にインポートします。

    次に例では、Database Vaultアカウントleo_dvownerおよびbea_dvacctmgrをOIDにインポートします。DBADMIN設定にDV_ACCTMGRユーザーが指定されます。

    $ORACLE_HOME/rdbms/bin/umu PHASE=ONE
    DBADMIN=dbv_acctmgr:password
    ENTADMIN=cn=jane_ent_admin,dc=example,dc=com:password
    USERS= LIST
    DBLOCATION=example.com:7777:orcl
    DIRLOCATION=example.com:636
    USERSLIST=leo_dvowner:bea_dvacctmgr
    MAPSCHEMA=PRIVATE
    CONTEXT=CONTEXT="c=Users, c=us"
    KREALM=EXAMPLE.COM
    
    $ORACLE_HOME/rdbms/bin/umu PHASE=TWO
    DBADMIN=dbv_acctmgr:password
    ENTADMIN=cn=jane_ent_admin,dc=example,dc=com:password
    DBLOCATION=example.com:7777:orcl
    DIRLOCATION=example.com:636
    

    デフォルトでは、$ORACLE_HOME/network/log/umu.logファイルにエラーが書き込まれます。

    エンタープライズ・ユーザー・セキュリティ(EUS)ユーザー移行ユーティリティ(UMU)は、Oracle Database 20cでは非推奨です。かわりにEUSマネージャ(EUSM)機能を使用してください。
  10. Oracle Internet Directoryセルフ・サービス・コンソール(http://hostname:port/oiddas/)で、グローバルDV_OWNERおよびDV_ACCTMGRロール(g_dv_ownerg_dv_acctmgrなど)をエンタープライズ・ユーザーのDatabase Vaultアカウントに付与します。

    グローバル・ロールからエンタープライズ・ロールを作成し、このロールをユーザーに付与する方法については、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』のエンタープライズ・ユーザーの作成例に関する項を参照してください。

  11. SQL*Plusで、SYSDBA管理権限を持つユーザーSYSとして、CREATE TABLEおよびSELECT_CATALOG_ROLEロールをDV_ACCTMGRユーザーから取り消します。
    REVOKE CREATE TABLE, SELECT_CATALOG_ROLE FROM dbv_acctmgr;

Oracle Database Vaultと透過的データ暗号化の統合

データがデータベースのセキュアな範囲外にある場合のデータ保護を提供するという意味で、透過的データ暗号化はOracle Database Vaultを補完するものです。

透過的データ暗号化を使用して、データベース管理者またはデータベース・セキュリティ管理者は、アプリケーション表の機密情報の列のみを暗号化したり、アプリケーション表領域全体を暗号化したりできます。アプリケーションを変更する必要はありません。

ユーザーが認証チェックと認可チェックを通ると、透過的データ暗号化によりユーザーの情報は自動的に暗号化および復号化されます。このように、アプリケーションを変更しなくても暗号化を実装できます。

透過的データ暗号化ユーザーに適切な権限を付与したら、透過的データ暗号化を通常どおり管理でき、Database Vaultを補完するものとして使用できます。

図11-1に、暗号化されたデータがOracle Database Vaultレルムでどのように処理されるかを示します。

図11-1 暗号化されたデータとOracle Database Vault

図11-1の説明が続く
「図11-1 暗号化されたデータとOracle Database Vault」の説明

Oracle Virtual Private Databaseへのファクタの追加

Oracle Virtual Private Databaseにはファクタを追加できます。

  1. PL/SQLファンクションまたはPL/SQL式であるVirtual Private Databaseポリシー述語を定義します。
  2. 各ファンクションまたは式に対して、ファクタごとに作成されるPL/SQLファンクションDVF.F$を使用します。

Oracle Database VaultとOracle Label Securityの統合

Oracle Database VaultとOracle Label Securityを統合すると、レポートおよびデータ・ディクショナリ・ビューとの統合を確認できます。

Oracle Database VaultとOracle Label Securityの統合方法

Oracle Database VaultとOracle Label Securityの統合により、OLSラベルをDatabase Vaultファクタ・アイデンティティに割当てできます。

Oracle Label Securityでは、データベース表またはPL/SQLプログラムのレコードへのアクセスを制限できます。たとえば、アクセスを特定の管理者に限定する必要があるレコードを含むEMPLOYEE表の、HIGHLY SENSITIVEラベル(Oracle Label Securityラベル)で保護されたデータをMaryは参照できます。もう1つのラベルを、このデータへのよりオープンなアクセスを許可するPUBLICにできます。

Oracle Database Vaultでは、データベース・セッションが発生するネットワーク用に、次のアイデンティティを指定してNetworkというファクタを作成できます。

  • Intranet: 従業員が会社のイントラネット内の場所で作業している場合に使用します。

  • Remote: 従業員がVPN接続から在宅で作業している場合に使用します。

次に、両方のアイデンティティに最大のセッション・ラベルを割り当てます。次に例を示します。

  • IntranetアイデンティティをOracle Label SecurityラベルのHIGHLY SENSITIVEに割り当てます。

  • RemoteアイデンティティをPUBLICラベルに割り当てます。

つまり、MaryがVPN接続を使用して在宅で作業している場合は、PUBLICアイデンティティのもとに保護される、限定された表データにのみアクセスできます。しかし、職場にいる場合は、Intranetアイデンティティを使用しているため、HIGHLY SENSITIVEデータにアクセスできます。

従来の監査環境では、Oracle Label Securityとの統合は、Label Security統合の監査レポートを使用して監査できます。Oracle Database Vaultは、監査証跡をDVSYS.AUDIT_TRAIL$表に書き込みます。統合監査が有効な場合は、監査ポリシーを作成してこの情報を取得できます。現在のOracle Databaseリリース20cでは、従来の監査は非推奨です。

Oracle Database VaultをOracle Label Securityとともに使用するための要件

Oracle Database VaultとOracle Label Securityを使用する前に、特定の要件を満たす必要があります。

  • Oracle Label Securityは別個にライセンス許可されます。それを使用するためのライセンスを購入済であることを確認してください。

  • Oracle Database Vaultをインストールする前に、Oracle Label Securityのインストールを済ませておく必要があります。

  • Oracle Label Securityのインストール・プロセスでLBACSYSユーザー・アカウントが作成されます。DV_ACCTMGRロールを付与されているユーザーとして、このアカウントをロック解除し、新しいパスワードを付与します。次に例を示します。

    sqlplus bea_dvacctmgr@pdb_name
    Enter password: password
    
    ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;
  • Oracle Enterprise ManagerでLBACSYSユーザー・アカウントを使用する場合、SYSDBA管理権限を持つユーザーSYSとしてEnterprise Managerにログインし、このユーザーにSELECT ANY DICTIONARYおよびSELECT_CATALOG_ROLEシステム権限を付与します。

  • 適切なOracle Label Securityポリシーが定義されていることを確認してください。

  • Oracle Label SecurityポリシーをDatabase Vaultポリシーと統合する場合、Oracle Label Securityのポリシー名が24文字未満であることを確認します。ALL_SA_POLICIESデータ・ディクショナリ・ビューのPOLICY_NAME列を問い合せることで、Oracle Label Securityポリシーの名前がチェックできます。

Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用方法

セキュリティを強化するには、Oracle Database VaultのファクタとOracle Label Securityポリシーを統合します。

Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用

Oracle Database VaultとOracle Label Securityの統合により、データベース・セッションの最大セキュリティ・チェックを制御できます。

Oracle Database Vaultでは、Oracle Label Securityポリシーに関連付けられているOracle Database Vaultファクタのラベルをマージすることによって、データベース・セッションにおける各ラベルの最大許容データをマージして、データベース・セッションの最大セキュリティ・チェックを制御します。

つまり、ラベルは、データベース表の行のアクセス権限に対する識別子として機能します。ポリシーは、表の行へのアクセスを管理するラベル、ルールおよび認可と関連付けられた名前です。

Oracle Label Securityポリシーと連携するファクタの構成

Oracle Label Securityポリシーの最大許容データ・ラベルに含めるファクタを定義できます。

  1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、PDBまたはアプリケーション・ルートに接続します。
    次に例を示します。
    CONNECT c##sec_admin_owen@pdb_name
    Enter password: password

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

  2. ユーザー・アカウントLBACSYSを、Label Securityポリシーが適用されているスキーマを含むレルムの所有者にします。

    これにより、レルム内で保護されているすべてのデータへのアクセス権がLBACSYSアカウントに付与され、データを適切に分類できるようになります。

    たとえば、LBACSYSHR Realmというレルムの所有者にするには、次のようにします。
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
      realm_name   => 'HR Realm', 
      grantee      => 'LBACSYS', 
      auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
    END;
    /
  3. レルムの参加者または所有者として(ラベル・セキュリティ・ポリシーが適用されている)スキーマの所有者を認可します。
    次に例を示します。
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
      realm_name   => 'HR Realm', 
      grantee      => 'HR', 
      auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
    END;
    /
  4. レルムのラベル・セキュリティ・ポリシーを構成します。
    Oracle Label Securityで2つのラベルをマージしている場合、ラベルマージ・アルゴリズムを必要に応じて設定します。ほとんどの場合、LII (最小レベル/論理積/論理積)を使用するようにラベル・セキュリティ・ポリシーを構成する必要があります。この設定は、Oracle Label Security管理者が2つのラベルをマージする際に最も一般的に使用する方法です。この設定により、ラベルが異なる2つのデータ・セットを組み合せる際に必要な結果のラベルをアプリケーションで特定する必要がある場合に、最適な柔軟性が提供されます。これは、データ・ラベルが異なる行で結合を使用して問合せを実行する必要がある場合にも必要です。
    • 新しいラベル・セキュリティ・ポリシーを作成するには、DBMS_MACADM.CREATE_MAC_POLICYプロシージャを実行します。次に例を示します。
      BEGIN
       DBMS_MACADM.CREATE_MAC_POLICY(
        policy_name  => 'Access Locations',
        algorithm    => 'LII');
      END;
      /
    • 既存のラベル・セキュリティ・ポリシーを変更するには、 DBMS_MACADM.UPDATE_MAC_POLICYプロシージャを実行します。
  5. DBMS_MACADM.ADD_POLICY_FACTORファクタを実行して、ファクタとラベル・セキュリティ・ポリシーを関連付けます。
    次に例を示します。
    BEGIN
     DBMS_MACADM.ADD_POLICY_FACTOR(
      policy_name  => 'Access Locations', 
      factor_name  => 'Sector2_DB'); 
    END;
    /
  6. DBMS_MACADM.CREATE_IDENTITYプロシージャを実行して、ファクタ・アイデンティティを作成します。
    次に例を示します。
    BEGIN
     DBMS_MACADM.CREATE_IDENTITY(
      factor_name  => 'Sector2_DB', 
      value        => 'intranet', 
      trust_level  => 5); 
    END;
    /
  7. ラベルのポリシーを使用して、ファクタ・アイデンティティのラベル付けを行います。

    詳細は、「ファクタへのアイデンティティの追加」を参照してください。

ノート:

Oracle Label Securityポリシーをファクタと関連付けない場合、Oracle Database Vaultではポリシーに対するOracle Label Securityのデフォルト動作が維持されます。

チュートリアル: Oracle Database VaultとOracle Label Securityの統合

Oracle Database VaultとOracle Label Securityの統合により、同じ権限を持つ2人の管理ユーザーに異なるレベルのアクセス権を付与できます。

このチュートリアルについて

Oracle Database VaultファクタをOracle Label SecurityおよびOracle Virtual Private Database(VPD)とともに使用すると、機密データへのアクセスを制限できます。

このようなデータを制限して、セキュリティ管理者が任意のデータ・セッションに対して定義するファクタの適切な組合せが存在する場合にのみデータベース・セッションに公開されるようにすることができます。

ステップ1: このチュートリアル用のユーザーの作成

このチュートリアル用に2つの管理ユーザーを作成する必要があります。

  1. DV_ACCTMGRロールを付与されているユーザーとしてPDBにログインします。

    次に例を示します。

    sqlplus bea_dvacctmgr@pdb_name
    Enter password: password
    

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

  2. 次のローカル・ユーザーを作成します。
    GRANT CREATE SESSION TO mdale IDENTIFIED BY password CONTAINER = CURRENT;
    GRANT CREATE SESSION TO jsmith IDENTIFIED BY password CONTAINER = CURRENT;
    

    passwordを安全なパスワードに置き換えます。

  3. システム権限を付与でき、Oracleシステム権限およびロール管理レルムの所有者認可を付与されているユーザーとして接続し、ユーザーmdaleとユーザーjsmithに管理権限を付与します。
    CONNECT dba_psmith@pdb_name
    Enter password: password
    
    GRANT DBA TO mdale, jsmith;
    

    この段階で、ユーザーmdaleとユーザーjsmithは、同じ管理権限を持ちます。

ステップ2: Oracle Label Securityポリシーの作成

次に、Oracle Label Securityポリシーを作成し、ユーザーに適切な権限を付与します。

  1. SQL*Plusで、Oracle Label Security管理者LBACSYSとしてPDBに接続します。
    CONNECT LBACSYS@pdb_name
    Enter password: password
    

    ユーザーLBACSYSがロックされて無効になっている場合、Database Vaultアカウント・マネージャとして接続し、LBACSYSアカウントのロックを解除して有効にしてから、LBACSYSとして再びログインします。

    次に例を示します。

    CONNECT bea_dvacctmgr@pdb_name
    Enter password: password
    
    ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;
    
    CONNECT LBACSYS
    Enter password: password
    
  2. 新規のOracle Label Securityポリシーを作成します。
    EXEC SA_SYSDBA.CREATE_POLICY('PRIVACY','PRIVACY_COLUMN','NO_CONTROL');
    
  3. PRIVACYポリシーに次のレベルを作成します。
    EXEC SA_COMPONENTS.CREATE_LEVEL('PRIVACY',2000,'S','SENSITIVE');
    EXEC SA_COMPONENTS.CREATE_LEVEL('PRIVACY',1000,'C','CONFIDENTIAL');
    
  4. PII区分を作成します。
    EXEC SA_COMPONENTS.CREATE_COMPARTMENT('PRIVACY',100,'PII','PERS_INFO');
    
  5. ユーザーmdaleとユーザーjsmithに次のラベルを付与します。
    EXEC SA_USER_ADMIN.SET_USER_LABELS('PRIVACY','mdale','S:PII');
    EXEC SA_USER_ADMIN.SET_USER_LABELS('PRIVACY','jsmith','C'); 
    

    ユーザーmdaleは、PII区分を含むより機密性の高いラベル、Sensitiveを付与されます。ユーザーjsmithは、機密性の低いConfidentialラベルを取得します。

ステップ3: OLS認可を制御するためのOracle Database Vaultルールの作成

Oracle Label Securityポリシーの作成後、これと連携するDatabase Vaultルールを作成できます。

  1. Database Vault所有者としてPDBに接続します。

    次に例を示します。

    CONNECT leo_dvowner@pdb_name
    Enter password: password
    
  2. 次のルール・セットを作成します。
    EXEC DBMS_MACADM.CREATE_RULE_SET('PII Rule Set', 'Protect PII data from privileged users','Y',1,0,2,NULL,NULL,0,NULL);
    
  3. PII Rule Setにルールを作成します。
    EXEC DBMS_MACADM.CREATE_RULE('Check OLS Factor',  'dominates(sa_utl.numeric_label(''PRIVACY''),  char_to_label(''PRIVACY'',''S:PII'')) = ''1''');
    

    この例のように、二重引用符ではなく、必ず一重引用符を使用してください。

  4. Check OLS FactorルールをPII Rule Setに追加します。
    EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET('PII Rule Set', 'Check OLS Factor');
ステップ4: ルール・セットを使用するためのALTER SYSTEMコマンド・ルールの更新

ルール・セットを使用する前に、デフォルト・コマンド・ルールであるALTER SYSTEMコマンド・ルールを更新する必要があります。

  1. Database Vault所有者として、ALTER SYSTEMコマンド・ルールの現行値を確認します。このコマンド・ルールは、Oracle Database Vaultインストール時のデフォルト・コマンド・ルールの1つです。
    SELECT * FROM DBA_DV_COMMAND_RULE WHERE COMMAND = 'ALTER SYSTEM';
    
  2. 後で元の値に戻せるように、これらの設定をノートにとります。

    デフォルトのインストールでは、「ALTER SYSTEM」コマンド・ルールは「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットを使用し、有効になっています。

  3. PIIルール・セットに関連付けられる「ALTER SYSTEM」コマンド・ルールを更新します。
    EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'PII Rule Set', '%', '%', 'Y');
    

    このコマンドでは、PII Rule SetをALTER SYSTEMコマンド・ルールに追加し、すべてのオブジェクト所有者およびオブジェクト名に適用し、コマンド・ルールを有効にします。

ステップ5: 認可のテスト

すべてのコンポーネントの準備ができたら、認可をテストする準備ができます。

  1. SQL*Plusで、ユーザーmdaleとしてPDBにログインします。
    CONNECT mdale@pdb_name
    Enter password: password
    
  2. AUDIT_TRAIL初期化パラメータの現行設定を確認します。
    SHOW PARAMETER AUDIT_TRAIL
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ----------------------
    audit_trail                          string      DB
    

    後で元の設定に戻せるように、これらの設定をノートにとります。

  3. ユーザーmdaleとして、ALTER SYSTEM文を使用し、CPU_COUNTパラメータを変更します。
    ALTER SYSTEM SET CPU_COUNT = 4;
    System altered.
    

    ユーザーmdaleはPII区分を含むSensitiveラベルを割り当てられたので、ALTER SYSTEM文を使用して、AUDIT_TRAILシステム・パラメータを変更できます。

  4. CPU_COUNTパラメータを元の値に戻します。

    次に例を示します。

    ALTER SYSTEM SET CPU_COUNT = 2;
    
  5. ユーザーjsmithとしてログインし、同じALTER SYSTEM文を発行します。
    CONNECT jsmith@pdb_name
    Enter password: password
    
    ALTER SYSTEM SET CPU_COUNT = 14;
    

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

    ERROR at line 1:
    ORA-01031: insufficient privileges
    

    ユーザーjsmithはConfidentialラベルしか割り当てられていないので、ALTER SYSTEM文を実行できません。

ステップ6: このチュートリアルのコンポーネントの削除

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

  1. Oracle Label Security管理者としてPDBに接続し、ラベル・ポリシーとそのコンポーネントを削除します。
    CONNECT LBACSYS@pdb_name
    Enter password: password
    
    EXEC SA_SYSDBA.DROP_POLICY('PRIVACY', TRUE);
    
  2. Oracle Database Vault所有者として接続し、次のコマンドを示した順序で発行し、ALTER SYSTEMコマンド・ルールを以前の設定に戻して、ルール・セットを削除します。

    次に例を示します。

    CONNECT leo_dvowner@pdb_name
    Enter password: password
    
    EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'Allow System Parameters','%', '%', 'Y');
    EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('PII Rule Set', 'Check OLS Factor');
    EXEC DBMS_MACADM.DELETE_RULE('Check OLS Factor');
    EXEC DBMS_MACADM.DELETE_RULE_SET('PII Rule Set');
    COMMIT;
    
  3. Database Vaultアカウント・マネージャとして接続し、ユーザーmdaleとユーザーjsmithを削除します。
    CONNECT bea_dvacctmgr@pdb_name
    Enter password: password
    
    DROP USER mdale;
    DROP USER jsmith;

関連するレポートおよびデータ・ディクショナリ・ビュー

Oracle Database Vaultには、Oracle Database VaultとOracle Label Securityの統合に関する情報が示されるレポートおよびデータ・ディクショナリ・ビューが用意されています。

表11-1では、Oracle Database Vaultレポートを示します。

表11-1 Oracle Database Vault-Oracle Label Security統合に関連するレポート

レポート 説明

「ファクタ構成の問題」レポート

Oracle Label Securityポリシーが存在しないファクタが表示されます。

「アイデンティティ構成の問題」レポート

無効なラベル・アイデンティティ(このアイデンティティのOracle Label Securityラベルが削除されていて、すでに存在しない)が表示されます。

「セキュリティ・ポリシー除外」レポート

EXEMPT ACCESS POLICYシステム権限が付与されているアカウントおよびロールが表示されます。この権限を持つアカウントは、すべてのVirtual Private Databaseのポリシー・フィルタと、Oracle Virtual Private Databaseを間接的に使用するOracle Label Securityポリシーを無視できます。

表11-2に、Oracle Database Vaultで使用される既存のOracle Label Securityポリシーに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表11-2 Oracle Label Securityに使用されるデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー 説明

DBA_DV_MAC_POLICY

定義されているOracle Label Securityポリシーが表示されます。

DBA_DV_MAC_POLICY

Oracle Label Securityポリシーに関連付けられているファクタが表示されます。

DBA_DV_POLICY_LABEL

各ポリシーのDBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。

Oracle Database VaultとOracle Data Guardの統合

Oracle Database VaultとOracle Data Guardの統合では、まずプライマリ・データベースを構成し、次にスタンバイ・データベースを構成します。

ステップ1: プライマリ・データベースの構成

DGMGRLユーティリティを実行し、Database Vaultを登録してから、ALTER SYSTEM文を実行して、プライマリ・データベースを構成する必要があります。

  1. LinuxおよびUNIXシステムの場合、Oracle Database Vaultをインストールするノードのデータベースに/etc/oratabエントリがあることを確認します。

  2. Data Guard Brokerを使用している場合は、コマンド・プロンプトから次のように構成を無効化します。

    dgmgrl sys
    Enter password: password
    
    DGMGRL> disable configuration;
    
  3. プライマリ・サーバーでOracle Database Vaultを登録します(つまり、構成し有効にする)。

    Oracle Database Vaultは、デフォルトで、Oracle Databaseの一部としてインストールされます。この登録のステータスは、DBA_DV_STATUSデータ・ディクショナリ・ビューを問い合せることで確認できます。

  4. SYSDBA管理権限を持つユーザーSYSとしてPDBにログインします。

    sqlplus sys@pdb_name as sysdba
    Enter password: password
    
  5. 次のALTER SYSTEM文を実行します。

    ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE; 
    ALTER SYSTEM SET OS_ROLES=FALSE SCOPE=SPFILE; 
    ALTER SYSTEM SET RECYCLEBIN='OFF' SCOPE=SPFILE; 
    ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE' SCOPE=SPFILE;
    ALTER SYSTEM SET SQL92_SECURITY=TRUE SCOPE=SPFILE;
    ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=SPFILE; 
    ALTER SYSTEM SET REMOTE_OS_ROLES=FALSE SCOPE=SPFILE;
    
  6. 各データベース・インスタンスでALTER SYSTEM文を実行して、ステップ5に示すとおりにパラメータを設定します。

  7. 各PDBを閉じてから再度開きます。

    CONNECT SYS@pdb_name AS SYSDBA
    Enter password: password
    
    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_name OPEN;

関連トピック

ステップ2: スタンバイ・データベースの構成

スタンバイ・データベースに使用されるデータベース内でスタンバイ・データベース構成を実行できます。

  1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。
    sqlplus sys@pdb_name as sysdba
    Enter password: password
    

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

  2. スタンバイ・データベース・インスタンスをマウントします。
    ALTER DATABASE MOUNT STANDBY DATABASE;
    
  3. 次のALTER SYSTEM文を実行します。
    ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE; 
    ALTER SYSTEM SET OS_ROLES=FALSE SCOPE=SPFILE; 
    ALTER SYSTEM SET RECYCLEBIN='OFF' SCOPE=SPFILE; 
    ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE' SCOPE=SPFILE;
    ALTER SYSTEM SET SQL92_SECURITY=TRUE SCOPE=SPFILE;
    ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=SPFILE; 
    ALTER SYSTEM SET REMOTE_OS_ROLES=FALSE SCOPE=SPFILE;
    
  4. PDBを閉じてから、再度開きます。

    次に例を示します。

    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_name OPEN;
  5. 次のスタンバイ・インスタンスをマウントします。
  6. 管理リカバリを次のように再起動します。
    ALTER DATABASE RECOVER MANAGED STANDBY DATABASE; 
    
  7. Data Guard Brokerを使用している場合は、コマンド・ラインから構成を再有効化します。
    dgmgrl sys
    Enter password: password
    
    DGMGRL> enable configuration; 
    

    このコマンドにより、変更内容がプライマリ・データベースのOracle Database Vaultインストールで作成された物理スタンバイ・データベースに適用されます。

  8. 各物理スタンバイ・データベースで、物理スタンバイ・インストール・プロセスを繰り返します。たとえば、物理スタンバイ・データベースが3つある場合は、各スタンバイ・データベースでこれらの手順を実行します。

Oracle Database VaultとOracle Active Data Guardの統合後の監査の動作

Oracle Database VaultをOracle Active Data Guardと統合した後は、監査の構成内容によって、監査レコードがどのように生成されるかが変わります。

読取り専用の問合せ用にActive Data Guardフィジカル・スタンバイ・データベースを使用する場合は、混合モードではなく純粋な統合監査を使用する必要があります。混合モードを使用すると、Oracle Database Vault監査レコードを生成するActive Data Guardフィジカル・スタンバイにおける問合せがブロックされます。Oracle Database Vaultでは、従来のDatabase Vault監査表(DVSYS.AUDIT_TRAILS$)に書き込むことができません。統合監査により、Database Vaultの監査データがOracle Active Data Guardフィジカル・スタンバイ・データベースのオペレーティング・システムのログ・ファイルに確実に書き込まれます。これらのログ・ファイルのデータは統合監査証跡に移動できます。Database Vaultのアクティビティを監査するには、Database Vaultの従来の監査設定が統合監査に適用されないため、統合監査ポリシーを作成する必要があることに注意してください。

Oracle Database Configuration Assistantを使用したOracle Internet Directoryの登録

Oracle Database Vault対応データベースでOracle Internet Directoryを使用できます。

ただし、Oracle Database Configuration Assistant (DBCA)を使用して、Oracle Internet Directory (OID)を登録する場合、まずOracle Database Vaultを無効にする必要があります。