12 Oracle Database Vault環境でのDBA操作
データベース管理者は、Oracle Data Pumpなどの製品とのDatabase Vaultの使用など、Oracle Database Vault環境で操作を実行できます。
- Oracle Database Vaultでのロール付与の処理
Oracle Database Vaultでは、RESOURCE
、DBA
、AUDIT_ADMIN
、PDB_DBA
などのデフォルト・ロール(Oracle Databaseのインストール時に作成される)が保護されます。この機能により、これらのロールに付与されているシステム権限およびオブジェクト権限が保護されます。 - Oracle Database VaultでのDDL操作の実行
Oracle Database Vaultでのデータ定義言語(DDL)操作は、スキーマの所有権やパッチ・アップグレードなどの状況による影響を受ける場合があります。 - Oracle Database VaultのOracle Enterprise Managerとの使用
Oracle Database Vault管理者は、他のデータベースへのポリシーの伝播など、Oracle Enterprise Manager Cloud Controlでタスクを実行できます。 - Oracle Database VaultでのOracle Data Pumpの使用
データベース管理者は、Oracle Data PumpユーザーにDatabase Vault環境で作業する認可を付与します。 - Oracle Database VaultでのOracle Schedulerの使用
データベース・ジョブのスケジュールを担当するユーザーは、Oracle Database Vault固有の認可を有している必要があります。 - Oracle Database Vaultでの情報ライフサイクル管理の使用
Oracle Database Vault対応データベースで情報ライフサイクル管理操作を実行するユーザーは、これらの操作を実行するために認可を受けている必要があります。 - Oracle Database VaultでのOracle Database Replayの使用
データベース管理者は、Oracle Database ReplayユーザーにDatabase Vault環境で作業する認可を付与できます。 - Oracle Database Vaultでのプリプロセッサ・プログラムの実行
外部表からプリプロセッサ・プログラムを実行するユーザーには、Oracle Database Vault固有の認可が必要です。 - Database Vault操作の制御を使用したローカルPDBデータへのマルチテナント共通ユーザー・アクセスの制限
インフラストラクチャ・データベース管理者などのCDBルート共通ユーザーでPDBアクセスを制御できます。 - Oracle Recovery ManagerとOracle Database Vault
Oracle Database Vault環境ではRecovery Manager (RMAN)を使用できます。 - Oracle Database VaultでXStreamを使用するための権限
Oracle Database Vault環境でXStreamを使用する場合、適切な権限が必要です。 - Oracle Database VaultでOracle GoldenGateを使用するための権限
Oracle Database Vault環境でOracle GoldenGateを使用する場合、適切な権限が必要です。 - Oracle Database Vault環境でのデータ・マスキングの使用
Oracle Database Vault環境でデータ・マスキングを実行するには、正しい認可が必要です。 - スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン
リリース12c以降のスタンドアロンのOracle DatabaseはPDBに変換可能で、さらにそのPDBはCDBにプラグインできます。 - Oracle Database Vault環境でのORADEBUGユーティリティの使用
ORADEBUG
ユーティリティは、主にOracleサポートがOracle Databaseで生じる問題を診断する場合に使用します。 - Oracle Database Vault環境でのパッチ操作の実行
ユーザーSYS
がOracle Database Vault対応データベースでパッチ操作を実行するには、DV_PATCH_ADMIN
ロールが必要です。
12.1 Oracle Database Vaultでのロール付与の処理
Oracle Database Vaultでは、RESOURCE
、DBA
、AUDIT_ADMIN
、PDB_DBA
などのデフォルト・ロール(Oracle Databaseのインストール時に作成される)が保護されます。この機能により、これらのロールに付与されているシステム権限およびオブジェクト権限が保護されます。
- レルムで保護されているロールの識別
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーは、どのロールがどのレルムによって保護されているかを識別できます。 - レルムで保護されていないロールの識別
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーは、レルムで保護されていないロールを識別できます。 - 名前付きユーザーに対する保護されたロールの付与の処理
推奨されている名前付きアカウントを使用しており、保護されたロールを別のユーザーに付与する必要がある場合は、レルム所有者として、各名前付きアカウントを、適切なレルムに追加することで認可する必要があります。 - SYSに認可があるレルムによって保護されているレルムおよびロールの識別
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーは、SYS
に認可があるレルムによって保護されている、Oracle Database Vaultレルムおよびロールを識別できます。
12.1.1 レルムで保護されているロールの識別
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーは、どのロールがどのレルムによって保護されているかを識別できます。
次の問合せを実行します。
COLUMN "ROLE PROTECTED BY A DV REALM" FORMAT A35
SELECT REALM_NAME, OBJECT_NAME
AS "ROLE PROTECTED BY A DV REALM"
FROM DBA_DV_REALM_OBJECT
WHERE OBJECT_TYPE = 'ROLE'
ORDER BY 1, 2;
12.1.2 レルムで保護されていないロールの識別
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーは、レルムで保護されていないロールを識別できます。
次の問合せを実行します。
COLUMN "ROLE NOT PROTECTED BY A DV REALM" FORMAT A40
SELECT ROLE AS "ROLE NOT PROTECTED BY A DV REALM"
FROM DBA_ROLES
WHERE ROLE NOT IN (SELECT OBJECT_NAME FROM DBA_DV_REALM_OBJECT WHERE OBJECT_TYPE = 'ROLE')
ORDER BY 1;
12.1.3 名前付きユーザーに対する保護されたロールの付与の処理
推奨されている名前付きアカウントを使用しており、保護されたロールを別のユーザーに付与する必要がある場合は、レルム所有者として、各名前付きアカウントを、適切なレルムに追加することで認可する必要があります。
たとえば、dba_debra
がPDB_DBA
ロールをdba_harvey
に付与する場合に、dba_debra
に対してレルム認可が実施されていないと、次のエラーが発生します。
GRANT PDB_DBA TO DBA_HARVEY;
ERROR at line 1: ORA-47410: Insufficient realm privileges to GRANT on PDB_DBA.
DV_OWNER
またはDV_ADMIN
ロールがあるユーザーであれば、次の問合せを実行することで、PDB_DBA
ロールを保護しているDatabase Vaultレルムを特定します。この例では、その問合せでPDB_DBA
ロールを使用します。
SELECT REALM_NAME FROM DBA_DV_REALM_OBJECT
WHERE OBJECT_NAME = 'PDB_DBA' AND OBJECT_TYPE = 'ROLE';
次のような出力が表示されます。
REALM_NAME
--------------------------------------------------
Oracle System Privilege and Role Management Realm
同じユーザーで、所有者としてdba_debra
をOracleシステム権限およびロール管理レルム
に追加します。
BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM (
REALM_NAME => 'Oracle System Privilege and Role Management Realm',
GRANTEE => 'DBA_DEBRA',
RULE_SET_NAME => NULL,
AUTH_OPTIONS => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/
これで、dba_debra
がPDB_DBA
ロールを別のユーザーに付与しようとしたときに、そのロール付与が成功するようになりました。
GRANT PDB_DBA TO DBA_HARVEY;
Grant succeeded.
dba_debra
から認可を削除するには:
BEGIN
DBMS_MACADM.DELETE_AUTH_FROM_REALM (
REALM_NAME => 'Oracle System Privilege and Role Management Realm',
GRANTEE => 'DBA_DEBRA');
END;
/
なお、SYS
には、デフォルトのDatabase Vaultレルムの多くに対する所有者認可が付与されています。SYS
を使用してGRANT
コマンドを実行できます。SYS
やSYSTEM
などの共有アカウントに依存するのではなく、各ユーザーに対して名前付きアカウント(たとえば、pfitch
、cabramowitz
)を作成することをお薦めします。また、名前付きユーザーを使用すると、Oracleデータベースでアクションを実行したユーザーを識別しやすくなります。
12.1.4 SYSに認可があるレルムによって保護されているレルムおよびロールの識別
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーは、SYS
に認可があるレルムによって保護されている、Oracle Database Vaultレルムおよびロールを識別できます。
次の問合せを実行します。
SELECT REALM_NAME, OBJECT_NAME
FROM DBA_DV_REALM_OBJECT
WHERE OBJECT_TYPE = 'ROLE' AND REALM_NAME IN (SELECT REALM_NAME FROM DBA_DV_REALM_AUTH WHERE GRANTEE = 'SYS')
ORDER BY 1,2;
レルムのみを識別するには、次のような問合せを実行します:
SELECT DISTINCT REALM_NAME
FROM DBA_DV_REALM_OBJECT
WHERE OBJECT_TYPE = 'ROLE' AND REALM_NAME IN (SELECT REALM_NAME FROM DBA_DV_REALM_AUTH WHERE GRANTEE = 'SYS')
ORDER BY 1;
SYS
に認可がないレルムを識別するには、次のような問合せを実行します:
SELECT DISTINCT REALM_NAME
FROM DBA_DV_REALM_OBJECT
WHERE OBJECT_TYPE = 'ROLE' AND REALM_NAME NOT IN (SELECT REALM_NAME FROM DBA_DV_REALM_AUTH WHERE GRANTEE = 'SYS')
ORDER BY 1;
12.2 Oracle Database VaultでのDDL操作の実行
Oracle Database Vaultでのデータ定義言語(DDL)操作は、スキーマの所有権やパッチ・アップグレードなどの状況による影響を受ける場合があります。
- Oracle Database VaultでのDDL操作の実行に関する制限
Oracle Database Vault構成によっては、DDL操作が制限されてOracle Database Vault環境でDDL認可が必要になる場合があります。 - DDL操作におけるDV_PATCH_ADMINロールの影響
DV_PATCH_ADMIN
ロールを付与されたオブジェクト所有者およびユーザーは、DDL認可要件から除外されます。
12.2.1 Oracle Database VaultでのDDL操作の実行に関する制限
Oracle Database Vault構成によっては、DDL操作が制限されてOracle Database Vault環境でDDL認可が必要になる場合があります。
具体的には、次のいずれかの特性を持つスキーマでDDL操作を実行するには、DDL認可が必要です。
- スキーマが、有効なレルムによって保護されるオブジェクトの所有者である。
- スキーマが、有効なレルムに直接またはロールを介して認可される。
- スキーマにオブジェクト権限が直接、または有効なレルムによって保護されているオブジェクトのロールを介して付与される。
- スキーマにOracle Database Vaultのロールが直接またはロールを介して付与される。
DV_PATCH_ADMIN
ロールを付与されたオブジェクト所有者およびユーザーは、DDL認可要件から除外されます。DBMS_MACADM.AUTHORIZE_DDL
プロシージャを使用して、特定のスキーマに対してDDL操作を実行するユーザーを認可できます。ただし、DDL認可では、権限受領者がレルムで保護されたオブジェクトまたはスキーマに対してDDL操作を実行できるわけではありません。このような操作を有効にするには、レルムに対してユーザーを認可する必要があります。この認可を与えられているユーザーについて情報を確認するには、DBA_DV_DDL_AUTH
データ・ディクショナリ・ビューに問い合せます。
Oracle Database VaultがOracle Database 21cより古い以前のリリースからアップグレードされた場合、デフォルトのDDL認可(%
, %
)が存在する可能性があり、これにより、ユーザーは明示的なDDL認可なしで任意のスキーマに対してDDL操作を実行できます。セキュリティを強化するために、Oracleでは、DBMS_MACADM.UNAUTHORIZE_DDL('%', '%')
を実行してデフォルトのDDL認可を削除し、DDL操作を実行する必要があるユーザーにのみ必要なDDL認可を付与することをお薦めします。
関連トピック
12.2.2 DDL操作におけるDV_PATCH_ADMINロールの影響
DV_PATCH_ADMIN
ロールを付与されたオブジェクト所有者およびユーザーは、DDL認可要件から除外されます。
DBMS_MACADM.AUTHORIZE_DDL
プロシージャを使用して、特定のスキーマに対してDDL操作を実行するユーザーを認可できます。ただし、DDL認可では、権限受領者がレルムで保護されたオブジェクトまたはスキーマに対してDDL操作を実行することはできません。このような操作を許可するには、レルムに対してユーザーを認可する必要があります。この認可を与えられているユーザーについて情報を確認するには、DBA_DV_DDL_AUTH
データ・ディクショナリ・ビューに問い合せます。
関連トピック
12.3 Oracle Database VaultのOracle Enterprise Managerとの使用
Oracle Database Vault管理者は、他のデータベースへのポリシーの伝播など、Oracle Enterprise Manager Cloud Controlでタスクを実行できます。
- 他のデータベースへのOracle Database Vault構成の伝播
Database Vault構成(レルム構成など)を、Database Vaultで保護された他のデータベースに伝播できます。 - Oracle Database Vaultポリシーに対するEnterprise Manager Cloud Controlアラート
Oracle Database Vaultアラートを表示するには、DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ロールが付与されている必要があります。 - Enterprise Manager Cloud ControlにおけるOracle Database Vault固有レポート
Database Vaultホーム・ページから、違反に関する情報を確認できます。
12.3.1 「他のデータベースへのOracle Database Vault構成の伝播」
Database Vault構成(レルム構成など)を、Database Vaultで保護された他のデータベースに伝播できます。
-
DV_OWNER
またはDV_ADMIN
ロールおよびSELECT ANY DICTIONARY
権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。ログイン方法については、「Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン」を参照してください。 -
「Database Vault」ホームページの「Database Vaultポリシー伝播」で、「Database Vaultポリシー伝播」を選択します。
「ポリシー伝播」サブページの「使用可能なポリシー」領域に、現在のデータベースのために作成されたOracle Database Vault構成(つまり、レルム、コマンド・ルール、ルール・セットおよびセキュア・アプリケーション・ロールのために作成された構成)のサマリーが表示されます。Oracle Database release 12c (12.2)で導入されたOracle Database Vaultポリシーは表示されません。ここから、これらの構成を他のデータベースに伝播できます。
-
「使用可能なポリシー」で、他のデータベースに伝播する各構成を選択します。
図policy_propagation122.pngの説明 -
「宛先データベース」で「追加」ボタンをクリックします。
-
「検索と選択: Database Vaultに対応した宛先データベース」で宛先データベースを検索し、構成の伝播先となる各データベースを選択します。「選択」ボタンをクリックします。
-
「宛先データベース」で次の処理を行います。
-
「宛先データベースに資格証明を適用」で、伝播する構成を含むDatabase Vaultデータベースの管理者のユーザー名とパスワードを入力します。
この機能により、Database Vault管理者のユーザー名とパスワードが、選択したすべての宛先データベースに適用されます。
-
構成の伝播先となる各データベースを選択します。
-
各データベースのDatabase Vault管理者のユーザー名とパスワードを入力します。
-
「適用」ボタンをクリックします。
-
-
「伝播オプション」ページで、次のオプションのオン/オフを選択します。
シードされたレルム、コマンド・ルール、ルール・セットなどに加えられた変更は、宛先データベースに伝播されません。カスタム作成されたデータのみが伝播されます。
-
失敗時にリストアします。: 伝播操作でエラーが発生した場合に、伝播がロールバックされます。つまり、宛先データベースの元のポリシーがリストアされます。このオプションを選択しない場合、宛先データベースでポリシーの伝播が続けられ、エラーは無視されます。
-
ユーザー定義ポリシーが存在する場合は、伝播をスキップします。: 宛先データベースにユーザー定義構成がすでにある場合、伝播操作は試行されません。このオプションを選択しない場合、ユーザー定義ポリシーが宛先データベースにあるかどうかに関係なく、既存の構成はすべてクリアされ、ソース・データベースからの構成が宛先データベースに適用されます。
-
Database VaultメトリックのEnterprise Managerメトリックしきい値を伝播します。: ソース・データベースにOracle Database Vaultメトリックしきい値が設定されている場合、これらのしきい値も宛先データベースに伝播されます。このオプションを選択しない場合、構成のみが伝播され、Oracle Database Vaultしきい値は伝播されません。
-
-
「OK」ボタンをクリックします。
-
「確認」ウィンドウで「OK」をクリックします。
成功または失敗を示すメッセージが表示されます。伝播が成功した場合、構成は宛先データベースでただちにアクティブになります。
12.3.2 Oracle Database Vaultポリシーに対するEnterprise Manager Cloud Controlアラート
Oracle Database Vaultアラートを表示するには、DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ロールが付与されている必要があります。
アラートは次のとおりです。
-
Database Vaultレルム違反未遂。このアラートにより、Oracle Database Vaultセキュリティ分析者(
DV_SECANALYST
ロール)はDatabase Vaultデータベースでの違反試行を監視できます。アラートの影響を受けるレルムを選択し、エラー・コードを使用して様々な試行タイプに基づいてレルムをフィルタリングできます。このメトリックは、メトリックおよびポリシーの設定ページで有効化できます。デフォルトでは、レルム違反未遂は24時間ごとに収集されます。 -
Database Vaultコマンド・ルール違反未遂。このアラートの機能は、対象がコマンド・ルール違反であることを除き、Database Vaultレルム違反未遂と同じです。
-
Database Vaultレルム構成の問題。このメトリックは、レルムの構成を追跡し、構成が正しくない場合にアラートを生成します。このメトリックは、Oracle Database Vaultのインストール時に有効化され、デフォルトで1時間ごとにデータを収集します。
-
Database Vaultコマンド・ルール構成の問題。このアラートの機能は、対象がコマンド・ルールに対する構成変更であることを除き、Database Vaultレルム構成の問題と同じです。
-
Database Vaultポリシー変更。このメトリックでは、Database Vaultポリシー(レルムやコマンド・ルールに対するポリシー)に変更があると、アラートが生成されます。詳細なポリシー変更レポートが提供されます。
12.3.3 Enterprise Manager Cloud ControlにおけるOracle Database Vault固有レポート
Database Vaultホーム・ページから、違反に関する情報を確認できます。
これらの違反は、次のとおりです。
-
レルムおよびコマンド・ルール違反未遂トップ5
-
データベース・ユーザーおよびクライアント・ホストによる違反未遂トップ5
-
違反未遂の詳細分析の時系列グラフィック・レポート
Database Vaultレポートの完全なアクセス権を持つには、DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ロールが付与されたユーザーとしてDatabase Vault Administratorにログインする必要があります。
12.4 Oracle Database VaultでのOracle Data Pumpの使用
データベース管理者は、Oracle Data PumpユーザーにDatabase Vault環境で作業する認可を付与します。
- Oracle Database VaultでのOracle Data Pumpの使用について
Oracle Data Pumpは、一連のオペレーティング・システム・ファイルおよびダンプ・ファイルにデータとメタデータをアンロードするために使用します。Oracle Database Vaultでは、どの特権ユーザーがデータ・ポンプ・インポートまたはエクスポートの実行を認可されるかを制御できます。 - ユーザーまたはロールへのData Pumpの通常エクスポート操作および通常インポート操作の認可
Database Vault環境でOracle Data Pumpエクスポート操作およびインポート操作を実行する管理者に、様々なタイプの認可を使用できます。 - ユーザーまたはロールへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可
Oracle Data Pumpのトランスポータブル操作を実行するユーザーに、直接またはロールを通じて様々な認可レベルを付与できます。 - Database Vault環境でのデータのエクスポートまたはインポートのガイドライン
Oracle Data Pumpデータベース管理者に適切な認可を付与すると、必要なエクスポートまたはインポート操作を実行できるようになります。
12.4.1 Oracle Database VaultでのOracle Data Pumpの使用について
Oracle Data Pumpは、一連のオペレーティング・システム・ファイルおよびダンプ・ファイルにデータとメタデータをアンロードするために使用します。Oracle Database Vaultでは、どの特権ユーザーがデータ・ポンプ・インポートまたはエクスポートの実行を認可されるかを制御できます。
このタイプのユーザーは、Oracle Data Pumpの標準の権限に加えて、Database Vault権限を持っている必要があります。これらのユーザーがOracle Data Pumpのトランスポータブル表領域操作を実行する場合、特殊な認可が必要です。DBA_DV_DATAPUMP_AUTH
データ・ディクショナリ・ビューを問い合せることで、Oracle Database Vault環境でのData Pumpの使用に関するユーザーの認可を確認できます。この認可は、個々のユーザーまたはデータベース・ロールに付与できます。
12.4.2 ユーザーまたはロールへのData Pumpの通常エクスポート操作および通常インポート操作の認可
Database Vault環境でOracle Data Pumpエクスポート操作およびインポート操作を実行する管理者に、様々なタイプの認可を使用できます。
- Oracle Data Pumpの通常操作のユーザーまたはロールへの認可について
Oracle Data Pump認可を持つユーザーは、Database Vault環境で通常のOracle Data Pump操作を実行できます。 - Oracle Data Pumpの通常操作に対するDatabase Vault認可のレベル
Oracle Database Vaultでは、Database Vault環境でのOracle Data Pumpの通常操作に必要な認可にいくつかのレベルがあります。 - Database VaultにおけるOracle Data Pumpの通常操作をユーザーまたはロールに認可
データベース管理者またはロールに、Oracle Database Vault環境で通常操作にData Pumpを使用する認可を付与できます。 - ユーザーまたはロールからのOracle Data Pump認可の取消し
通常操作のためにOracle Data Pumpを使用するデータベース管理者またはロールの認可を取り消すことができます。
12.4.2.1 Oracle Data Pumpの通常操作のユーザーまたはロールへの認可について
Oracle Data Pump認可を持つユーザーは、Database Vaul環境で通常のOracle Data Pump操作を実行できます。
次のタイプのOracle Data Pump認可を実行できます。
- 保護されたスキーマおよびオブジェクトをインポートできるようにユーザーまたはロールを認可します
- ユーザーまたはロールに対して、インポート操作中に行われるアクティビティ(ユーザーの作成、Oracle Database Vaultで保護されたロールおよびシステム権限の付与、特定のOracle Databaseロールの付与、Oracle Databaseシステム権限の付与)の実行を認可します
ノート:
完全レベルData Pump認可では、トランスポータブル・エクスポートおよびインポート操作も実行できます。12.4.2.2 Oracle Data Pumpの通常操作に対するDatabase Vault権限のレベル
Oracle Database Vaultでは、Database Vault環境でのOracle Data Pumpの通常操作に必要な認可にいくつかのレベルがあります。
表12-1に、これらのレベルを示します。
表12-1 Oracle Data Pumpの通常操作のための認可のレベル
シナリオ | 必要な認可 |
---|---|
データベース管理者は、データを別のスキーマにインポートします。 |
このユーザー(またはロール)には、 |
データベース管理者は、Database Vault保護なしのスキーマでデータをエクスポートまたはインポートします。 |
このユーザー(またはロール)には、標準のOracle Data Pump権限のみを付与する必要があります。これは、 |
データベース管理者は、保護スキーマでデータをエクスポートまたはインポートします。 |
ユーザーがデータをインポートする場合は、このユーザーに |
データベース管理者は、データベース全体の内容をエクスポートまたはインポートします。 |
|
脚注1
デフォルトではBECOME USER
権限はIMP_FULL_DATABASE
ロールに含まれますが、Oracle Database Vault環境ではこの権限は取り消されます。
12.4.2.3 Database VaultにおけるOracle Data Pumpの通常操作をユーザーまたはロールに認可
データベース管理者またはロールに、Oracle Database Vault環境で通常操作にData Pumpを使用することを認可できます。
12.4.3 ユーザーまたはロールへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可
Oracle Data Pumpのトランスポータブル操作を実行する必要があるユーザーには、直接またはロールを通じて、様々な認可レベルを付与できます。
- Oracle Data Pumpのトランスポータブル操作のユーザーへの認可について
様々なレベルのトランスポータブル操作認可をユーザーに(直接またはロールを通じて)付与できます。 - Data Pumpのトランスポータブル操作に対するDatabase Vault権限のレベル
Oracle Database Vaultでは、Database Vault環境でのエクスポートおよびインポート・トランスポータブル操作を実行する必要があるユーザーに必要な認可にいくつかのレベルがあります。 - Database VaultにおけるData Pumpのトランスポータブル操作をユーザーまたはロールに認可
ユーザーまたはロールがDatabase Vault環境でOracle Data Pumpのトランスポータブル・エクスポート操作またはトランスポータブル・インポート操作を実行することを認可できます。 - トランスポータブル表領域の認可のユーザーまたはロールからの取消し
Data Pumpを使用するデータベース管理者の認可を取り消すことができます。
12.4.3.1 Oracle Data Pumpのトランスポータブル操作のユーザーへの認可について
様々なレベルのトランスポータブル操作の認可をユーザーに(直接またはロールを通じて)付与できます。
トランスポータブル・エクスポートとトランスポータブル・インポートの操作を実行する認可のみをユーザーに付与する場合は、タスクに基づいて、ユーザーまたはロールに適切な認可を付与する必要があります。
12.4.3.2 Data Pumpのトランスポータブル操作に対するDatabase Vault権限のレベル
Oracle Database Vaultでは、Database Vault環境でトランスポータブル・エクスポートとトランスポータブル・インポートの操作を実行する必要があるユーザーに必要な認可にいくつかのレベルがあります。
表12-2に、これらのレベルを示します。
表12-2 Oracle Data Pumpのトランスポータブル操作に対する権限のレベル
シナリオ | 必要な認可 |
---|---|
データベース管理者は、Database Vault保護なしの表領域または表のトランスポータブル・エクスポートを実行します。 |
このユーザー(またはロール)には、標準のOracle Data Pump権限のみを付与する必要があります。これは、 |
データベース管理者は、Database Vault保護ありの表領域のトランスポータブル・エクスポートを実行します(たとえば、その表領域に存在する表オブジェクトのレルムやコマンドルール)。 |
完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、( |
データベース管理者は、Database Vault保護ありの表領域内で表のトランスポータブル・エクスポートを実行します(たとえば、エクスポートする表を含む表領域に存在する表オブジェクトのレルムやコマンド・ルール)。 |
完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、( |
データベース管理者は、データベース全体の内容のトランスポータブル・エクスポートを実行します。 |
|
データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護なしの表領域または表のトランスポータブル・インポートを実行します。 |
データベース管理者と接続ユーザー両方の |
データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護ありの表領域のトランスポータブル・インポートを実行します(たとえば、その表領域に存在する表オブジェクトのレルムやコマンド・ルール)。 |
Database Vault固有の完全データベース・レベルのOracle Data Pumpの認可を付与されたユーザーも、( |
データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護ありのトランスポータブル表領域内で表をインポートします(たとえば、エクスポートする表を含む表領域に存在する表オブジェクトのレルムやコマンド・ルール)。 |
Database Vault固有の完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、( |
データベース管理者は、ネットワーク・リンクを使用してデータベース全体の内容のトランスポータブル・インポートを実行します。 |
|
12.4.3.3 Database VaultにおけるData Pumpのトランスポータブル操作をユーザーまたはロールに認可
ユーザーまたはロールがDatabase Vault環境でOracle Data Pumpのトランスポータブル・エクスポートおよびインポート操作を実行することを認可できます。
12.4.4 Database Vault環境でのデータのエクスポートまたはインポートのガイドライン
Oracle Data Pumpデータベース管理者に適切な認可を付与すると、必要なエクスポートまたはインポート操作を実行できるようになります。
作業を開始する前に、次のガイドラインに従う必要があります。
-
データベースのデータファイルの完全バックアップを作成します。これにより、新しくインポートしたデータが気に入らなかった場合、容易にデータベースを元の状態に戻すことができます。このガイドラインは、侵入者が自分のポリシーを使用するようにOracle Data Pumpエクスポート・データを変更した場合に特に有用です。
-
複数のスキーマまたは表をエクスポートおよびインポートする方法を決定します。
DBMS_MACADM.AUTHORIZE_DATAPUMP_USER
プロシージャでは複数のスキーマまたは表は指定できませんが、次のいずれかの方法でこの作業を行うことできます。-
それぞれのスキーマまたは表に対して
DBMS_MACADM.AUTHORIZE_DATAPUMP_USER
プロシージャを実行し、次にEXPDP
ユーティリティとIMPDP
ユーティリティのSCHEMAS
パラメータまたはTABLES
パラメータのオブジェクトのリストを指定します。 -
全データベースのエクスポートまたはインポート操作を実行します。この場合、次のガイドランを参照してください。
-
-
データベース全体のエクスポートまたはインポート操作を実行する場合は、EXPDPまたはIMPDP FULLオプションをYに設定します。この設定により
DVSYS
スキーマが取得されるため、認可したユーザーまたはロールにDV_OWNER
ロールが付与されていることを確認してください。
次のことに注意してください。
-
Oracle Database Vaultが有効になっている場合、ダイレクト・パス・オプション(
direct=y
)でレガシーのEXP
ユーティリティとIMP
ユーティリティは使用できません。 -
直接の付与またはロールを介した付与のいずれかによって、
DBMS_MACADM.AUTHORIZE_DATAPUMP_USER
プロシージャを通じてDatabase Vault固有のOracle Data Pump認可を付与されている、またはDBMS_MACADM.AUTHORIZE_TTS_USER
プロシージャを通じてトランスポータブル表領域の認可を付与されているユーザーは、データベース・オブジェクトのエクスポートとインポートを実行できますが、通常はアクセスがないスキーマ表に対するSELECT
問合せなど、他のアクティビティは実行できません。同様に、指定されたデータベース・オブジェクト外部のオブジェクトに対してData Pump操作を実行することもできません。 -
データベース全体をエクスポートまたはインポートするユーザーに
DV_OWNER
ロールを付与する必要があります。これは、データベース全体のエクスポートには、Oracle Database Vaultポリシーを格納するDVSYS
スキーマへのアクセスが必要になるためです。ただし、DVSYS
スキーマ自体をエクスポートすることはできません。Data Pumpは、保護定義のみをエクスポートします。インポート・プロセスを開始する前に、ターゲット・データベースにはDVSYS
スキーマが必要であり、Database Vaultが有効になっている必要があります。)逆に、インポートされたポリシーをターゲット・データベースに適用するData Pumpインポート操作では、内部的にDBMS_MACADM
PL/SQLパッケージが使用され、ここでData PumpユーザーにDV_OWNER
ロールが必要になります。
関連項目:
Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。12.5 Oracle Database VaultでのOracle Schedulerの使用
データベース・ジョブのスケジュールを担当するユーザーは、Oracle Database Vault固有の認可を有している必要があります。
- Oracle Database VaultでのOracle Schedulerの使用について
Oracle Database Vaultでは、Oracle Schedulerジョブからの機密データへのアクセスを制御し、Schedulerジョブを、故意にまたは誤って変更されないように保護できます。 - ジョブ・スケジュール管理者へのDatabase Vaultの認可の付与
Database Vault環境で、ユーザーにデータベース・ジョブをスケジュールする権限を付与できます。 - ジョブ・スケジュール管理者からの権限の取消し
ユーザーからデータベース・ジョブをスケジュールする権限を取り消すことができます。
12.5.1 Oracle Database VaultでのOracle Schedulerの使用について
Oracle Database Vaultでは、Oracle Schedulerジョブからの機密データへのアクセスを制御し、Schedulerジョブを、故意にまたは誤って変更されないように保護できます。
付与する必要がある認可レベルは、タスクを実行する管理者のスキーマによって異なります。次のシナリオが想定されます。
-
管理者が、独自のスキーマでジョブをスケジュールする場合。スキーマがレルムで保護されている場合を除き、データベース・ジョブをスケジュールする権限が付与されている管理者は、Oracle Database Vault固有の権限がなくても作業を続行できます。スキーマがレルムで保護されている場合は、このユーザーがレルムへのアクセスを許可されていることを確認してください。
-
管理者は別のスキーマでジョブを実行するが、このジョブでOracle Database Vaultのレルムまたはコマンド・ルールで保護されたオブジェクトにアクセスしない場合。この場合、このユーザーには、ジョブに関連するシステム権限のみが必要で、Oracle Database Vault権限は必要ありません。
-
管理者がデータベースまたはリモート・データベースの任意のスキーマを含む、他のユーザーのスキーマでジョブを実行する場合。このジョブがOracle Database Vaultレルムまたはコマンド・ルールで保護されているオブジェクトにアクセスする場合、
DBMS_MACADM.AUTHORIZE_SCHEDULER_USER
プロシージャを使用して、このユーザーにDatabase Vault固有の権限を付与する必要があります。この権限は、バックグラウンド・ジョブおよびフォアグラウンド・ジョブの両方に適用されます。フォアグラウンド・ジョブの場合、権限はジョブを作成または変更した最後のユーザーに適用されます。また、スキーマ所有者(ジョブが作成された保護スキーマ)がレルムに対して認可されていることを確認してください。後から、
DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER
プロシージャを使用してこの権限を取り消すことができます。スキーマがレルムで保護されていない場合、ユーザーにDBMS_MACADM.AUTHORIZE_SCHEDULER_USER
プロシージャを実行する必要はありません。
レルムによって保護されているOracle Schedulerジョブを有効または無効にするには、自身がそのレルムに対して認可されているか(DBMS_MACADM.ADD_AUTH_TO_REALM
を使用)、またはジョブ所有者スキーマに対するOracle Scheduler認可(DBMS_MACADM.AUTHORIZE_SCHEDULER_USER
を使用)が必要です。
関連トピック
12.6 Oracle Database Vaultでの情報ライフサイクル管理の使用
Oracle Database Vault対応データベースで情報ライフサイクル管理操作を実行するユーザーは、これらの操作を実行するために認可を受けている必要があります。
- Oracle Database Vaultでの情報ライフサイクル管理の使用について
Oracle Database Vaultのレルムおよびコマンド・ルールで保護されたオブジェクトに対して情報ライフサイクル管理(ILM)操作を実行する役割を担うユーザーに認可を付与できます。 - ユーザーへのDatabase VaultでのILM操作の認可
ユーザーにOracle Database Vault環境での情報ライフサイクル管理(ILM)操作の実行を認可できます。 - ユーザーからの情報ライフサイクル管理認可の取消し
Oracle Database Vault環境で情報ライフサイクル管理(ILM)操作を実行できないよう、ユーザーから認可を取り消すことができます。
12.6.1 Oracle Database Vaultでの情報ライフサイクル管理の使用について
Oracle Database Vaultのレルムおよびコマンド・ルールで保護されたオブジェクトに対して情報ライフサイクル管理(ILM)操作を実行する役割を担うユーザーに認可を付与できます。
ユーザーがDatabase Vault対応データベースでのILM操作のために次のSQL文を実行できるようにするには、まずユーザーに認可を与える必要があります。
-
ALTER TABLE
-
ILM
-
FLASHBACK ARCHIVE
-
NO FLASHBACK ARCHIVE
-
-
ALTER TABLESPACE
-
FLASHBACK MODE
-
12.7 Oracle Database VaultにおけるOracle Database Replayの使用
データベース管理者は、Oracle Database ReplayユーザーにDatabase Vault環境で作業する認可を付与できます。
- Oracle Database VaultでのDatabase Replayの使用について
Oracle Database Replayでワークロード取得操作およびワークロード・リプレイ操作の両方を実行するためのOracle Database Vault認可をユーザーに付与できます。 - ユーザーに対するDatabase Replay操作の認可
ワークロード取得操作およびワークロード・リプレイ操作の両方をOracle Database Replayユーザーに認可できます。 - ユーザーからのDatabase Replay認可の取消し
Oracle Database Replayのワークロード取得操作およびワークロード・リプレイ操作の両方に対する認可を取り消すことができます。
12.7.1 Oracle Database VaultでのDatabase Replayの使用について
Oracle Database Replayでワークロード取得操作およびワークロード・リプレイ操作の両方を実行するためのOracle Database Vault認可をユーザーに付与できます。
Oracle Database Replayでは、本番システム上のワークロードを取得し、それを、元のワークロードとまったく同じタイミング、同時実行性およびトランザクション特性に従ってテスト・システムでリプレイできます。ワークロードには機密情報が含まれている場合があるため、Oracle Database Vaultでは、どの特権ユーザーが応答および取得操作を実行できるかを制御できます。
12.7.2 ユーザーへのDatabase Replay操作の認可
ワークロード取得操作およびワークロード・リプレイ操作の両方をOracle Database Replayユーザーに認可できます。
- ユーザーへのワークロード取得操作の認可
Oracle Database Vault環境でOracle Database Replayのワークロード取得操作を実行する認可をユーザーに付与できます。 - ユーザーへのワークロード・リプレイ操作の認可
Oracle Database Vault環境でOracle Database Replayのワークロード・リプレイ操作を実行する認可をユーザーに付与できます。
12.7.2.1 ユーザーへのワークロード取得操作の認可
Oracle Database Vault環境でOracle Database Replayのワークロード取得操作を実行する認可をユーザーに付与できます。
12.7.3 ユーザーからのDatabase Replay認可の取消し
Oracle Database Replayのワークロード取得操作およびワークロード・リプレイ操作の両方に対する認可を取り消すことができます。
- ワークロード取得権限の取消し
ユーザーから認可を取り消して、Oracle Database Vault環境でOracle Database Replayのワークロード取得操作を実行できないようにすることができます。 - ワークロード・リプレイ権限の取消し
ユーザーから認可を取り消して、Oracle Database Vault環境でOracle Database Replayのワークロード・リプレイ操作を実行できないようにすることができます。
12.7.3.1 ワークロード取得権限の取消し
ユーザーから認可を取り消して、Oracle Database Vault環境でOracle Database Replayのワークロード取得操作を実行できないようにすることができます。
12.8 Oracle Database Vaultでのプリプロセッサ・プログラムの実行
外部表からプリプロセッサ・プログラムを実行するユーザーには、Oracle Database Vault固有の認可が必要です。
- Oracle Database Vaultでのプリプロセッサ・プログラムの実行について
ユーザーが外部表からプリプロセッサ・プログラムを実行するDatabase Vaultの認可を付与したり、取り消すことができます。 - ユーザーに対するプリプロセッサ・プログラム実行の認可
DBMS_MACADM.AUTHORIZE_PREPROCESSOR
プロシージャは、外部表からプリプロセッサ・プログラムを実行する認可をユーザーに付与します。 - ユーザーからのプリプロセッサ実行認可の取消し
DBMS_MACADM.UNAUTHORIZE_PREPROCESSOR
プロシージャは、ユーザーから認可を取り消して、Oracle Database Vault環境でユーザーが外部表からプリプロセッサ・プログラムを実行できないようにします。
12.8.1 Oracle Database Vaultでのプリプロセッサ・プログラムの実行について
ユーザーが外部表からプリプロセッサ・プログラムを実行するDatabase Vaultの認可を付与したり、取り消すことができます。
12.8.2 ユーザーへのプリプロセッサ・プログラム実行の認可
DBMS_MACADM.AUTHORIZE_PREPROCESSOR
プロシージャは、外部表からプリプロセッサ・プログラムを実行する認可をユーザーに付与します。
12.9 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プロシージャを使用します。
12.9.1 Database Vault操作の制御の使用について
共通ユーザーが自律型で通常のクラウドまたはオンプレミス環境でプラガブル・データベース(PDB)のローカル・データにアクセスすることを自動的に制限できます。
これは、CDB共通ユーザーに適用されるOracle Database Vault操作の制御を使用して実現できます。
Database Vault操作の制御は、データベース管理者がCDBルートに高い権限を持つユーザーとしてログインする必要があるが、PDB顧客データにアクセスできない場合に便利です。データベース操作の制御では、PDBデータベース管理者はブロックされません。これらのユーザーをブロックするには、PDBでOracle Database Vaultを有効にし、レルム制御などのDatabase Vault機能を使用してこれらのユーザーをブロックします。(なお、操作制御が有効になっている場合、共通ユーザーはローカル・ユーザーとしてPDBにプロキシできません。)
操作の制御では、共通ユーザーがPDBローカル・データ(ローカルPDBユーザーが所有するデータ)にアクセスできない設計になっています。しかし、操作の制御を使用する場合は、アプリケーション・ルート、アプリケーションPDBおよび通常のPDBにある共通ユーザーのオブジェクトのデータに共通ユーザーが引き続きアクセスして、共通の操作を実行する必要があると考えられます。
操作の制御が有効で、Oracle DatabaseインストールでALLOW_COMMON_OPERATION
パラメータを使用できない場合は、PDB、アプリケーション・ルートまたはアプリケーションPDBのローカル・データへの共通ユーザーのアクセスがブロックされます。ただし、CDB$ROOT
以外のコンテナ(アプリケーション・ルート、アプリケーションPDBおよび通常のPDB)で次のシナリオが実行された場合、CDBで共通に作成されていないDatabase Vaultレルムおよびコマンド・ルールがデフォルトのDatabase Vaultレルムおよびコマンド・ルールでない場合は無視されます。
- CDB共通ユーザーが所有するオブジェクトにCDB共通ユーザーがアクセスする。
- PDB、アプリケーション・ルートまたはアプリケーションPDBにCDB共通ユーザーが接続する。
ALTER SYSTEM
文またはALTER SESSION
文をCDB共通ユーザーが実行する。
最近のOracle Databaseのパッチには、共通ユーザーがPDBの共通ユーザー・オブジェクトにアクセスして共通コマンドを実行できるかどうかを制御するALLOW_COMMON_OPERATION
パラメータが含まれています。ALLOW_COMMON_OPERATION
により、共通ユーザーのオブジェクトおよび共通の操作コマンドへのアクセス機能が操作の制御から分離され、共通の操作に対してローカルDatabase Vaultの制御を強制するかどうかをユーザーがより柔軟に制御できるようになります。
ALLOW_COMMON_OPERATION
パラメータは、Oracle Databaseリリース19Cに対するパッチとして追加されました。DV_MONITOR
ロールまたはDV_SECANALYST
ロールがある場合は、次の問合せを実行して、インストール内にあるかどうかを確認できます。
SELECT * FROM DVSYS.DBA_DV_COMMON_OPERATION_STATUS;
ALLOW_COMMON_OPERATION
パラメータが存在しない場合は、「ORA-00942: 表またはビューが存在しません。
」のエラーになります。ALLOW_COMMON_OPERATION
が存在し、FALSE
に設定されている場合は、すべてのDatabase Vaultの制御が操作の制御で尊重されます(無視されません)。そのような場合、PDB Database Vaultの制御で、共通ユーザーのオブジェクトへのアクセスがブロックされ、共通操作もブロックされることがあります。
共通ユーザーまたはアプリケーションがPDBのローカル・データにアクセスする必要があるタスクを実行する必要がある場合、共通ユーザーおよびパッケージに対するDatabase Vault操作の制御の例外リストを作成できます。例外リストに指定する共通ユーザーのタイプの例として、Oracle Textで使用するCTXSYS
アプリケーション・アカウントがあります。例外リストでパッケージを指定すると、例外リスト内のユーザーに完全なアクセス権を提供するかわりに、より細かい制御を適用できます。
Database Vault操作の制御を使用する一般的なプロセスは、次のとおりです。
- Database Vault操作の制御を有効にして、本番環境に対してこれを有効にしたままにします。
- この段階では、Database Vault操作の制御は、PDBでDatabase Vaultが有効になっているかどうかに関係なく、環境内のすべてのPDBに適用されます。
- 特定のユーザーとパッケージがPDBのローカル・スキーマにアクセスできるようにするには、これらを例外リストに追加します。ユーザーまたはパッケージにアクセス権が不要になった場合、例外リストから削除できます。たとえば、データベースでOracle Textを使用している場合、
CTXSYS
管理ユーザー・アカウントおよびパッケージを例外リストに追加できます。
12.9.2 例外リストへの共通ユーザーおよびパッケージの追加の動作
共通ユーザーまたはパッケージを例外リストに追加する前に、特別な要件を満たす必要があります。
パッケージがユーザー・アカウント内の唯一のオブジェクトであり、PDBローカル・データにアクセスする必要がある場合、例外リストにユーザー・パッケージを追加できます。これにより、例外リストに含まれる内容を詳細に制御できます。例外リストに追加する共通ユーザーおよびパッケージの種類は、PDBの機能に必要な種類です。たとえば、Oracle Spatialを使用している場合、例外リストにMDSYS
アカウントを追加する必要があります。MDSYS
では、Oracle Spatialの機能用の顧客PDBデータにアクセスする必要があります。
操作の制御の例外リストのPL/SQLプロシージャは、共通ユーザーがPL/SQLプロシージャを実行するためのシステム権限または直接オブジェクト権限を持っている場合は、すべての共通ユーザーが実行できます。(定義者権限プロシージャのみ例外リストに追加でき、実行者権限では追加できません。)
操作の制御の例外リスト(ユーザー、%
例外)上のユーザーのみが、PL/SQLプロシージャを変更する権限を持っている場合にのみ、例外リスト上のPL/SQLプロシージャを変更できます。たとえば、プロシージャが操作の制御の例外リストにあるがUser Xが例外リストにない場合、User Xは自身のUser X PL/SQLプロシージャを変更できません。User Yが例外リスト(Y, %
)に存在し、User YがUser Xプロシージャを変更する権限を持っている場合、User YはUser Xのプロシージャを変更できます。
共通ユーザーおよびパッケージをDatabase Vault操作の制御の例外リストに追加するには、DBMS_MACADM.ADD_APP_EXCEPTION
PL/SQLプロシージャを使用します。既存の例外を確認するには、DBA_DV_APP_EXCEPTION
データ・ディクショナリ・ビューを問い合せます。
12.9.3 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操作の制御の例外リストに追加できます。
12.9.5 例外リストからの共通ユーザーおよびパッケージの削除
PDBローカル・データにアクセスする必要がなくなったユーザーおよびアプリケーションを例外リストから削除できます。
DBMS_MACADM.DELETE_APP_PROTECTION
PL/SQLプロシージャを使用できます。既存の例外を確認するには、DBA_DV_APP_EXCEPTION
データ・ディクショナリ・ビューを問い合せます。
12.9.6 Database Vault操作の制御の無効化
Database Vault操作の制御を無効にするには、DBMS_MACADM.DISABLE_APP_PROTECTION
PL/SQLプロシージャを使用します。
12.10 Oracle Recovery ManagerとOracle Database Vault
Oracle Database Vault環境ではRecovery Manager(RMAN)を使用できます。
Oracle Database VaultでRMANを使用する場合の機能は、標準のOracle Database環境での機能とほぼ同じです。ただし、エクスポート操作を試行する場合、RMANのリカバリ表および表パーティション機能は、レルムで保護された表と連携しないことに注意してください。エクスポート操作を実行するには、全表リカバリを実行してから、Database Vault認可ユーザーが実際に保護されている保護表のエクスポートを実行する必要があります。
表をリカバリしようとしたときにRMANの表および表パーティション・リカバリ機能とレルム保護された表が連携しないことに注意してください。その表をリカバリするには、データベース全体のリカバリを実行してから、Database Vault認可ユーザーが、レルムで保護された表をエクスポートし既存のデータベースにインポートする必要があります。
12.11 Oracle Database VaultでXStreamを使用するための権限
Oracle Database Vault環境でOracle Streamsを使用する場合、適切な権限が必要です。
これらの権限は次のとおりです。
-
XStreamを構成するには、
DV_XSTREAM_ADMIN
ロールが付与されている必要があります。 -
レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。たとえば:
EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');
DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE
プロシージャを実行する前に、DV_ACCTMGR
ロールが付与されている必要があります。
12.12 Oracle Database VaultでOracle GoldenGateを使用するための権限
Oracle Database Vault環境でOracle GoldenGateを使用する場合、適切な権限が必要です。
これらの権限は次のとおりです。
-
Oracle GoldenGateを構成するには、ユーザーに
DV_GOLDENGATE_ADMIN
ロールが付与されている必要があります。 -
ユーザーがOracle GoldenGateの
TRANLOGOPTIONS DBLOGREADER
メソッドを使用してREDOログにアクセスする必要がある場合は、ユーザーにDV_GOLDENGATE_REDO_ACCESS
ロールが付与されている必要があります。たとえば、
DV_GOLDENGATE_ADMIN
ロールとDV_GOLDENGATE_REDO_ACCESS
ロールをgg_admin
というユーザーに付与するには、次のようにします。GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS TO gg_admin;
-
ユーザーに
DV_ACCTMGR
ロールが付与されていないと、レプリケートされた側でこのユーザーがユーザーを作成することはできません。 -
ユーザーは、手続き型レプリケーションを実行する前に、トリガーなしモードで抽出操作を実行する必要があります。
-
レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。たとえば:
EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');
-
SYS
ユーザーは、次のように、SYSTEM
スキーマでデータ定義言語(DDL)を実行する認可を与えられている必要があります。EXECUTE DVSYS.DBMS_MACADM.AUTHORIZE_DDL('SYS', 'SYSTEM');
-
ユーザーは、Oracleデフォルト・コンポーネント保護レルムへの認可を与えられている必要があります。たとえば、このレルム認可を
gg_admin
というユーザーに与えるには、次のようにします。BEGIN DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM( REALM_NAME => 'Oracle Default Component Protection Realm', GRANTEE => 'gg_admin', AUTH_OPTIONS => 1); END; /
ノート:
Oracle GoldenGateは、SYS
、SYSTEM
およびGoldenGate関連スキーマ内のオブジェクトを問い合せ、更新および管理します。いずれかのスキーマがOracle Database Vaultレルムによって保護されている場合、GoldenGate Extract操作は失敗する可能性があります。Oracle Database Vaultでは、ディクショナリ関連オブジェクトがOracleのデフォルト・コンポーネント保護レルムで保護されます。カスタムOracle Database VaultレルムまたはカスタムOracle Database Vaultコマンド・ルールを使用して、SYS
やSYSTEM
などのデフォルト・スキーマを保護しないことをお薦めします。
12.13 Oracle Database Vault環境でのデータ・マスキングの使用
Oracle Database Vault環境でデータ・マスキングを実行するには、正しい認可が必要です。
- Oracle Database Vaultが有効なデータベースでのデータ・マスキングについて
Oracle Database Vaultが有効なデータベースでは、Database Vaultの認可を受けたユーザーのみがDatabase Vaultで保護されたデータベース・オブジェクトのデータをマスクできます。 - データ・ディクショナリ・レルム認可へのデータ・マスキング・ユーザーの追加
データ・マスキング・ユーザーをOracleデフォルト・コンポーネント保護レルムに追加するとデータ・ディクショナリ・レルム認可を付与できます。 - マスクする表またはスキーマへのアクセス権のユーザーへの付与
マスクする表またはスキーマへのアクセス権をユーザーに付与するには、適切なレルムに対してユーザーを認可する必要があります。 - データ・マスキングの権限を制御するコマンド・ルールの作成
Oracle Database Vault環境でデータ・マスキングを使用するには、表、パッケージおよびトリガーを管理する権限が必要です。
12.13.1 Oracle Database Vaultが有効なデータベースでのデータ・マスキングについて
Oracle Database Vaultが有効なデータベースでは、Database Vaultの認可を受けたユーザーのみがDatabase Vaultで保護されたデータベース・オブジェクトのデータをマスクできます。
Database Vault以外の環境では、SELECT_CATALOG_ROLE
およびDBA
ロールを付与されたユーザーがデータ・マスキングを行えます。ただし、Database Vaultを使用する場合、ユーザーに追加の権限が必要です。この項では、ユーザーがDatabase Vaultで保護されたオブジェクトのデータをマスクできるようにするために使用できる3つの方法について説明します。
ユーザーに適切な権限がない場合、マスキング定義の作成時またはジョブの実行時に次のエラーが発生します。
ORA-47400: Command Rule violation for string on string ORA-47401: Realm violation for string on string. ORA-47408: Realm violation for the EXECUTE command ORA-47409: Command Rule violation for the EXECUTE command ORA-01301: insufficient privileges
12.13.2 データ・ディクショナリ・レルム認可へのデータ・マスキング・ユーザーの追加
データ・マスキング・ユーザーをOracleデフォルト・コンポーネント保護レルムに追加するとデータ・ディクショナリ・レルム認可を付与できます。
Oracleデータ・ディクショナリでは、SYS
およびSYSTEM
などのOracle Databaseカタログ・スキーマへのアクセスが制御されます。(これらのスキーマをすべて示すリストについては、「デフォルトのレルム」を参照)。システム権限およびデータベース管理者ロールを付与する機能も制御されます。ユーザーをOracleデフォルト・コンポーネント保護レルムに追加する場合、これらのユーザーに、Oracleデータ・ディクショナリに関連付けられている権限がすでにあれば、これらのユーザーはDatabase Vault環境で同じ権限を持ちます。したがって、ユーザーをこのレルムに追加する場合、このユーザーが信頼できるユーザーであることを確認します。
-
Oracleデフォルト・コンポーネント保護レルムにユーザーを追加するには、
DBMS_MACADM.ADD_AUTH_TO_REALM
プロシージャを使用します。
たとえば:
BEGIN DBMS_MACADM.ADD_AUTH_TO_REALM( realm_name => 'Oracle Default Component Protection Realm', grantee => 'DBA_JSMITH', auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT); END; /
12.13.3 マスクする表またはスキーマへのアクセス権のユーザーへの付与
マスクする表またはスキーマへのアクセス権をユーザーに付与するには、適切なレルムに対してユーザーを認可する必要があります。
データ・マスクする表または表のスキーマがレルム内にある場合、データ・マスキングを行うユーザーを参加者または所有者としてレルム認可に追加する必要があります。表またはスキーマに、他のレルムで保護された表内にある依存オブジェクトがある場合、それらのレルムに対する参加者または所有者認可もユーザーに付与する必要があります。
-
データ・マスクするオブジェクトを保護するレルムに対して、データ・マスキング・ユーザーを認可するには、
DBMS_MACADM.ADD_AUTH_TO_REALM
プロシージャを使用します。
次の例では、ユーザーDBA_JSMITH
に、Business Apps Realmと呼ばれるレルムで保護されたHR.EMPLOYEES
表に対する認可を付与する方法を示します。
BEGIN DBMS_MACADM.ADD_AUTH_TO_REALM( realm_name => 'Business Apps Realm', grantee => 'DBA_JSMITH', auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT; END; /
12.13.4 データ・マスキングの権限を制御するコマンド・ルールの作成
Oracle Database Vault環境でデータ・マスキングを使用するには、表、パッケージおよびトリガーを管理する権限が必要です。
データ・マスキングを行うには、ユーザーは、マスキング・オブジェクトに対するCREATE TABLE
、SELECT TABLE
、ALTER TABLE
およびDROP TABLE
権限を持っている必要があります。作成する依存オブジェクトがある場合は、CREATE PACKAGE
、CREATE TRIGGER
などの適切な権限を持っている必要があります。
データ・マスキングの権限を粒度レベルで制御するためのコマンド・ルールを作成できます。これを行うには、データ・マスクする必要のあるオブジェクトへのユーザー・アクセスを禁止または許可するコマンド・ルールを作成します。たとえば、ユーザーがデータ・マスキングを行うユーザーのリスト内にあるかどうかをチェックするAllow Data Maskingと呼ばれるコマンド・ルールを作成できます。ログインするユーザーがこれらのユーザーのいずれかの場合、コマンド・ルールはtrueと評価され、ユーザーは、保護されたオブジェクトに対してデータ・マスクを作成することが許可されます。
データ・マスキング権限を制御するコマンド・ルールを作成するには:
12.14 スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン
リリース12c以降のスタンドアロンのOracle DatabaseはPDBに変換可能で、さらにそのPDBはCDBにプラグインできます。
12.15 Oracle Database Vault環境でのORADEBUGユーティリティの使用
ORADEBUG
ユーティリティは、主にOracleサポートがOracle Databaseで生じる問題を診断する場合に使用します。
ORADEBUG
ユーティリティを実行できるかどうかを制御できます。従来型の監査環境では、AUDIT_SYS_OPERATIONS
初期化パラメータをTRUE
に設定することで、ORADEBUG
の使用を監査できます。統合監査環境では、ORADBUG
コマンドが強制的に監査されます。この制御は、特権OSユーザー(Oracleサーバー・プロセスと同じOSユーザーIDを持つOSユーザー)には適用されません。このようなユーザーは他の手段(たとえば、デバッガ)を使用してOracleプロセスを完全に制御および調査できるため、この例外が発生します。