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

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

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

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

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

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

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

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

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

関連項目:

エンタープライズ・ユーザー・セキュリティの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください

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

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

  1. ユーザー・アクセスを許可または禁止するルールを作成します。

    「ルール・セットに追加するルールの作成」の説明に従って新しいルールを作成します。「ルールの作成」ページで、次のPL/SQLを「ルール式」フィールドに入力します。

    SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'user_domain_name'
    

    user_domain_nameをドメインに置き換えます。たとえば、次のようになります。

    SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'myserver.us.example.com'
    
  2. このルールを新しいルール・セットに追加します。

    新しいルール・セットの作成方法は、それに対する既存のルールの追加方法も含め、「ルール・セットの作成」で説明されています。

  3. このルール・セットを保護対象のデータのレルム認可に追加します。

    レルム認可の作成方法は、「レルム認可について」で説明されています。「認可ルール・セット」リストで、ステップ2で作成したルール・セットを選択します。後で、レルム認可がすべてのユーザーに適用されます。

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

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

  1. CREATE ROLEシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。

    たとえば:

    sqlplus system
    Enter password: password
    
  2. マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続します。

    たとえば:

    CONNECT SYSTEM@hrpdb
    Enter password: password
    

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

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

    たとえば:

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

    たとえば:

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

    たとえば:

    CONNECT dbv_acctmgr -- Or, CONNECT dbv_acctmgr@hrpdb
    Enter password: password
    
  7. DV_ACCTMGRロールをグローバルDV_ACCTMGRロールに付与します。
    GRANT DV_ACCTMGR TO g_dv_acctmgr;
    
  8. SYSDBA管理権限を持つユーザーSYSとして接続します。
    CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
    Enter password: password
    
  9. Database VaultユーザーをOIDにインポートするDV_ACCTMGRユーザーに、一時的にCREATE TABLE権限とSELECT_CATALOG_ROLEロールを付与します。
    GRANT CREATE TABLE, SELECT_CATALOG_ROLE TO dbv_acctmgr;
    
  10. コマンド・ラインで、ユーザー移行ユーティリティ(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ファイルにエラーが書き込まれます。

  11. Oracle Internet Directoryセルフ・サービス・コンソール(http://hostname:port/oiddas/)で、グローバルDV_OWNERおよびDV_ACCTMGRロール(g_dv_ownerg_dv_acctmgrなど)をエンタープライズ・ユーザーのDatabase Vaultアカウントに付与します。

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

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

関連項目:

ユーザー移行ユーティリティの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください

11.2 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 Database Advanced Securityガイド』を参照してください

11.3 Oracle Database VaultとOracle Label Securityの統合

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

11.3.1 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リリース21cでは、従来の監査は非推奨です。

11.3.2 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 accts_admin_ace -- Or, sqlplus accts_admin_ace@hrpdb for a PDB
    Enter password: password
    
    ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;

    『Oracle Databaseセキュリティ・ガイド』のガイドラインに従って、安全なパスワードでパスワードを置き換えてください。

  • Oracle Enterprise ManagerでLBACSYSユーザー・アカウントを使用する場合、SYSDBA管理権限を持つユーザーSYSとしてEnterprise Managerにログインし、このユーザーにSELECT ANY DICTIONARYおよびSELECT_CATALOG_ROLEシステム権限を付与します。

  • 適切なOracle Label Securityポリシーが定義されていることを確認してください。詳細は、『Oracle Label Security管理者ガイド』を参照してください。

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

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

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

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

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

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

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

関連項目:

行ラベルおよびポリシーの詳細は、『Oracle Label Security管理者ガイド』を参照してください
11.3.3.2 Oracle Label Securityポリシーと連携するファクタの構成

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

  1. DV_OWNERまたはDV_ADMINロールおよびSELECT ANY DICTIONARY権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。ログイン方法については、「Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン」を参照してください。
  2. ユーザー・アカウントLBACSYSを、Label Securityポリシーが適用されているスキーマを含むレルムの所有者にします。

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

    LBACSYSアカウントは、Oracle Universal Installerのカスタム・インストール・オプションを使用してOracle Label Security内に作成されます。Oracle Database Vaultとともに使用するOracle Label Securityポリシーを作成するには、LBACSYSを使用予定のレルムの所有者にする必要があります。詳細は、「レルム認可について」を参照してください。

  3. レルムの参加者または所有者として(ラベル・セキュリティ・ポリシーが適用されている)スキーマの所有者を認可します。
  4. 「管理」ページの「Database Vaultコンポーネント」で、「OLS統合」をクリックします。
  5. 「ラベル・セキュリティ・ポリシー統合」ページで、次のようにします。
    • 新しいラベル・セキュリティ・ポリシーをDatabase Vaultに登録するには、「作成」をクリックします。

    • Database Vaultに登録されている既存のラベル・セキュリティ・ポリシーを編集するには、リストでそのポリシーを選択して「編集」をクリックします。

  6. 次の設定を入力します。
    • Label Securityポリシー: リストから使用するOracle Label Securityポリシーを選択します。

    • アルゴリズム: Oracle Label Securityで2つのラベルをマージしている場合、ラベルマージ・アルゴリズムを必要に応じて変更します。ほとんどの場合、「LII - 最小レベル/論理積/論理積」を選択します。この設定は、Oracle Label Security管理者が2つのラベルをマージする際に最も一般的に使用する方法です。この設定により、ラベルが異なる2つのデータ・セットを組み合せる際に必要な結果のラベルをアプリケーションで特定する必要がある場合に、最適な柔軟性が提供されます。これは、データ・ラベルが異なる行で結合を使用して問合せを実行する必要がある場合にも必要です。

      マージ・アルゴリズムの指定にDBMS_MACADMパッケージを使用する場合、使用可能なマージ・アルゴリズムをすべて示すリストについては、表19-2を参照してください。

    • ラベル・セキュリティ・ポリシー・ファクタ: 「使用可能なファクタ」リストの「ラベル・セキュリティ・ポリシー・ファクタ」で、Oracle Label Securityポリシーと関連付けるファクタを選択します。「移動」をクリックして、ファクタを「選択したファクタ」リストに移動します。[Ctrl]キーを押しながら必要な各ファクタをクリックすると、複数のファクタを選択できます。

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

    ポリシーは「ラベル・セキュリティ・ポリシー統合」ページにリストされます。

  8. ラベルのポリシーを使用して、ファクタ・アイデンティティのラベル付けを行います。

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

ノート:

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

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

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

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

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

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

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

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

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

    たとえば:

    sqlplus accts_admin_ace
    Enter password: password

    マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続する必要があります。

    たとえば:

    sqlplus accts_admin_ace@hrpdb
    Enter password: password

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

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

    『Oracle Databaseセキュリティ・ガイド』のガイドラインに従って、安全なパスワードでパスワードを置き換えてください。

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

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

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

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

  1. SQL*Plusで、Oracle Label Security管理者LBACSYSとして接続します。
    CONNECT LBACSYS -- Or, CONNECT LBACSYS@hrpdb
    Enter password: password

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

    たとえば:

    CONNECT accts_admin_ace -- Or, CONNECT bea_dvaccmgr@hrpdb
    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ラベルを取得します。

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

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

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

    たとえば:

    CONNECT sec_admin_owen -- Or, CONNECT leo_dvowner@hrpdb
    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');
11.3.4.5 ステップ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コマンド・ルールに追加し、すべてのオブジェクト所有者およびオブジェクト名に適用し、コマンド・ルールを有効にします。

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

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

  1. ユーザーmdaleとしてSQL*Plusにログインします。
    CONNECT mdale -- Or, CONNECT mdale@hrpdb
    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 -- Or, CONNECT jsmith@hrpdb
    Enter password: password
    
    ALTER SYSTEM SET CPU_COUNT = 14;
    

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

    ERROR at line 1:
    ORA-01031: insufficient privileges
    

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

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

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

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

    たとえば:

    CONNECT accts_admin_ace
    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 accts_admin_ace -- Or, CONNECT accts_admin_ace@hrpdb
    Enter password: password
    
    DROP USER mdale;
    DROP USER jsmith;

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

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

表11-1では、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「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_FACTORビュー

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

DBA_DV_POLICY_LABELビュー

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

11.4 Oracle Database VaultとOracle Data Guardの統合

Oracle Database Vaultでは、Oracle Data Guard環境を保護して、高可用性および障害時リカバリ・アーキテクチャのためにさらにセキュリティを提供できます。

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

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

  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として、データベース・インスタンスにログインします。

    sqlplus sys 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. 各データベース・インスタンスを再起動します。

    CONNECT SYS AS SYSOPER
    Enter password: password
    
    SHUTDOWN IMMEDIATE
    STARTUP

関連トピック

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

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

  1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。
    sqlplus sys as sysdba
    Enter password: password
    
  2. マルチテナント環境で、適切なPDBに接続します。

    たとえば:

    CONNECT bea_dvacctmgr@hrpdb
    Enter password: password
    

    使用可能なPDBを見つけるには、show pdbsコマンドを実行します。現在のPDBを確認するには、show con_nameコマンドを実行します。

  3. スタンバイ・データベース・インスタンスをマウントします。
    ALTER DATABASE MOUNT STANDBY DATABASE;
    
  4. 次の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;
    
  5. データベース・インスタンスを再起動またはマウントします。

    たとえば:

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

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

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

11.4.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の従来の監査設定が統合監査に適用されないため、統合監査ポリシーを作成する必要があることに注意してください。

11.4.4 Oracle Data Guard環境でのOracle Database Vaultの無効化

Oracle Data Guard環境でOracle Database Vaultを無効にする場合は、まずプライマリ・データベースで、次にスタンバイ・データベースでプロシージャを実行する必要があります。

次の順序で、プライマリ・データベースとスタンバイ・データベースでOracle Database Vaultの無効化を実行します。

  1. プライマリ・データベースでOracle Database Vaultを無効にします。
  2. セカンダリ・データベースでOracle Database Vaultを無効にします。
  3. プライマリ・データベースを再起動します。
  4. 各スタンバイ・データベースを再起動します。

11.5 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を無効にする必要があります。

11.6 Oracle Database VaultとOracle APEXの統合

Oracle Database Vaultは、Oracle APEXと統合できます。

11.6.1 Oracle Database VaultとOracle APEXの統合について

Oracle APEXは、SQLおよびPL/SQLを使用してWebアプリケーションを開発するためのOracleの主要ツールです。

Oracle Database Vaultを構成し有効化して、Oracle APEXで開発されたアプリケーションを保護できます。Oracle Database Vaultでは、カスタム・アプリケーションやエンタープライズ・アプリケーションなど、他のアプリケーションで使用可能なOracle APEXに、同じコントロールを提供できます。Oracle APEXには、アプリケーションやOracle APEXワークスペースおよびユーザーを作成し管理するためのそれ固有のWebベース・ユーザー・インタフェースがあります。そのため、Oracle Database Vaultが有効になっているOracleデータベースをOracle APEXで操作できるように、特定の手順に従う必要があります。

11.6.2 Oracle Database Vaultが有効なOracle APEXのインストールまたはアップグレード

Oracle Database Vaultが有効な場合は、Oracle APEXのインストールまたはアップグレードに追加の権限が必要です。

  1. Oracle Database Vault対応データベースのルートに、DV_OWNERロールを持つユーザーとしてログインします。
  2. すべてのプラガブル・データベース(PDB)のSYSDV_PATCH_ADMINロールを付与します。
    GRANT DV_PATCH_ADMIN TO SYS CONTAINER=ALL;
  3. Oracle Application Expressインストレーション・ガイドの指示に従って、Oracle APEXのインストールを完了します。
    このインストールにOracle Rest Data Services (ORDS)が含まれている場合は、Oracle Rest Data Servicesのプロキシ・ユーザーへのOracle APEXの認可を参照してください。
  4. DV_OWNERロールを持つユーザーとして、コンテナ・データベースで、すべてのPDBからSYSからDV_PATCH_ADMINロールを取り消します。
    REVOKE DV_PATCH_ADMIN FROM SYS CONTAINER=ALL;

11.6.3 Oracle Database VaultアクティビティのためのOracle APEXスキーマの認可

Oracle APEXスキーマ(APEX_SCHEMAなど)を、Oracle APEXで必要なOracle Database Vaultレルムおよび認可に追加する必要があります。

  1. Oracle Database Vault対応データベースのプラガブル・データベース(PDB)に、DV_OWNERロールを持つユーザーとして接続します。
  2. Oracle APEXスキーマを次のレルム、ポリシーおよびルールに対して認可します。
    たとえば、APEX_SCHEMAというOracle APEXスキーマの場合:
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
     REALM_NAME      => 'Oracle Default Schema Protection Realm',
     GRANTEE         => 'APEX_SCHEMA',
     RULE_SET_NAME   => NULL,
     AUTH_OPTIONS    => DBMS_MACUTL.G_REALM_AUTH_OWNER);
    END;
    /
    
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
     REALM_NAME      => 'Oracle System Privilege and Role Management Realm',
     GRANTEE         => 'APEX_SCHEMA',
     RULE_SET_NAME   => NULL,
     AUTH_OPTIONS    => DBMS_MACUTL.G_REALM_AUTH_OWNER);
    END;
    /
    
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
     REALM_NAME     => 'Oracle Default Component Protection Realm',
     GRANTEE        => 'APEX_SCHEMA',
     RULE_SET_NAME  => NULL,
     AUTH_OPTIONS   => DBMS_MACUTL.G_REALM_AUTH_OWNER);
    END;
    /
    
    BEGIN
     DBMS_MACADM.ADD_AUTH_TO_REALM(
     REALM_NAME     => 'Database Vault Account Management',
     GRANTEE        => 'APEX_SCHEMA',
     RULE_SET_NAME  => NULL,
     AUTH_OPTIONS   => DBMS_MACUTL.G_REALM_AUTH_OWNER);
    END;
    /
    
    EXEC DBMS_MACADM.UPDATE_POLICY_STATE('Oracle Account Management Controls',DBMS_MACADM.G_PARTIAL);
    BEGIN 
     DBMS_MACADM.UPDATE_RULE('Is User Manager'
    ,'DVSYS.DBMS_MACUTL.USER_HAS_ROLE_VARCHAR(''DV_ACCTMGR'',SYS_CONTEXT(''userenv'',''current_user'')) = ''Y''');
    END;
    /
    
    BEGIN 
     DBMS_MACADM.UPDATE_RULE('Is Alter DVSYS Allowed'
    ,'DVSYS.DBMS_MACADM.IS_ALTER_USER_ALLOW_VARCHAR(SYS_CONTEXT(''userenv'',''current_user'')) = ''Y''');
    END;
    /

