8 Oracle Database Vaultのセキュア・アプリケーション・ロールの構成
セキュア・アプリケーション・ロールを使用すると、ユーザーのアプリケーションに対するアクセス権限を制御できます。
- Oracle Database Vaultのセキュア・アプリケーション・ロールの概要
Oracle Database Vaultでは、Oracle Database Vaultルール・セットで有効にするセキュア・アプリケーション・ロールを作成できます。 - Oracle Database Vaultセキュア・アプリケーション・ロールの作成
Database Vault AdministratorでDatabase Vaultセキュア・アプリケーション・ロールを作成できます。 - Oracle Database Vaultで使用するためのOracle Databaseセキュア・アプリケーション・ロールの有効化
既存のセキュア・アプリケーション・ロールを変更できるのは、それがOracle Database Vaultで作成された場合のみです。 - Oracle Database Vaultセキュア・アプリケーション・ロールのセキュリティ
データベース管理権限を持つユーザーは、DROP ROLE
文を使用して、Oracle Database Vaultセキュア・アプリケーション・ロールを削除する場合があります。 - Oracle Database Vaultセキュア・アプリケーション・ロールの削除
Oracle Database Vault AdministratorでOracle Database Vaultセキュア・アプリケーション・ロールを削除できます。 - Oracle Database Vaultセキュア・アプリケーション・ロールの動作
Oracle Database Vaultセキュア・アプリケーション・ロールのプロセス・フローは、セキュア・アプリケーション・ロールを作成した後に開始されます。 - チュートリアル: Database Vaultセキュア・アプリケーション・ロールによるアクセス権限の付与
このチュートリアルでは、セキュア・アプリケーション・ロールを作成して、作業時間中にユーザーのOE.ORDERS
表へのアクセスを制御する方法を示します。 - セキュア・アプリケーション・ロールのパフォーマンスへの影響
Oracle Enterprise Manager Cloud Controlによってシステム・パフォーマンスを確認できます。 - セキュア・アプリケーション・ロールに関連するレポートおよびデータ・ディクショナリ・ビュー
Oracle Database Vaultには、Oracle Database Vaultセキュア・アプリケーション・ロールの分析に使用できる、レポートとデータ・ディクショナリ・ビューが用意されています。
8.1 Oracle Database Vaultのセキュア・アプリケーション・ロールの概要
Oracle Database Vaultでは、Oracle Database Vaultルール・セットで有効にするセキュア・アプリケーション・ロールを作成できます。
通常のOracle Databaseセキュア・アプリケーション・ロールはカスタムPL/SQLプロシージャによって有効になります。セキュア・アプリケーション・ロールは、ユーザーによるアプリケーション外からのデータへのアクセスを阻止します。これにより、ユーザーはロールに付与されているアプリケーション権限のフレームワーク内での作業を強制されます。
マルチテナント環境では、CDBルートまたはアプリケーション・ルートではなく、PDBでのみセキュア・アプリケーション・ロールを作成できます。
ルール・セットを基準にしてロールのデータベース・アクセスを行う利点は、データベース・セキュリティ・ポリシーをすべてのアプリケーションに保存するのではなく、中央の1つの場所に保存できることです。ルール・セットに基づいたロールにより、一貫性と柔軟性を兼ね備えたメソッドを作成し、ロールが提供するセキュリティ・ポリシーを実行できます。この方法では、アプリケーション・ロールのセキュリティ・ポリシーを更新する必要がある場合、1つの場所、つまりルール・セットで行うことができます。さらに、ユーザーがどのようにしてデータベースに接続しても、ルール・セットがロールにバインドされているため、結果は同じです。ユーザーは、ロールを作成して、それをルール・セットに関連付けるのみです。関連付けられているルール・セットでは、ロールの有効化を試行するユーザーが検証されます。
8.2 Oracle Database Vaultセキュア・アプリケーション・ロールの作成
Database Vault AdministratorでDatabase Vaultセキュア・アプリケーション・ロールを作成できます。
8.3 Oracle Database Vaultで使用するためのOracle Databaseセキュア・アプリケーション・ロールの有効化
既存のセキュア・アプリケーション・ロールを変更できるのは、それがOracle Database Vaultで作成された場合のみです。
関連トピック
8.4 Oracle Database Vaultセキュア・アプリケーション・ロールのセキュリティ
データベース管理権限を持つユーザーは、DROP ROLE
文を使用して、Oracle Database Vaultセキュア・アプリケーション・ロールを削除する場合があります。
Oracle Database Vaultセキュア・アプリケーション・ロールが作成されると、必ずDatabase Vaultによりセキュア・アプリケーション・ロールがOracle Database Vaultレルムに追加されます。これにより、データベース管理者はDROP ROLE
文を使用してセキュア・アプリケーション・ロールを削除できません。
8.5 Oracle Database Vaultセキュア・アプリケーション・ロールの削除
Oracle Database Vault AdministratorでOracle Database Vaultセキュア・アプリケーション・ロールを削除できます。
DV_OWNER
またはDV_ADMIN
ロールおよびSELECT ANY DICTIONARY
権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。ログイン方法については、「Oracle Enterprise Cloud ControlからのOracle Database Vaultへのログイン」を参照してください。- 必要に応じて、ロールに関連するOracle Database Vaultビューに問い合せることで、そのセキュア・アプリケーション・ロールへの様々な参照を特定します。
- 削除するセキュア・アプリケーション・ロールを使用している可能性のあるアプリケーションを確認して変更します。
- 「管理」ページの「Database Vaultコンポーネント」で、「セキュア・アプリケーション・ロール」をクリックします。
- 「セキュア・アプリケーション・ロール」ページで、削除するロールを選択します。
- 「削除」をクリックします。
- 「確認」ウィンドウで、「はい」をクリックします。
8.6 Oracle Database Vaultセキュア・アプリケーション・ロールの動作
Oracle Database Vaultセキュア・アプリケーション・ロールのプロセス・フローは、セキュア・アプリケーション・ロールを作成した後に開始されます。
-
Oracle Database Vault Administrator、または
DBMS_MACADM
パッケージのセキュア・アプリケーション・ロール固有のファンクションを使用してロールを作成または更新します。詳細は、「DBMS_MACADMセキュア・アプリケーション・ロールのプロシージャ」を参照してください。
-
DBMS_MACSEC_ROLES.SET_ROLE
ファンクションを使用して、そのロールを呼び出すようにアプリケーションを変更します。詳細は、「SET_ROLEプロシージャ」を参照してください。
-
Oracle Database Vaultにより、セキュア・アプリケーション・ロールに関連付けられているルール・セットが評価されます。
ルール・セットがTrueと評価されると、ロールが現行のセッションに対して有効になります。ルール・セットがFalseと評価されると、ロールは有効になりません。どちらの場合も、Oracle Database Vaultにより、セキュア・アプリケーション・ロールに関連付けられているルール・セットの関連する監査およびカスタム・イベント・ハンドラが処理されます。
8.7 チュートリアル: Database Vaultセキュア・アプリケーション・ロールによるアクセス権限の付与
このチュートリアルでは、作業時間中にユーザーのOE.ORDERS
表へのアクセスを制御するセキュア・アプリケーション・ロールを作成する方法を示します。
- このチュートリアルについて
このチュートリアルでは、OE
スキーマのORDERS
表に対するSELECT
文を特定のユーザーに制限します。 - ステップ1: このチュートリアル用のユーザーの作成
最初に、チュートリアル用のユーザーを作成する必要があります。 - ステップ2: OEユーザー・アカウントの有効化
OE
スキーマがこのチュートリアル用に使用されます。 - ステップ3: ルール・セットとそのルールの作成
ルール・セットおよびルールは、OE.ORDERS
表の順序を変更できるユーザーを制限します。 - ステップ4: Database Vaultセキュア・アプリケーション・ロールの作成
Database Vaultセキュア・アプリケーション・ロールは、ルール・セット条件が満たされた場合に、設定されます。 - ステップ5: セキュア・アプリケーション・ロールへのSELECT権限の付与
セキュア・アプリケーション・ロールにはSELECT
権限を付与する必要があります。 - ステップ6: Database Vaultセキュア・アプリケーション・ロールのテスト
すべてのコンポーネントを準備したら、Database Vaultセキュア・アプリケーション・ロールをテストできます。 - ステップ7: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
8.7.1 このチュートリアルについて
このチュートリアルでは、OE
スキーマのORDERS
表に対するSELECT
文を特定のユーザーに制限します。
さらに、これらのユーザーは、リモート接続からではなく、オフィス内でのみOE.ORDERS
表に対してこれらの文を実行できます。これを実行するには、Oracle Database Vaultセキュア・アプリケーション・ロールを作成し、これに関連付けたルール・セットによって実施されるチェックに合格した場合のみ、ユーザーにこのロールが有効化されるようにします。
8.7.5 ステップ4: Database Vaultセキュア・アプリケーション・ロールの作成
Database Vaultセキュア・アプリケーション・ロールは、ルール・セット条件が満たされた場合に、設定されます。
この段階で、Database Vaultセキュア・アプリケーション・ロールとそれに関連付けられたルール・セットが作成されますが、ロールにはまだ権限がありません。
8.7.7 ステップ6: Database Vaultセキュア・アプリケーション・ロールのテスト
すべてのコンポーネントを準備したら、Database Vaultセキュア・アプリケーション・ロールをテストできます。
8.8 セキュア・アプリケーション・ロールのパフォーマンスへの影響
Oracle Enterprise Manager Cloud Controlによってシステム・パフォーマンスを確認できます。
他に使用できるツールとして、自動ワークロード・リポジトリ(AWR)およびTKPROF
があります。
関連項目:
-
データベース・パフォーマンスの監視方法を学習するには、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください
-
個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください
8.9 セキュア・アプリケーション・ロールに関連するレポートおよびデータ・ディクショナリ・ビュー
Oracle Database Vaultには、Oracle Database Vaultセキュア・アプリケーション・ロールの分析に使用できる、レポートとデータ・ディクショナリ・ビューが用意されています。
表8-1に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。
表8-1 セキュア・アプリケーション・ロールに関連するレポート
レポート | 説明 |
---|---|
Oracle Database Vaultセキュア・アプリケーション・ロールを有効にする操作によって生成された監査レコードが表示されます。 このタイプの監査レコードを生成するには、ロールに関連付けられているルール・セットの監査を有効にします。 |
|
存在しないデータベース・ロールや、不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。 |
|
ルールが定義されていないか、有効ではなく、それらを使用するセキュア・アプリケーション・ロールに影響を与える可能性のあるルール・セットが表示されます。 |
|
強力な権限のあるデータベース・アカウントおよびロールに関する情報が示されます。 |
DBA_DV_ROLE
データ・ディクショナリ・ビューを使用すれば、権限管理で使用されるOracle Database Vaultセキュア・アプリケーション・ロールを検索できます。詳細は、「DBA_DV_ROLEビュー」を参照してください。