24 CDBでのOracle Database Vaultの使用
Oracle Database Vaultは、マルチテナント・コンテナ・データベース(CDB)で使用できます。
- Oracle Database Vaultについて
Oracle Database Vaultのセキュリティ統制により、アプリケーション・データを不正アクセスから守るとともに、プライバシおよび規制の要件に順守できます。 - マルチテナント環境におけるOracle Database Vaultの動作について
統合のセキュリティをさらに強化するために、Oracle Database VaultをOracle Multitenantとともに使用できます。 - Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
、DBA_OLS_STATUS
およびCDB_OLS_STATUS
データ・ディクショナリ・ビューでは、Oracle Databaseが構成され有効化されているかどうかを確認します。 - マルチテナント環境におけるOracle DatabaseへのOracle Database Vaultの登録
Oracle Database Vaultは、いくつかのシナリオに基づいてマルチテナント環境で登録できます。 - レルムの構成
データベース・オブジェクトを保護するために、これらのオブジェクトの周辺にレルムを作成し、このデータへのユーザー・アクセスを制御するための認可を設定します。 - マルチテナント環境におけるルール・セットとルール
マルチテナント環境では、アプリケーション・ルートでルール・セットおよびその関連付けられたルールを作成できます。 - マルチテナント環境でのコマンド・ルール
マルチテナント環境では、CDBルートまたはアプリケーション・ルートのどちらかで、共通およびローカルのコマンド・ルールを作成できます。 - マルチテナント環境におけるOracle Database Vaultポリシー
Oracle Database Vaultポリシーは、それらが作成されたプラガブル・データベース(PDB)に対してのみローカルとなります。 - Database Vault操作制御を使用したローカルPDBデータへのマルチテナント共通ユーザー・アクセスの制限
CDBルート共通ユーザー(インフラストラクチャ・データベース管理者など)によるPDBアクセスを制御できます。 - スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン
リリース12c以降のスタンドアロンのOracle DatabaseはPDBに変換可能で、さらにそのPDBはCDBにプラグインできます。
親トピック: マルチテナント環境でのOracle機能の使用
Oracle Database Vaultについて
Oracle Database Vaultのセキュリティ統制により、アプリケーション・データを不正アクセスから守るとともに、プライバシおよび規制の要件に順守できます。
統制によって特権アカウントによるアプリケーション・データへのアクセスをブロックすることや、信頼できるパスの認可を使用してデータベース内での要注意操作を統制することができます。権限およびロールの分析により、最小権限のベスト・プラクティスを使用することで、既存のアプリケーションのセキュリティを強化できます。Oracle Database Vaultは、既存のデータベース環境のセキュリティを透過的に強化するので、コストと時間をかけてアプリケーションを変更する必要はありません。
関連トピック
マルチテナント環境におけるOracle Database Vaultの動作について
統合のセキュリティをさらに強化するために、Oracle Database VaultをOracle Multitenantとともに使用できます。
Oracle Database Vaultでは、プラガブル・データベース(PDB)内や、PDBとコンテナ・データベースでの共通特権ユーザーとの間での、特権ユーザー・アクセスを禁止できます。各PDBには、レルム、ルール・セット、コマンド・ルール、デフォルト・ポリシー(デフォルト・レルムなど)など独自のDatabase Vaultメタデータがあります。また、任意の子のPDBでDVSYS
スキーマやDVF
スキーマ内のオブジェクトを自動的に利用できます。どちらのスキーマも共通のユーザー・スキーマです。
共通レルムはアプリケーション・ルートのみで構成できますが、共通ルール・セットおよびコマンド・ルールは、アプリケーション・ルートまたはCDBルートのどちらでも作成できます。アプリケーション・ルート内の共通コマンド・ルールは、その関連付けられたPDBに適用され、CDBルート内の共通コマンド・ルールは、CDB環境内のすべてのPDBに適用されます。共通レルムおよびコマンド・ルールを作成できることにより、CDB環境全体で共有の一連のレルム、ルール・セットまたはコマンド・ルールを使用するポリシーを作成できます。マルチテナント環境ですべてのPDBに対してこれらの同じコンポーネントを作成する必要はありません。共通保護は、Oracle Database Vaultが有効になっているアプリケーション・ルートに関連付けられたすべてのPDBに適用されます。
PDBごとに個別のローカル・ポリシーを作成できます。Database Vaultを使用してオブジェクトを保護する場合、Database Vaultは、共通のオブジェクトの共通の権限を、ローカル・システム権限と同じ強制ルール下に置きます。
Database Vaultを有効にしたPDBを構成すると、DVSYS
スキーマが共通ユーザー・スキーマとなり、ルートに格納されます。つまり、DVSYS
スキーマ内のすべてのオブジェクト(表、データ・ディクショナリ・ビュー、ユーザー・アカウント、PL/SQLパッケージ、デフォルト・ポリシーなど)が、このスキーマに利用可能な共通の権限の影響下にあるということになります。すなわち、レルム、ファクタなどをルートに作成してルートのスキーマを保護できます。Database Vaultは、関連付けられたPDBで構成する前に、まずルートで構成するようにしてください。
CDBルートでOracle Database Vaultを有効にするときは、通常モードまたは厳密モードのどちらかを選択できます。設定は、選択した設定に基づいてCDB全体に伝播されます。たとえば、CDBに、Database Vaultが有効になっているPDBとDatabase Vaultが有効になっていないPDBが含まれているとします。通常モードを使用してDatabase Vaultを有効にした場合は、両方のタイプのPDBが通常どおり機能し続けます。厳密モードを使用してDatabase Vaultを有効にした場合、Database Vaultが無効になっているPDBは、制限されたモードで動作します。
図24-1では、Database Vaultが有効になっているかどうかによって、標準モードのデータベースで共通およびローカル・データベース管理者に可能になるアクセスがどのように異なるかを示します。このシナリオでは、共通ユーザーおよびローカル・ユーザーのいずれも、PDB1とPDB2のレルムにアクセスできません。共通ユーザーとPDB3のローカル・ユーザーはどちらも、Database Vaultが有効化されていないPDB3内のCustom Appアプリケーションにアクセスできます。
Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
、DBA_OLS_STATUS
およびCDB_OLS_STATUS
データ・ディクショナリ・ビューは、Oracle Databaseが構成され有効になっているかどうかを確認します。
SYS
ユーザー、およびDBA
ロールを付与されているユーザーが、これらのビューを問合せできます。
-
Database Vaultの場合:
-
非マルチテナント・データベースのために、またはマルチテナント環境でルートのみか個々のPDBのためにDatabase Vaultステータスを確認する場合は、
DBA_DV_STATUS
を問い合せます。次に例を示します。SELECT * FROM DBA_DV_STATUS;
次のような出力が表示されます。
NAME STATUS -------------------- ----------- DV_CONFIGURE_STATUS TRUE DV_ENABLE_STATUS TRUE
-
管理権限がある共通ユーザーとして、マルチテナント環境ですべてのPDBのDatabase Vaultステータスを確認する場合は、コンテナID (
CON_ID
)フィールドの追加を提供する、CDB_DV_STATUS
を問い合せます。
-
-
Oracle Label Securityの場合は、次のデータ・ディクショナリ・ビューを問い合せます。これらは、Database Vaultのそれらに相当するビューに似ています。
-
DBA_OLS_STATUS
-
CDB_OLS_STATUS
-
マルチテナント環境におけるOracle DatabaseへのOracle Database Vaultの登録
Oracle Database Vaultは、いくつかのシナリオに基づいてマルチテナント環境で登録できます。
- CDBルートでのDatabase Vaultの登録
マルチテナント環境では、CDBルートでDatabase Vault適用対象のロールを使用する共通ユーザーにOracle Database Vaultを登録します。 - 個別PDBを管理するためのDatabase Vault共通ユーザーの登録
マルチテナント環境では、最初にOracle Database Vaultをルートで登録し、次にPDBで登録する必要があります。 - 個別PDBを管理するためのDatabase Vaultローカル・ユーザーの登録
最初にOracle Database Vaultをルートに登録し、次にPDBに登録する必要があります。 - Database Vault対応PDBへの接続
マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。 - マルチテナント環境でのOracle Database Vaultの手動インストール
特定の条件のマルチテナント環境に対しては、Oracle Database Vaultを手動でインストールする必要があります。
CDBルートでのDatabase Vaultの登録
マルチテナント環境では、CDBルートでDatabase Vault適用対象のロールを使用する共通ユーザーにOracle Database Vaultを登録します。
個別PDBを管理するためのDatabase Vault共通ユーザーの登録
マルチテナント環境では、Oracle Database Vaultをまずルートに登録して、後からPDBに登録する必要があります。
ORA-47503「Database VaultはCDB$ROOTで有効化されていません。」
エラーが表示されます。
特定のPDBを管理するDatabase Vaultローカル・ユーザーの登録
Oracle Database Vaultをまずルートで登録してから、PDBで登録する必要があります。
ORA-47503「Database VaultはCDB$ROOTで有効化されていません。」
エラーが表示されます。
Database Vault対応PDBへの接続
マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。
このシナリオでは、接続されるデータベースには、独自のローカルDatabase Vaultアカウントがあります。Database Vault対応データベースをDatabase Vaultが有効になっていないCDBに接続する場合は、CDBでDatabase Vaultを有効にしてCDBを再起動するまで、PDBは制限されたモードのままになるということを知っておいてください。Database Vaultが有効になっていないPDBをDatabase Vaultが有効になっているCDBに接続する場合は、PDBでDatabase Vaultを有効にしてPDBを再起動するまで、PDBは制限されたモードのままになります。このDatabase Vaultが有効になっていないPDBの接続も引き続き使用できます。ただし、CDBで厳密オプションが設定されてDatabase Vaultが有効になっている場合は、PDBでDatabase Vaultを有効にする必要があります。
Database Vault対応PDBを接続する前に、Database Vaultロールが共通ユーザーに付与されている場合は、PDBの接続が共通ユーザーに与える影響を完全に理解しておいてください。
マルチテナント環境でのOracle Database Vaultの手動インストール
特定の条件のマルチテナント環境に対しては、Oracle Database Vaultを手動でインストールする必要があります。
レルムの構成
データベース・オブジェクトを保護するために、これらのオブジェクトの周辺にレルムを作成し、このデータへのユーザー・アクセスを制御するための認可を設定します。
- レルムの概要
レルムを使用すると、特定のオブジェクト・タイプなど、データベース・オブジェクトを保護できます。 - マルチテナント環境におけるレルム認可
マルチテナント環境では、共通レルム認可のルールおよび動作は、他の共通オブジェクトの認可と同様です。
レルムの概要
レルムを使用すると、特定のオブジェクト・タイプなど、データベース・オブジェクトを保護できます。
- レルムについて
レルムは、特定のアプリケーションのために保護する必要のあるデータベース・スキーマ、データベース・オブジェクトおよびデータベース・ロールのグループです。 - マルチテナント環境におけるレルム
マルチテナント環境では、アプリケーション・ルート内の共通オブジェクトを保護するためにレルムを作成できます。
親トピック: レルムの構成
レルムについて
レルムは、特定のアプリケーションのために保護する必要のあるデータベース・スキーマ、データベース・オブジェクトおよびデータベース・ロールのグループです。
レルムは、データベース・オブジェクトの保護ゾーンとみなすことができます。スキーマは、表、ビューおよびパッケージなどのデータベース・オブジェクトの論理的な集合で、ロールは権限の集合です。スキーマおよびロールを機能グループに分類することにより、システム権限を使用するユーザーがこれらのグループに対して行える操作を制御し、データベース管理者またはシステム権限を持つその他の強力なユーザーによる不正なデータ・アクセスを防ぐことができます。Oracle Database Vaultは、既存のOracleデータベースの任意アクセス制御モデルを置き換えません。レルムおよびコマンド・ルールの両方で、このモデルの上位の層として機能します。
Oracle Database Vaultには、通常と必須という2つのタイプのレルムがあります。どちらのタイプのレルムでも、スキーマ全体の保護と、スキーマ内の重要オブジェクト(表や索引)の選択的な保護が可能です。通常レルムの場合、オブジェクト権限を付与されているオブジェクトの所有者またはユーザーはレルム認可なしで問合せやDML操作を実行できますが、DDL操作の実行にはレルム認可が必要です。必須レルムの場合、レルム内のオブジェクトにさらに厳格な保護が適用されます。必須レルムの場合、オブジェクト権限およびシステム権限に基づくアクセスの両方がブロックされ、オブジェクト権限を持つユーザーはレルム認可なしで問合せやDML操作またはDDL操作を実行することができません。つまり、オブジェクト所有者であっても、自身のオブジェクトが必須レルムで保護されている場合、適切なレルム認可を受けないとそのオブジェクトにアクセスできません。
Oracle Flashback Technologyを使用するデータベースの場合、標準レルムと必須レルムのどちらも、フラッシュバック表に対する動作が強制的に同じになります。ユーザーにレルムに対する権限がある場合、ユーザーは、レルムで保護された表に対してFLASHBACK TABLE
SQL文を実行できます。
情報ライフサイクル管理(ILM)を使用するデータベースの場合、Database Vault管理者は、DBMS_MACADM.AUTHORIZE_MAINTENANCE_USER
およびDBMS_MACADM.UNAUTHORIZE_MAINTENANCE_USER
プロシージャを使用して、レルムで保護されたオブジェクトに誰がILM操作を実行可能かを制御できます。
スキーマ、スキーマ内の特定のタイプのすべてのオブジェクト、またはスキーマ内の個々のオブジェクトをレルムに登録できます。レルムを作成すると、レルムで保護する一連のスキーマ・オブジェクトまたはロール(セキュア・オブジェクト)を登録し、セキュア・オブジェクトにアクセスする一連のユーザーやロールを認可できます。通常レルムで保護されるオブジェクトは、直接オブジェクト権限を持つユーザーからのDMLアクセスを許可します。
たとえば、経理部で使用される既存のすべてのデータベース・スキーマを保護するレルムを作成できます。レルムに対して認可されていないユーザーは、保護された経理データにシステム権限を使用してアクセスすることを許可されません。スキーマ全体が保護される場合は、表、索引、プロシージャおよびその他のオブジェクトなど、スキーマ内のすべてのオブジェクトが保護されます。
Oracle Database Vaultに作成するレルム上でレポートを実行できます。開発フェーズやテスト・フェーズの間、また、本番フェーズの間でも、シミュレーション・モードを使用して、アクセスをブロックするかわりにレルム違反のみを記録できます。これにより、Database Vaultレルムを使用してアプリケーションを迅速にテストできます。
Oracle Enterprise Manager Cloud ControlでOracle Database Vault Administratorページを使用することで、レルムを構成できます。別の方法としては、Oracle Database Vaultで提供されるPL/SQLインタフェースおよびパッケージを使用することで、レルムを構成できます。
親トピック: レルムの概要
マルチテナント環境におけるレルム
マルチテナント環境では、アプリケーション・ルート内の共通オブジェクトを保護するためにレルムを作成できます。
個々のプラガブル・データベース(PDB)内でこれらのオブジェクトの周りに多数のオブジェクトおよびレルムを作成するのでなく、アプリケーション・ルートでレルムを作成する利点は、それらをアプリケーション・ルートという1つの場所で作成できるということです。このような方法で、それらを一元的に管理できます。
CDBルートでは、共通レルムは作成できません。
Database Vaultの共通レルムは、通常レルムか必須レルムのどちらかにできます。このレルムは、PDB内のローカル・オブジェクトではなく、アプリケーション・ルート内のオブジェクトのみを保護します。CDBルート、アプリケーション・ルート、および影響を受けるPDBはすべて、Database Vaultに対応している必要があります。
共通レルムを構成するには、一般に、DV_OWNER
またはDV_ADMIN
ロールが付与されている必要があります。共通レルムの共通認可を付与するには、アプリケーション・ルートにいる必要があります。アプリケーション・ルートに関連付けられているPDBにレルムを伝播するには、アプリケーション・ルートを同期させる必要があります。たとえば、saas_sales_app
というアプリケーションを同期させるには、次のようにします。
ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
関連トピック
親トピック: レルムの概要
マルチテナント環境におけるレルム認可
マルチテナント環境では、共通レルム認可のルールおよび動作は、他の共通オブジェクトの認可と同様です。
共通レルムのローカル認可
共通レルムのローカル認可とは、ユーザーがアクセスしているPDBのためにこのユーザーが保持している認可のことを指します。
共通レルムのローカル認可のルールは、次のとおりです。
-
DV_OWNER
またはDV_ADMIN
ロールを共通で付与されているユーザーは、共通ユーザー、共通ロール、ローカル・ユーザーおよびローカル・ロールにローカル認可を付与できます。共通DV_OWNER
またはDV_ADMIN
ユーザーは、PDB内の共通レルムからローカル認可を削除することもできます。 -
ローカルDatabase Vault管理者は、PDB内のローカルで認可できます(つまり、ローカル認可をローカル・ユーザーと共通ユーザーの両方に付与する)。また、共通Database Vault管理者は、各PDBで認可を付与できます。共通レルム認可は、アプリケーション・ルートで共通Database Vault管理者のみが付与できます。
-
共通Database Vault管理者は、ローカル認可を、PDB内から共通レルムに追加することも、それから削除することもできます。
-
共通ユーザーに共通レルムのローカル認可しかない場合、このユーザーは、このローカル認可以外のPDB内の共通レルムにはアクセスできません。
-
共通ユーザーまたは共通ロールは、共通レルムへのローカル認可と共通認可の両方を同時に保持できます。共通レルムから共通ユーザーのローカル認可を削除しても、共通ユーザーの共通認可には影響しません。共通レルムから共通ユーザーの共通認可を削除しても、共通ユーザーのローカル認可には影響しません。
共通レルムの共通認可
共通レルムの共通認可とは、Database Vaultに対応しているすべてのコンテナで認可が有効になっていると同時に、共通ユーザーまたは共通ロールがアプリケーション・ルートで保持している認可のことを指します。
共通レルムのローカル認可のルールは、次のとおりです。
-
DV_OWNER
またはDV_ADMIN
ロールを共通で付与されているユーザーは、アプリケーション・ルート内の共通ユーザーまたはロールに共通レルム認可を付与できます。この共通Database Vault管理者は、アプリケーション・ルート内にいながら、共通認可の削除を実行できます。 -
この共通認可は、CDB内の、Database Vaultに対応しているコンテナに適用されます。
-
共通ユーザーにアプリケーション・ルート内の共通レルムに対する権限がある場合、このユーザーは、アプリケーション・ルート内およびアプリケーションPDB内の共通レルムによって保護されているオブジェクトにアクセスできます。
-
共通レルムに関連付けられているルール・セットは、共通ルール・セットである必要があります。共通認可に関連付けられている共通ルール・セットに追加されるルールに、ローカル・オブジェクトを含めることはできません。
アプリケーション・ルート内と個々のPDB内でのレルムの認可の動作
コンテナでのDatabase Vault強制の間に、共通レルムは、それがPDBでローカルで使用される場合の同じレルムと同じ強制動作を実行します。
親トピック: レルムの構成
マルチテナント環境におけるルール・セットとルール
マルチテナント環境では、アプリケーション・ルートでルール・セットおよびその関連付けられたルールを作成できます。
共通レルムでは、関連付けられたレルムまたはコマンド・ルールをDatabase Vaultで評価するときに、共通ルール・セットを使用する必要があります。共通ルール・セットとそのルールは、アプリケーション・ルートでのみ作成できます。共通ルール・セットは、作成後、共通ルール・セットを作成したルートに関連付けられているすべてのコンテナ内に存在します。共通ルール・セットは、共通ルールのみを含むことができます。
共通ルール・セットとそのルールを構成するには、DV_OWNER
またはDV_ADMIN
ロールが共通で付与されている必要があります。
関連トピック
マルチテナント環境におけるコマンド・ルール
マルチテナント環境では、CDBルートまたはアプリケーション・ルートのどちらかで、共通およびローカルのコマンド・ルールを作成できます。
共通コマンド・ルールは、共通のレルム、ルール・セットおよびルールのみに関連付けることができます。ローカル・コマンド・ルールは、ローカルのレルム、ルール・セットおよびルールのみに関連付けることができます。
これらのコマンド・ルールをマルチテナント環境全体に適用するには、DVADM
またはDVOWNER
ロールを付与された共通ユーザーとして、CDBルートまたはアプリケーション・ルートからコマンド・ルール・プロシージャを実行する必要があります。CDBルートで作成される共通コマンド・ルールは、そのCDB環境内のすべてのPDBに適用されます。アプリケーション・ルートで作成される共通コマンド・ルールは、このアプリケーション・ルートに関連付けられているPDBのみに適用されます。CDBルートまたはアプリケーション・ルートに関連付けられているPDBにコマンド・ルールを伝播するには、PDBを同期させる必要があります。たとえば、saas_sales_app
というアプリケーション・ルートをアプリケーションPDBと同期するには、次のようにします。
ALTER PLUGGABLE DATABASE APPLICATION saas_sales_app SYNC;
CDBルートの共通コマンド・ルールをPDBと同期するには:
ALTER PLUGGABLE DATABASE APPLICATION APP$CDB$SYSTEM SYNC;
USER_ROLE_PRIVS
データ・ディクショナリ・ビューを問い合せることで、ユーザーのロールを確認できます。コマンド・ルールに関する情報を確認するには、DBA_DV_COMMAND_RULE
データ・ディクショナリ・ビューを問い合せます。
マルチテナント環境におけるOracle Database Vaultポリシー
Oracle Database Vaultポリシーは、それらが作成されたプラガブル・データベース(PDB)に対してのみローカルとなります。
つまり、PDBでポリシーを作成した場合は、ローカルのレルムおよびコマンド・ルールのみをそれに追加できます。共通レルムまたは共通コマンド・ルールを保持できるDatabase Vaultポリシーは作成できません。
Database Vault操作制御を使用したローカルPDBデータへのマルチテナント共通ユーザー・アクセスの制限
インフラストラクチャ・データベース管理者など、CDBルートの共通ユーザーでPDBアクセスを制御できます。
- Database Vault操作制御の使用について
自律環境、通常のクラウド環境またはオンプレミス環境で、共通ユーザーによるプラガブル・データベース(PDB)のローカル・データへのアクセスを自動的に制限できます。 - Database Vault操作制御の有効化
Database Vault操作制御を有効にするには、DBMS_MACADM.ENABLE_APP_PROTECTION
PL/SQLプロシージャを使用します。 - 共通ユーザーおよびパッケージの例外リストへの追加
PDBのローカル・データにアクセスする必要がある共通ユーザーとアプリケーションは、例外リストに追加できます。 - 共通ユーザーおよびパッケージの例外リストからの削除
PDBのローカル・データにアクセスする必要がなくなったユーザーおよびアプリケーションは、例外リストから削除できます。 - Database Vault操作制御の無効化
Database Vault操作制御を無効にするには、DBMS_MACADM.DISABLE_APP_PROTECTION
PL/SQLプロシージャを使用します。
Database Vault操作制御の使用について
自律環境、通常のクラウド環境またはオンプレミス環境で、共通ユーザーによるプラガブル・データベース(PDB)のローカル・データへのアクセスを自動的に制限できます。
これを実現するために、共通ユーザー(インフラストラクチャ・データベース管理者やアプリケーションなど)に適用されるOracle Database Vault操作制御を使用できます。
Database Vault操作制御は、データベース管理者が高い権限を持つユーザーとしてCDBルートにログインする必要があるときに、PDBの顧客データにはアクセスできないようにするような状況で役立ちます。データベース操作制御では、PDBデータベース管理者をブロックしません。こうしたユーザーをブロックするには、PDBでOracle Database Vaultを有効にして、該当するユーザーをブロックするレルム制御などのDatabase Vault機能を使用します。
共通ユーザーやアプリケーションが、PDBのローカル・データへのアクセスが必要なタスクを実行する必要がある場合は、共通ユーザーとパッケージについてのDatabase Vault操作制御の例外リストを作成できます。例外リストに指定する共通ユーザーのタイプの例として、Oracle Textを担当するCTXSYS
アプリケーション・アカウントが挙げられます。例外リストでパッケージを指定すると、例外リスト内のユーザーにフル・アクセスを提供することなく詳細な制御を適用できます。
Database Vault操作制御する一般的なプロセスは、次のとおりです。
- Database Vault操作制御を有効にして、本番環境でも有効にしたままにします。
- この段階では、Database Vault操作制御が環境内のすべてのPDBに適用されます。PDBでDatabase Vaultを有効にしているかどうかは関係ありません。
- 特定のユーザーとパッケージがPDBのローカル・スキーマにアクセスできるようにするには、それらを例外リストに追加します。ユーザーまたはパッケージがアクセスを必要としなくなったら、それらを例外リストから削除します。たとえば、データベースでOracle Textを使用している場合は、例外リストに
CTXSYS
管理ユーザー・アカウントとパッケージを追加できます。
Database Vault操作制御の有効化
Database Vault操作制御を有効にするには、DBMS_MACADM.ENABLE_APP_PROTECTION
PL/SQLプロシージャを使用します。
マルチテナント本番サーバーにDatabase Vault操作制御を使用する場合は、Database Vault操作制御を常時有効にしておくことをお薦めします。
ほとんどの場合、特定のPDBのみでなく、CDB全体に対してデータベース操作制御を有効にします。特定のPDBに対して無効にする必要がある場合(トラブルシューティング目的など)、そのPDBでDBMS_MACADM.DISABLE_APP_PROTECTION
プロシージャを実行します。PDBのトラブルシューティングが終了したら、このトピックの例で示すように、Database Vault操作制御を再度有効化します。
SYSDBA
管理権限を持つユーザーSYS
として接続してからSELECT * FROM DBA_DV_STATUS;
問合せを実行すると、確認できます。特定の信頼できる共通ユーザーまたはパッケージが、これらのPDBのローカル・スキーマにアクセスして特別な操作を実行する必要がある場合は、DBMS_MACADM.ADD_APP_EXCEPTION
プロシージャを使用して、そのユーザーまたはパッケージをDatabase Vault操作制御の例外リストに追加できます。
共通ユーザーおよびパッケージの例外リストへの追加
PDBのローカル・データにアクセスする必要がある共通ユーザーとアプリケーションは、例外リストに追加できます。
MDSYS
アカウントを例外リストに追加する必要があります。MDSYS
は、Oracle Spatial関数ために顧客PDBデータにアクセスする必要があります。共通ユーザーおよびパッケージをDatabase Vault操作制御例外リストに追加するには、DBMS_MACADM.ADD_APP_EXCEPTION
PL/SQLプロシージャを使用できます。既存の例外を調べるには、DBA_DV_APP_EXCEPTION
データ・ディクショナリ・ビューを問合せします。
共通ユーザーおよびパッケージの例外リストからの削除
PDBのローカル・データにアクセスする必要がなくなったユーザーおよびアプリケーションは、例外リストから削除できます。
DBMS_MACADM.DELETE_APP_PROTECTION
PL/SQLプロシージャを使用できます。既存の例外を調べるには、DBA_DV_APP_EXCEPTION
データ・ディクショナリ・ビューを問合せします。
Database Vault操作制御の無効化
Database Vault操作制御を無効にするには、DBMS_MACADM.DISABLE_APP_PROTECTION
PL/SQLプロシージャを使用します。