11.6.4 Oracle Schedulerを使用するためのOracle APEXの認可

Oracle APEXはOracle Schedulerを使用しており、引き続き使用するには権限が必要です。

  1. Oracle Database Vault対応データベースのプラガブル・データベース(PDB)を、DV_OWNERロールを持つユーザーとして接続します。
  2. Oracle APEXスキーマに対するスケジューラ権限の使用をSYSユーザーに認可します。
    たとえば、APEX_SCHEMAという名前のOracle APEXスキーマの場合:
    EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('SYS','APEX_SCHEMA');
  3. ジョブ・スケジューラ権限の使用をOracle APEXユーザーに認可します。
    EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('APEX_SCHEMA','%');

11.6.5 DDLタスクを実行するためのOracle APEXの認可

アクセス権を持っているが、追加のOracle Database Vault制御の対象となる可能性があるオブジェクトに対してDDL権限を使用するよう、Oracle APEXスキーマを認可する必要があります。

  1. Oracle Database Vault対応データベースのプラガブル・データベース(PDB)を、DV_OWNERロールを持つユーザーとして接続します。
  2. Oracle APEXスキーマのDDL使用認可
    たとえば、APEX_SCHEMAという名前のOracle APEXスキーマの場合:
    EXEC DBMS_MACADM.AUTHORIZE_DDL('APEX_SCHEMA','%');

