3 Oracle Database Vaultの開始
Oracle Database Vaultを使用して開始する前に、これをOracle Databaseに登録する必要があります。
- Oracle DatabaseへのOracle Database Vaultの登録について
Oracle Databaseのインストール後に、Oracle Database VaultをインストールしたOracle CDBおよび関連するPDBに登録(すなわち構成および有効化)する必要があります。 - Oracle Database Vaultの登録
複数のシナリオに基づいてOracle Database Vaultを登録できます。 - Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
およびDBA_OLS_STATUS
データ・ディクショナリ・ビューは、Oracle Databaseが構成され有効化されているかどうかを確認します。 - Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン
Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultの管理用のページが用意されています。 - クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護
このチュートリアルでは、HR
スキーマの周辺でレルムを作成する方法を示します。
Oracle DatabaseへのOracle Database Vaultの登録について
Oracle Databaseのインストール後に、Oracle Database VaultをインストールしたOracle CDBおよび関連するPDBに登録(すなわち構成および有効化)する必要があります。
Oracle Databaseには、インストール・プロセスでデフォルトのデータベースを含めるように選択した場合、Database Vaultが付属しますが、このDatabase Vaultを使用するには登録する必要があります。カスタム・データベースを作成する場合、DBCAを使用してDatabase Vaultをインストールし、そのデータベースに対して有効にすることができます。登録プロセスでは、Oracle Label Securityがまだ有効ではない場合、有効になります。Oracle Label SecurityはOracle Database Vaultに必要ですが、別にOracle Label Securityの使用を開始してOracle Label Securityポリシーを作成する場合を除き、別個のライセンスは必要ありません。この手順は、CDBルート、アプリケーション・ルートおよび現在のプラガブル・データベース(PDB)に適用され、単一インスタンスとOracle Real Application Clusters (Oracle RAC)の両方のインストールに適用されます。マルチテナント・データベースでは、PDBのいずれかでDatabase Vaultを構成する前に、Database VaultをCDBルートで構成する必要があります。
登録プロセスの一部として、Database Vaultバックアップ・アカウントが作成されています。これらは、主要なDatabase Vaultロールを保持するアカウントです。最初にこれらのアカウントを使用して、管理権限を持つ名前付きユーザーにロールをプロビジョニングします。SYS
ではこれらのロールを持つユーザーのパスワードをリセットできないため、バックアップ・アカウントの保持により、名前付きユーザーの資格証明の紛や資格証明の配置の誤りからリカバリできます。
Database Vaultを登録する場合、登録用に選択できる方法がいくつかあります。
ノート:
Oracle Database 12cより前のリリースからアップグレードしてあり、その以前のリリースで以前のOracle Database Vaultが有効になっている場合は、アップグレード・プロセスの完了後に、DBMS_MACADM.ENABLE_DV
プロシージャを使用することでOracle Database Vaultを有効にする必要があります。
リリース12cより前のリリースからDatabase Vaultが登録されていないOracleデータベースを移行する場合、Database Vaultの手動インストールを実行する必要があります。
親トピック: Oracle Database Vaultの開始
Oracle Database Vaultの登録
いくつかのシナリオに基づいてOracle Database Vaultを登録できます。
- Database Vaultの登録について
関連するPDBのいずれかにDatabase Vaultを登録する前に、CDBルートに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に登録する必要があります。 - Oracle Database Vaultの手動インストール
特定の条件下では、Oracle Database Vaultを手動でインストールする必要があります。
親トピック: Oracle Database Vaultの開始
Database Vaultの登録について
関連するPDBのいずれかにDatabase Vaultを登録する前に、CDBルートにOracle Database Vaultを登録する必要があります。
CDBルートでDV_OWNER
ロールとDV_ACCTMGR
ロールを割り当てられた共通ユーザーも、PDBで同じロールを持つことができます。PDBでは、同じ共通ユーザーを使用してDatabase Vaultを登録することも、別のPDBローカル・ユーザーを使用することもできます。DV_ACCTMGR
ロールは、CDBルートの共通ユーザーに共通に付与されます。Database VaultをCDBルートに登録するときに、DV_OWNER
をローカルに、またはCDBルート共通ユーザーに共通に付与できます。DV_OWNER
を共通ユーザーにローカルに付与すると、共通DV_OWNER
ユーザーは、どのPDBでもこのロールを使用できなくなります。
親トピック: 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で有効化されていません。」
エラーが表示されます。
Oracle Database Vaultの手動インストール
特定の条件下では、Oracle Database Vaultを手動でインストールする必要があります。
関連トピック
親トピック: Oracle Database Vaultの登録
Database Vaultが構成および有効化されていることの確認
DBA_DV_STATUS
、CDB_DV_STATUS
およびDBA_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の場合は、
DBA_OLS_STATUS
データ・ディクショナリ・ビューを問い合せます。
親トピック: Oracle Database Vaultの開始
Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン
Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultの管理用のページが用意されています。
クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護
このチュートリアルでは、HR
スキーマの周辺でレルムを作成する方法を示します。
- このチュートリアルについて
このチュートリアルでは、Oracle Database Vault PL/SQLパッケージを使用することで、HR
サンプル・データベース・スキーマの周辺でレルムを作成します。 - ステップ1: SYSTEMとしてログインしHRスキーマにアクセスする
このチュートリアル用にHR
スキーマを有効にする必要があります。 - ステップ2: レルムの作成
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。 - ステップ3: SEBASTIANユーザー・アカウントの作成
この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。 - ステップ4: ユーザーSEBASTIANによるレルムのテスト
この段階では、ユーザーSEBASTIAN
に、READ ANY TABLE
システム権限があるとしてもレルムをテストさせます。 - ステップ5: レルムの認可の作成
次に、HR.EMPLOYEES
表にアクセスできるよう、ユーザーSEBASTIAN
にHR Appsレルムへの認可を与える必要があります。 - ステップ6: レルムのテスト
レルムをテストするには、HR
以外のユーザーとしてEMPLOYEES
表にアクセスを試みる必要があります。 - ステップ8: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
親トピック: Oracle Database Vaultの開始
このチュートリアルについて
このチュートリアルでは、Oracle Database Vault PL/SQLパッケージを使用することで、HR
サンプル・データベース・スキーマの周辺でレルムを作成します。
HR
スキーマのEMPLOYEES
表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HR
スキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。
ステップ1: SYSTEMとしてログインしHRスキーマにアクセスする
このチュートリアル用にHR
スキーマを有効にする必要があります。
HR
サンプル・スキーマがインストールされていることを確認してください。
ステップ2: レルムの作成
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。
HR
スキーマにレルムを作成する必要があります。
この段階で、レルムが作成されていますが、それに対する認可は割り当てられていません。このチュートリアルで後ほど対応します。
ステップ3: SEBASTIANユーザー・アカウントの作成
この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。
そのため、このステップでデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIAN
ユーザー・アカウントを作成します。
ステップ4: ユーザーSEBASTIANによるレルムのテスト
この段階では、ユーザーSEBASTIAN
に、READ ANY TABLE
システム権限があるとしてもレルムをテストさせます。
SEBASTIAN
はREAD ANY TABLE
システム権限がありますが、HR.EMPLOYEES
表を問合せできません。これは、HR AppsレルムがREAD ANY TABLE
システム権限よりも優先されるためです。
ステップ6: レルムのテスト
レルムをテストするには、HR
以外のユーザーとしてEMPLOYEES
表にアクセスを試みる必要があります。
通常、SYSTEM
アカウントにはHR
スキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES
表を保護しているため、アクセス権はありません。
-
SQL*Plusで、
SYSTEM
としてPDBに接続します。CONNECT SYSTEM@pdb_name Enter password: password
-
もう一度、
EMPLOYEES
表内の給与情報へのアクセスを試みます。SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;
次の出力が表示されます。
Error at line 1: ORA-01031: insufficient privileges
SYSTEM
にはEMPLOYEES表の給与情報へのアクセス権はなくなります。(実際に、ユーザーSYS
でもこの表にはアクセスできません。)しかし、ユーザーSEBASTIAN
には、この情報へのアクセス権があります。 -
ユーザー
SEBASTIAN
として接続します。CONNECT sebastian@pdb_name Enter password: password
-
次の問合せを実行します。
SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;
次のような出力が表示されます。
FIRST_NAME LAST_NAME SALARY -------------------- ------------------------- ---------- Steven King 24000 Neena Kochhar 17000 Lex De Haan 17000 Alexander Hunold 9000 Bruce Ernst 6000 David Austin 4800 Valli Pataballa 4800 Diana Lorentz 4200 Nancy Greenberg 12008 9 rows selected.
ステップ8: この例で使用したコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
-
ユーザー
SEBASTIAN
を削除します。SQL*Plusで、次のようにOracle Database Vaultアカウント・マネージャ(たとえば
bea_dvacctmgr
)としてPDBにログインし、SEBASTIAN
を削除します。sqlplus bea_dvacctmgr@pdb_name Enter password: password DROP USER SEBASTIAN;
-
HR Apps
レルムを削除します。-
このレルムを作成したユーザーとしてPDBに接続します。
次に例を示します。
c##sec_admin_owen@pdb_name Enter password: password
-
次の文を実行して、
HR Apps
レルムとその認可を削除します。EXEC DBMS_MACADM.DELETE_REALM_CASCADE('HR Apps');
-
-
必要な場合は、SQL*Plusで、
HR
アカウントをロックし、無効にします。ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;