セキュア・アプリケーション・ロールを使用すると、ユーザーのアプリケーションに対するアクセス権限を制御できます。
内容は次のとおりです。
セキュア・アプリケーション・ロールを使用すると、ユーザーのアプリケーションに対するアクセス権限を制御できます。
通常のOracle Databaseセキュア・アプリケーション・ロールはカスタムPL/SQLプロシージャによって有効になります。セキュア・アプリケーション・ロールは、ユーザーによるアプリケーション外からのデータへのアクセスを阻止します。これにより、ユーザーはロールに付与されているアプリケーション権限のフレームワーク内での作業を強制されます。
ルール・セットを基準にしてロールのデータベース・アクセスを行う利点は、データベース・セキュリティ・ポリシーをすべてのアプリケーションに保存するのではなく、中央の1つの場所に保存できることです。ルール・セットに基づいたロールにより、一貫性と柔軟性を兼ね備えたメソッドを作成し、ロールが提供するセキュリティ・ポリシーを実行できます。この方法では、アプリケーション・ロールのセキュリティ・ポリシーを更新する必要がある場合、1つの場所、つまりルール・セットで行うことができます。さらに、ユーザーがどのようにしてデータベースに接続しても、ルール・セットがロールにバインドされているため、結果は同じです。ユーザーは、ロールを作成して、それをルール・セットに関連付けるのみです。関連付けられているルール・セットでは、ロールの有効化を試行するユーザーが検証されます。
関連項目:
PL/SQLインタフェースおよびパッケージの使用によるOracle Database Vaultのセキュア・アプリケーション・ロールの作成と管理については、「Oracle Database Vaultセキュア・アプリケーション・ロールのAPI」を参照してください
Database Vault AdministratorでDatabase Vaultセキュア・アプリケーション・ロールを作成できます。
既存のセキュア・アプリケーション・ロールを変更できるのは、それがOracle Database Vaultで作成された場合のみです。
Oracle Database Vault以外を使用して作成されたセキュア・アプリケーション・ロールやデータベース・ロールは変更できません。既存のOracle Databaseロールを変更してOracle Database Vaultで使用できるようにする場合は、Oracle Database Vaultで新しいセキュア・アプリケーション・ロールを作成し、既存のロールにそのセキュア・アプリケーション・ロールを付与します。たとえば、SQL*Plusでは次のようにします。
GRANT myExistingDBrole TO myDVrole;
新しいセキュア・アプリケーション・ロールを作成したら、この新しいロールを使用するようコードを変更する必要があります。これを実行するには、アプリケーション・コードにDBMS_MACSEC_ROLES.SET_ROLE
を使用します。
関連項目:
SET_ROLE
ファンクションの詳細は、「SET_ROLEプロシージャ」を参照してください
データベース管理権限を持っているユーザーは、DROP ROLE
文を使用して、Oracle Database Vaultのセキュア・アプリケーション・ロールの削除を試みることができます。
Oracle Database Vaultセキュア・アプリケーション・ロールが作成されると、必ずDatabase Vaultによりセキュア・アプリケーション・ロールがOracle Database Vaultレルムに追加されます。これにより、データベース管理者はDROP ROLE
文を使用してセキュア・アプリケーション・ロールを削除できません。
Oracle Database Vault Administratorで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により、セキュア・アプリケーション・ロールに関連付けられているルール・セットの関連する監査およびカスタム・イベント・ハンドラが処理されます。
このチュートリアルでは、セキュア・アプリケーション・ロールを作成して、勤務時間中のOE.ORDERS
表へのユーザー・アクセスを制御する方法を示します。
内容は次のとおりです。
このチュートリアルでは、OE
スキーマのORDERS
表に対するSELECT
文を、一定のユーザーだけに制限します。
さらに、これらのユーザーは、リモート接続からではなく、オフィス内でのみOE.ORDERS
表に対してこれらの文を実行できます。これを実行するには、Oracle Database Vaultセキュア・アプリケーション・ロールを作成し、これに関連付けたルール・セットによって実施されるチェックに合格した場合のみ、ユーザーにこのロールが有効化されるようにします。
Database Vaultセキュア・アプリケーション・ロールは、ルール・セット条件が満たされた場合に、設定されます。
この段階で、Database Vaultセキュア・アプリケーション・ロールとそれに関連付けられたルール・セットが作成されますが、ロールにはまだ権限がありません。
すべてのコンポーネントが所定の位置にある状態で、Database Vaultセキュア・アプリケーション・ロールをテストすることができます。
システム性能は、Oracle Enterprise Manager Cloud Controlによってチェックできます。
他に使用できるツールには、自動ワークロード・リポジトリ(AWR)とTKPROF
があります。
関連項目:
データベース・パフォーマンスの監視方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください
個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください
Oracle Database Vaultには、Oracle Database Vaultセキュア・アプリケーション・ロールの分析に使用できるレポートとデータ・ディクショナリ・ビューが用意されています。
表9-1に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。
表9-1 セキュア・アプリケーション・ロールに関連するレポート
レポート | 説明 |
---|---|
Oracle Database Vaultセキュア・アプリケーション・ロールを有効にする操作によって生成された監査レコードが表示されます。 このタイプの監査レコードを生成するには、ロールに関連付けられているルール・セットの監査を有効にします。 |
|
存在しないデータベース・ロールや、不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。 |
|
ルールが定義されていないか、有効ではなく、それらを使用するセキュア・アプリケーション・ロールに影響を与える可能性のあるルール・セットが表示されます。 |
|
強力な権限のあるデータベース・アカウントおよびロールに関する情報が示されます。 |
DBA_DV_ROLE
データ・ディクショナリ・ビューを使用すれば、権限管理で使用されるOracle Database Vaultセキュア・アプリケーション・ロールを検索できます。詳細は、「DVSYS.DBA_DV_ROLEビュー」を参照してください。