11.6.6 情報ライフサイクル・メンテナンス・タスクを実行するためのOracle APEXの認可

メンテナンス・タスクを実行するには、Oracle APEXスキーマを認可する必要があります。

  1. Oracle Database Vault対応データベースのプラガブル・データベース(PDB)を、DV_OWNERロールを持つユーザーとして接続します。
  2. Oracle APEXスキーマにDDL権限の使用を認可します。
    たとえば、APEX_SCHEMAという名前のOracle APEXスキーマの場合:
    EXEC DBMS_MACADM.AUTHORIZE_MAINTENANCE_USER('APEX_SCHEMA','%');

11.6.7 Oracle Rest Data Servicesのプロキシ・ユーザーへのOracle APEXの認可

Oracle Rest Data Services (ORDS)を使用する場合は、プロキシ・ユーザーを認可する必要があります。

  1. Oracle Database Vault対応データベースのプラガブル・データベース(PDB)を、DV_OWNERロールを持つユーザーとして接続します。
  2. プロキシできる既存のプロキシ・ユーザーおよびデータベース・ユーザーを検索します。
    SELECT PROXY, CLIENT FROM PROXY_USERS;
  3. ユーザーのプロキシを認可します。
    EXEC DBMS_MACADM.AUTHORIZE_PROXY_USER('proxy','client');
  4. 実行したPROXY_USERS問合せにリストされている組合せごとに、このステップを繰り返します。

11.6.8 Oracle Database Vaultによって保護されるOracle APEXおよびアプリケーション・オブジェクト

Oracle Database Vaultレルムおよびコマンド・ルールによって保護されているオブジェクトは、Oracle APEXの統合後も引き続き保護されます。

Oracle Database Vaultがこれらのオブジェクトへのアクセス権を付与する前に、同じ権限および認可を満たす必要があります。たとえば、HRスキーマ・オブジェクトへのアクセスを必要とするOracle APEXワークスペースを作成し、HRスキーマ・オブジェクトを保護するOracle Database Vaultレルムがある場合、そのワークスペースにはレルムにアクセスするための認可が必要です。

11.6.9 Oracle APEXおよびDatabase Vault統合のトラブルシューティング

Oracle APEXとDatabase Vaultの統合に問題がある場合は、トレースおよびOracle Database Vaultシミュレーション・モードを使用してこれらの問題を診断できます。

  • トレース: トレース・ファイルを使用すると、サーバー・プロセス・イベントおよびバックグラウンド・プロセス・イベントのOracle Database Vaultデータベース・インスタンスを追跡できます。トレース・ファイルを使用して、Oracle Database Vaultポリシーの認可が成功したか失敗したかを確認します。また、バグやその他の予期しない動作などの問題の解決にも役立ちます。
  • シミュレーション・モード: Oracle Database Vaultのレルムおよびコマンド・ルールによってSQL実行をブロックするかわりに、シミュレーション・モードを使用してシミュレーション・ログに違反を記録できます。Oracle Database Vaultでは、これらのエラーを一元的な場所に格納するため、簡単に分析できます。