5 権限分析を実行した権限の使用の確認
権限分析では、ユーザーが使用中および未使用の権限とロールが動的に分析されます。
- 権限分析とは
権限分析により、データベース・ロールおよび権限に対する最低限の権限のベスト・プラクティスを実装することで、アプリケーションおよびデータベース操作のセキュリティが向上します。 - 権限分析ポリシーの作成および管理について
SQL*PlusまたはEnterprise Manager Cloud Controlのいずれかで権限分析ポリシーの作成および管理を行うことができます。 - Cloud Controlによるロールの作成および権限の管理
権限分析レポートで検出された権限を使用して新規ロールを作成し、次にこのロールをユーザーに付与できます。 - チュートリアル: 取得実行の使用によるANY権限使用の分析
このチュートリアルでは、取得実行を作成してREAD ANY TABLE
システム権限の使用を分析する方法を示します。 - チュートリアル: DBAロールを持つユーザーによる権限の使用の分析
このチュートリアルでは、DBA
ロールを持ち、データベースのチューニング操作を実行するユーザーの権限の使用を分析する方法を示します。 - 権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー
Oracle Databaseには、分析された権限に関する情報を示すデータ・ディクショナリ・ビューが用意されています。
親トピック: ユーザー認証および認可の管理
権限分析とは
権限分析により、データベース・ロールおよび権限に対する最低限の権限のベスト・プラクティスを実装することで、アプリケーションおよびデータベース操作のセキュリティが向上します。
- 権限分析について
Oracle Databaseカーネルの内部で実行する権限分析では、最低限の権限モデルを実装するための使用済および未使用の権限を識別することで、ユーザー、ツールおよびアプリケーション・アカウントの攻撃面を縮小するのに役立ちます。 - 権限分析の利点およびユースケース
権限の使用の分析は、不必要に付与された権限を検出したり最低限の権限のベスト・プラクティスを実装するために役立ちます。 - 権限分析を実行できるユーザー
権限分析を使用するには、CAPTURE_ADMIN
ロールが付与されている必要があります。 - 権限分析のタイプ
様々なタイプの権限分析ポリシーを作成して、特定の目的を実現できます。 - マルチテナント環境による権限分析への影響について
マルチテナント環境での権限分析ポリシーの作成および使用が可能です。 - 権限分析でのプリコンパイル済データベース・オブジェクトの処理
権限分析を使用すると、プリコンパイル済データベース・オブジェクトで使用されている権限を取得できます。
親トピック: 権限分析を実行した 権限 の 使用の確認
権限分析について
Oracle Databaseカーネルの内部で実行する権限分析では、最低限の権限モデルを実装するための使用済および未使用の権限を識別することで、ユーザー、ツールおよびアプリケーション・アカウントの攻撃面を縮小するのに役立ちます。
権限分析は、データベース・ユーザーおよびアプリケーションによって使用される権限を動的に取得します。権限分析を使用すると、最低限の権限のガイドラインを迅速かつ効率的に実施するのに役立ちます。最低限の権限モデルでは、ユーザーにジョブの実行に必要な権限およびアクセス権のみが与えられます。ユーザーが様々なタスクを実行することがよくありますが、その場合でも、ユーザーにはすべて同じ強力な権限のセットが付与されます。権限分析なしでは、各ユーザーが持つ必要がある権限を見つけ出すのが困難で、多くの場合、様々なタスクがある場合でも、ユーザーは共通の権限のセットの一部で終わる可能性があります。権限を管理する組織であっても、ユーザーは時間の経過とともに権限を累積し、権限が失われることはほとんどありません。業務分離により、1つのプロセスが様々なユーザーの個別のタスクに分割されます。最低限の権限では、ユーザーが必要なタスクのみを実行できるように分離が強制されます。業務の分離の強制は内部制御に役立ちますが、特権資格証明を盗む悪質なユーザーからのリスクも減少します。
権限分析では、実行時にデータベース・ユーザーおよびアプリケーションによって使用される権限を取得し、問合せ可能なデータ・ディクショナリ・ビューにその結果を書き込みます。アプリケーションに定義者の権限および起動者の権限のプロシージャが含まれている場合、権限分析では、権限取得が作成され有効化される前にプロシージャがコンパイルされていた場合でも、プロシージャのコンパイルと実行に必要な権限が取得されます。
親トピック: 権限分析とは
権限分析の利点およびユースケース
権限の使用の分析は、不必要に付与された権限の検索と最低限の権限のベスト・プラクティスの実装に役立ちます。
- 最低限の権限のベスト・プラクティス
データベースにアクセスするアカウントの権限は、アプリケーションまたはユーザーが厳密に必要とする権限に制限する必要があります。 - セキュアなアプリケーションの開発
アプリケーションの開発フェーズで、多くの強力なシステム権限およびロールをアプリケーション開発者に付与する管理者もいます。
親トピック: 権限分析とは
最低限の権限のベスト・プラクティス
データベースにアクセスするアカウントの権限は、アプリケーションまたはユーザーが厳密に必要とする権限に制限する必要があります。
ただし、特にサード・パーティがアプリケーションを開発する場合、必要以上の権限が便宜上アプリケーション接続プール・アカウントに付与される可能性があります。さらに、一部の開発者は、システム権限およびアプリケーションのオブジェクト権限をPUBLIC
ロールに付与します。
たとえば、アプリケーション・データから選択してアプリケーション・プロシージャを実行するには、システム権限SELECT ANY TABLE
およびEXECUTE ANY PROCEDURE
をアプリケーション・アカウントappsys
に付与します。これで、appsys
は、意図しない場合でもアプリケーション以外のデータにアクセスできます。この状況で、ユーザーappsys
で権限の使用状況を分析し、結果に基づき必要に応じて権限を取り消したり付与できます。
親トピック: 権限分析の利点およびユースケース
セキュアなアプリケーションの開発
アプリケーションの開発フェーズで、多くの強力なシステム権限およびロールをアプリケーション開発者に付与する管理者もいます。
これは、管理者がその段階でアプリケーション開発者がどの権限を必要としているかを把握できないことが理由である場合があります。
アプリケーションが開発されて稼働すると、アプリケーション開発者に必要な権限とそうでない権限が明確になります。この時点で、セキュリティ管理者は不必要な権限の取消しを開始できます。ただし、アプリケーションが現在問題なく稼働しているため、アプリケーション開発者がこの考えに抵抗する場合があります。管理者は、権限分析を使用して、アプリケーションで使用されている各権限を調べることで、権限を取り消した場合に、アプリケーションの稼働を継続できるかを確認できます。
たとえば、app_owner
は、データベースに接続するアプリケーションのアプリケーション・データベース・ユーザーです。ユーザーapp_owner
は、OE
、SH
およびPM
スキーマの表を問い合せる必要があります。これらのスキーマの各表のSELECT
オブジェクト権限を付与するかわりに、セキュリティ管理者は、SELECT ANY TABLE
権限をapp_owner
に付与します。しばらくしてから、新しいスキーマHR
が作成され、機密データがHR.EMPLOYEES
表に挿入されます。ユーザーapp_owner
にはSELECT ANY TABLE
権限があるため、この表を問い合せて機密データにアクセスできますが、これはセキュリティ上問題があります。システム権限(特にANY
権限)を付与するかわりに、特定の表に対するオブジェクト権限を付与する方がはるかによい方法です。
親トピック: 権限分析の利点およびユースケース
権限分析を実行できるユーザー
権限分析を使用するには、CAPTURE_ADMIN
ロールが付与されている必要があります。
DBMS_PRIVILEGE_CAPTURE
PL/SQLパッケージを使用して、権限取得を管理します。権限分析から提供されるデータ・ディクショナリ・ビューを使用して、権限の使用を分析します。
親トピック: 権限分析とは
権限分析のタイプ
様々なタイプの権限分析ポリシーを作成して、特定の目的を実現できます。
-
ロールベースの権限使用の取得。ロールのリストを提供する必要があります。リストのロールがデータベース・セッションで有効な場合、そのセッションの使用されている権限が取得されます。Oracleデフォルト・ロール、ユーザーが作成したロール、コード・ベース・アクセス制御(CBAC)ロール、およびセキュア・アプリケーション・ロールの権限使用を取得できます。
-
コンテキストベースの権限使用の取得。SYS_CONTEXT関数でのみ、ブール式を
指定する必要があります。条件が
TRUE
と評価されると、使用されている権限が取得されます。この方法は、SYS_CONTEXT
でユーザーを指定することによって、データベース・ユーザーにより使用される権限およびロールを取得するために使用できます。 -
ロールおよびコンテキストベースの権限使用の取得。有効なロールのリストと条件の
SYS_CONTEXT
ブール式の両方を指定する必要があります。このようなロールのいずれかがセッションで有効であり、指定されたコンテキスト条件が満たされると、権限分析によって権限の使用の取得が開始されます。 -
データベース全体の権限の取得。権限分析ポリシーにタイプを指定しない場合、ユーザー
SYS
の権限を除いて、データベースの使用されている権限が取得されます。(条件なしで有効であるため、無条件の分析とも呼ばれます。)
次の制約に注意してください:
-
一度に有効にできる権限分析ポリシーは1つのみです。唯一の例外は、ロールやコンテキスト属性ドリブン分析ポリシーなどのデータベース全体以外の権限分析ポリシーと同時にデータベース全体の権限分析ポリシーを有効化できることです。
-
SYS
ユーザーの権限は分析できません。 -
権限分析には権限への付与パスが表示されますが、どの付与パスを維持するかは推奨されません。
-
ロール、ユーザーまたはオブジェクトが削除されると、権限分析データ・ディクショナリ・ビューでこれらについての権限取得を反映する値も削除されます。
親トピック: 権限分析とは
マルチテナント環境による権限分析への影響について
マルチテナント環境での権限分析ポリシーの作成および使用が可能です。
権限分析ポリシーは、CDBルートまたは個々のPDBのいずれかで作成できます。権限分析ポリシーは、それが作成されたコンテナで、CDBルートまたはアプリケーション・ルート内で使用された権限、またはPDB内で使用された権限のどちらかにのみ適用されます。マルチテナント環境全体にグローバルに適用することはできません。CAPTURE_ADMIN
ロールをローカル・ユーザーまたは共通ユーザーにローカルに付与できます。CAPTURE_ADMIN
ロールを共通ユーザーに共通に付与できます。
親トピック: 権限分析とは
権限分析でのプリコンパイル済データベース・オブジェクトの処理
権限分析を使用すると、プリコンパイル済データベース・オブジェクトで使用されている権限を取得できます。
これらのオブジェクトの例として、PL/SQLパッケージ、プロシージャ、ファンクション、ビュー、トリガーおよびJavaクラスとデータがあります。
このような権限は、ストアド・プロシージャがコールされると実行時に使用されないことがあるため、データベース全体の取得について結果を生成するときに、実行時に取得された権限とともに収集されます。権限は、プリコンパイル済データベース・オブジェクトまたは実行時取得で使用されていない場合、使用されていない権限として扱われ、実行時取得名の下に保存されます。権限がプリコンパイル済データベース・オブジェクトに使用されている場合は、取得名ORA$DEPENDENCY
の下に保存されます。権限が実行時に取得された場合は、実行時取得名の下に保存されます。プリコンパイル済データベース・オブジェクトと実行時使用の両方について使用されている権限を把握する場合は、ORA$DEPENDENCY
と実行時の両方の取得を問い合せる必要があります。使用されていない権限の場合、実行時取得名で問い合せるだけです。
権限分析を使用できるプリコンパイル済オブジェクトの詳細なリストを確認するには、ALL_DEPENDENCIES
データ・ディクショナリ・ビューのTYPE
列を問い合せます。
親トピック: 権限分析とは
権限分析ポリシーの作成および管理
SQL*PlusまたはEnterprise Manager Cloud Controlのいずれかで権限分析ポリシーの作成および管理を行うことができます。
- 権限分析ポリシーの作成および管理について
Oracle Enterprise Manager Cloud ControlまたはDBMS_PRIVILEGE_CAPTURE
PL/SQLパッケージを使用して、権限を分析できます。 - 権限分析の管理の一般ステップ
権限分析の一般的な一連のステップに従う必要があります。 - 権限分析ポリシーの作成
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャを使用して権限分析ポリシーを作成できます。 - 権限分析ポリシーの有効化
権限分析ポリシーを作成したら、そのポリシーを有効化して権限の使用を取得する必要があります。 - 権限分析ポリシーの作成と有効化の例
様々な権限分析ポリシーを作成できます。 - 権限分析ポリシーの無効化
権限分析レポートを生成する前に、権限分析ポリシーを無効化する必要があります。 - 権限分析レポートの生成
DBMS_PRIVILEGE_CAPTURE
PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシー・レポートを生成できます。 - 権限分析ポリシーの削除
権限分析ポリシーを削除する前に、最初にそれを無効化する必要があります。
親トピック: 権限分析を実行した 権限 の 使用の確認
権限分析ポリシーの作成および管理について
Oracle Enterprise Manager Cloud ControlまたはDBMS_PRIVILEGE_CAPTURE
PL/SQLパッケージを使用して、権限を分析できます。
そのためには、CAPTURE_ADMIN
ロールが付与されている必要があります。DBMS_PRIVILEGE_CAPTURE
パッケージでは、権限分析ポリシーを作成、有効化、無効化および削除できます。DBA_*
ビューで表示できる権限の使用状況を示すレポートも生成します。
権限分析ポリシーの作成
権限分析ポリシーを作成するには、DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャを使用できます。
権限分析ポリシーを作成した後、DBA_PRIV_CAPTURES
データ・ディクショナリ・ビューのリストで確認できます。ポリシーが作成されると、Oracleデータ・ディクショナリおよびSYS
スキーマに配置されます。ただし、SYS
、およびポリシーを作成したユーザーは、それを削除できます。権限使用の分析を開始できるように、ポリシー作成後に手動で有効にする必要があります。
CAPTURE_ADMIN
ロールを割り当てられたユーザーとしてCDBまたはPDBにログインします。CDB内の使用可能なPDBを確認するには、CDBルート・コンテナにログインし、
DBA_PDBS
データ・ディクショナリ・ビューのPDB_NAME
列を問い合せます。現在のコンテナを確認するには、show con_name
コマンドを実行します。DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャに次の構文を使用します。DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE( name VARCHAR2, description VARCHAR2 DEFAULT NULL, type NUMBER DEFAULT DBMS_PRIVILEGE_CAPTURE.G_DATABASE, roles ROLE_NAME_LIST DEFAULT ROLE_NAME_LIST(), condition VARCHAR2 DEFAULT NULL);
詳細は、次のとおりです。
-
name
: 作成する権限分析ポリシーの名前を指定します。この名前は必ず一意にし、128文字以下にしてください。名前には空白を使用できますが、参照するときは必ず一重引用符でその名前を囲む必要があります。既存のポリシーの名前を確認するには、DBA_PRIV_CAPTURES
ビューのNAME
列を問い合せます。 -
description
: 大/小文字混在で最大1024文字で権限分析ポリシーの目的を説明します。オプション。 -
type
: 取得条件のタイプを指定します。type
パラメータを省略する場合、デフォルトはDBMS_PRIVILEGE_CAPTURE.G_DATABASE
となります。オプション。次のいずれかのタイプを入力します。
-
DBMS_PRIVILEGE_CAPTURE.G_DATABASE
: ユーザーSYS
の権限を除いて、データベース全体で使用されている権限をすべて取得します。 -
DBMS_PRIVILEGE_CAPTURE.G_ROLE
: ロールが有効になっているセッションの権限を取得します。type
パラメータのDBMS_PRIVILEGE_CAPTURE.G_ROLE
を入力する場合、roles
パラメータも指定する必要があります。ロールが複数の場合、各ロール名をカンマで分けます。 -
DBMS_PRIVILEGE_CAPTURE.G_CONTEXT
:condition
パラメータで指定された条件がTRUE
と評価されているセッションの権限を取得します。type
パラメータのDBMS_PRIVILEGE_CAPTURE.G_CONTEXT
を入力する場合、condition
パラメータも指定する必要があります。 -
DBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXT
: ロールが有効になっており、コンテキスト条件がTRUE
と評価されているセッションの権限を取得します。type
パラメータのDBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXT
を入力する場合、roles
とcondition
の両方のパラメータも指定する必要があります。
-
-
roles
: 使用された権限が分析されるロールを指定します。つまり、指定されたロールのいずれかの権限が使用される場合、権限が分析されます。type
引数にDBMS_PRIVILEGE_CAPTURE.G_ROLE
またはDBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXT
を指定する場合、この引数を指定する必要があります。入力する各ロールは、データベースに存在する必要があります。(DBA_ROLES
データ・ディクショナリ・ビューを問い合せて、既存のロールを確認できます。)複数のロールでは、可変長配列型role_name_list
を使用してロール名を入力します。最大10のロールを指定できます。たとえば、2つのロールを指定するには、次のようにします。
roles => role_name_list('role1', 'role2'),
-
condition
: 最大4000文字でブール式を指定します。type
引数にDBMS_PRIVILEGE_CAPTURE.G_CONTEXT
またはDBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXT
を指定する場合、この引数を指定する必要があります。関係演算子(==
、>、>=
、<
、<=
、<>
、BETWEEN
およびIN
)を使用したSYS_CONTEXT
式のみがこのブール式で許可されます。
condition
式の構文は次のとおりです。predicate::= SYS_CONTEXT(namespace, attribute) relop constant_value | SYS_CONTEXT(namespace, attribute) BETWEEN constant_value AND constant_value | SYS_CONTEXT(namespace, attribute) IN {constant_value (,constant_value)* } relop::= = | < | <= | > | >= | <> context_expression::= predicate | (context_expression) AND (context_expression) | (context_expression) OR (context_expression )
たとえば、conditionを使用してIPアドレス
192.0.2.1
を指定するには、次のようにします。condition => 'SYS_CONTEXT(''USERENV'', ''IP_ADDRESS'')=''192.0.2.1''';
権限分析ポリシーを作成したら、ポリシーを有効にして権限およびロールの使用を取得する必要があります。
-
* 必要な数の定数値を追加できます(たとえば、IN {
constant_value1
}
やIN {
constant_value1
,
constant_value2
,
constant_value3
}
など)。
関連トピック
親トピック: 権限分析ポリシーの作成および管理
権限分析ポリシーの有効化
権限分析ポリシーを作成したら、そのポリシーを有効化して権限の使用を取得する必要があります。
DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE
プロシージャは、権限ポリシーを有効化し、その取得実行名を作成します。実行名では、取得が行われる期間を定義します。
親トピック: 権限分析ポリシーの作成および管理
権限分析ポリシーの作成および有効化の例
様々な権限分析ポリシーを作成できます。
- 例: データベース全体の権限の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
は、データベース全体の権限を分析するために使用できます。 - 例: 2つのロールの権限の使用状況の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャを使用すると、複数のロールの権限の使用状況を分析できます。 - 例: SQL*Plus使用中の権限の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャは、分析用に権限を取得するために使用できます。 - 例: SQL*Plusアクセス中のPSMITH権限の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
を使用すると、ユーザーがSQL*Plusを実行する際に、ユーザー・アクセスを分析できます。
親トピック: 権限分析ポリシーの作成および管理
例: データベース全体の権限の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
は、データベース全体の権限を分析するために使用できます。
例5-1は、データベースのすべての権限の使用を記録するために、DBMS_PRIVILEGE_CAPTURE
パッケージを使用して権限分析ポリシーを作成し、有効化する方法を示しています。
例5-1 データベース全体の権限の権限分析
BEGIN DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE( name => 'db_wide_capture_pol', description => 'Captures database-wide privileges', type => DBMS_PRIVILEGE_CAPTURE.G_DATABASE); END; / EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('db_wide_capture_pol');
親トピック: 権限分析ポリシーの作成および有効化の例
例: 2つのロールの権限の使用状況の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャを使用すると、複数のロールの権限の使用状況を分析できます。
例5-2は、2つのロールの権限の使用状況の分析方法を示しています。
例5-2 2つのロールの権限の使用状況の権限分析
BEGIN DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE( name => 'dba_roles_capture_pol', description => 'Captures DBA and LBAC_DBA role use', type => DBMS_PRIVILEGE_CAPTURE.G_ROLE, roles => role_name_list('dba', 'lbac_dba')); END; / EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('dba_roles_capture_pol');
親トピック: 権限分析ポリシーの作成および有効化の例
例: SQL*Plus使用中の権限の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
プロシージャは、分析用に権限を取得するために使用できます。
例5-3は、SQL*Plusの実行に使用される権限の分析方法を示しています。
例5-3 SQL*Plus使用中の権限の権限分析
BEGIN DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE( name => 'sqlplus_capture_pol', description => 'Captures privilege use during SQL*Plus use', type => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT, condition => 'SYS_CONTEXT(''USERENV'', ''MODULE'')=''sqlplus'''); END; / EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('sqlplus_capture_pol');
親トピック: 権限分析ポリシーの作成および有効化の例
例: SQL*Plusアクセス中のPSMITH権限の権限分析
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE
を使用すると、ユーザーがSQL*Plusを実行する際に、ユーザー・アクセスを分析できます。
例5-4は、SQL*Plusの実行時にセッション・ユーザーPSMITH
により使用される権限の分析方法を示しています。
例5-4 SQL*Plusアクセス中のPSMITH権限の権限分析
BEGIN DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE( name => 'psmith_sqlplus_analysis_pol', description => 'Analyzes PSMITH role priv use for SQL*Plus module', type => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT, condition => 'SYS_CONTEXT(''USERENV'', ''MODULE'')=''sqlplus'' AND SYS_CONTEXT(''USERENV'', ''SESSION_USER'')=''PSMITH'''); END; / EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('psmith_sqlplus_analysis_pol');
親トピック: 権限分析ポリシーの作成および有効化の例
権限分析ポリシーの無効化
権限分析レポートを生成する前に、権限分析ポリシーを無効化する必要があります。
DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE
プロシージャを使用できます。
親トピック: 権限分析ポリシーの作成および管理
権限分析レポートの生成
DBMS_PRIVILEGE_CAPTURE
PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシー・レポートを生成できます。
- 権限分析レポートの生成について
権限分析ポリシーが無効になると、権限分析ポリシー用に作成した取得実行に基づいてレポートを生成できます。 - 複数の名前付き取得実行の管理に関する一般プロセス
権限分析ポリシーを有効にすると、そのポリシーの結果に対して名前付き取得実行を作成できます。 - DBMS_PRIVILEGE_CAPTUREによる権限分析レポートの生成
DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT
プロシージャは、権限取得結果を示すレポートを生成します。 - Cloud Controlによる権限分析レポートの生成
Cloud Controlを使用すると、権限分析レポートを生成できます。 - Cloud Controlによる権限分析レポートへのアクセス
権限分析レポートは、使用されている権限と使用されていない権限の両方に関する情報を提供します。
親トピック: 権限分析ポリシーの作成および管理
権限分析レポートの生成について
権限分析ポリシーが無効になると、権限分析ポリシー用に作成した取得実行に基づいてレポートを生成できます。
レポート結果をSQL*Plusに表示するには、権限分析固有のデータ・ディクショナリ・ビューを問い合せます。Enterprise Manager Cloud Controlでは、「権限分析」ページの「アクション」メニューからレポートを参照でき、ここから、必要に応じてロールおよび権限の取消しと再付与を行います。権限分析プロセス中に権限を使用してレポートを生成する前に取り消す場合、権限付与パスなしで権限が使用された権限として引き続きレポートされます。
親トピック: 権限分析レポートの生成
複数の名前付き取得実行を管理するための一般的なプロセス
権限分析ポリシーを有効にすると、そのポリシーの結果に対して名前付き取得実行を作成できます。
取得実行では、取得が有効になる(開始される)ときから無効になる(停止される)ときまでの期間を定義します。このように、複数の実行を作成した後、権限取得結果の生成時にそれらを比較できます。チュートリアル: 取得実行の使用によるANY権限使用の分析では、複数の取得実行を作成および生成する方法の例を示します。
複数の名前付き取得実行を管理するための一般的なプロセスは、次のとおりです。
-
ポリシーを作成します。
-
最初の実行のためにポリシーを有効にします。
-
ユーザー挙動データの収集期間の後、このポリシーおよびその実行を無効にします。
-
結果を生成してから、この取得実行に関する情報を権限分析データ・ディクショナリ・ビューに問い合せます。
run_name
パラメータをDBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT
プロシージャから省略した場合、このプロシージャは、すべてのレコードをまとめて参照し、それらを分析します。 -
2番目の実行のためにポリシーを再度有効にします。ポリシーが最初に無効になっていないと、新しい取得実行を作成できません。
-
ユーザー・データを収集した後、ポリシーおよび2番目の実行を無効にします。
-
結果を生成します。
-
権限分析データ・ディクショナリ・ビューを問い合せます。両方の取得実行からの結果が、ビューに表示されます。取得実行のどちらかの結果のみを表示する必要がある場合は、結果を再度生成し、権限分析ビューを再度問合せできます。
有効にすると、条件を満たす場合に権限分析ポリシーが権限の使用状況の記録を開始します。任意の時点で、データベースの1つの権限分析ポリシーのみ有効化できます。唯一の例外は、タイプDBMS_PRIVILEGE_CAPTURE.G_DATABASE
の権限分析ポリシーを異なるタイプの権限分析と同時に有効化できることです。
権限分析ポリシーを削除すると、その関連付けられた取得実行は同様に削除され、権限分析データ・ディクショナリ・ビューに反映されません。
データベースの再起動は、権限分析のステータスを変更しません。たとえば、データベースの停止前に権限分析ポリシーを有効化すると、このポリシーは、データベースの停止後および再起動後に継続して有効です。
親トピック: 権限分析レポートの生成
DBMS_PRIVILEGE_CAPTUREによる権限分析レポートの生成
DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT
プロシージャは、権限取得結果を示すレポートを生成します。
親トピック: 権限分析レポートの生成
権限分析ポリシーの削除
権限分析ポリシーを削除するには、そのポリシーを無効にする必要があります。
関連トピック
親トピック: 権限分析ポリシーの作成および管理
Cloud Controlによるロールの作成および権限の管理
権限分析レポートで検出された権限を使用して新規ロールを作成し、次にこのロールをユーザーに付与できます。
- Cloud Controlでの権限分析レポートからのロールの作成
レポート・サマリーを使用して、アプリケーションで必要とされる最低限の権限を検索し、これらの権限をロールにカプセル化できます。 - Cloud Controlによるロールおよび権限の取消しおよび再付与
Enterprise Manager Cloud Controlを使用して、ロールおよび権限をユーザーに対して取り消したり、再付与したりできます。 - Cloud Controlによる取消しまたは再付与スクリプトの生成
権限分析レポートの結果に基づいて、ユーザーに対して権限を取り消したり、再付与するスクリプトを生成できます。
親トピック: 権限分析を実行した 権限 の 使用の確認
Cloud Controlによるロールおよび権限の取消しおよび再付与
Enterprise Manager Cloud Controlを使用して、ロールおよび権限をユーザーに対して取り消したり、再付与したりできます。
関連トピック
Cloud Controlによる取消しまたは再付与スクリプトの生成
権限分析レポートの結果に基づいて、ユーザーに対して権限を取り消したり、再付与するスクリプトを生成できます。
- 取消しおよび再付与スクリプトの生成について
システムやオブジェクトに対する未使用の権限およびロールの一括取消しを実行するためのスクリプトを、権限分析の生成後にダウンロードできます。 - 取消しスクリプトの生成
Enterprise Manager Cloud Controlを使用すると、ユーザーから権限を取り消すスクリプトを生成できます。 - 再付与スクリプトの生成
Enterprise Manager Cloud Controlを使用すると、ユーザーから取り消した権限を再付与するスクリプトを生成できます。
取消しおよび再付与スクリプトの生成について
システムやオブジェクトに対する未使用の権限およびロールの一括取消しを実行するためのスクリプトを、権限分析の生成後にダウンロードできます。
後で、これらの権限をユーザーに再付与することが必要になった場合は、再付与スクリプトを生成できます。再付与スクリプトを生成するには、対応する取消しスクリプトが必要です。
開発環境またはテスト環境で取消スクリプトを実行します。Oracleによって提供されているアカウントおよびロールから権限およびロールを取り消すことはできないということを知っておいてください。
チュートリアル: 取得実行の使用によるANY権限使用の分析
このチュートリアルでは、取得実行を作成してREAD ANY TABLE
システム権限の使用を分析する方法を示します。
- ステップ1: ユーザー・アカウントの作成
2つのユーザーを作成する必要があります。1つはポリシーを作成するユーザーで、もう1つはその権限の使用が分析対象となるユーザーです。 - ステップ2: 権限分析ポリシーの作成および有効化
ユーザーpa_admin
は権限分析ポリシーを作成して有効にする必要があります。 - ステップ3: READ ANY TABLEシステム権限の使用
ユーザーapp_user
として、READ ANY TABLE
システム権限を使用します。 - ステップ4: 権限分析ポリシーの無効化
ユーザーapp_user
のアクションを取得するレポートを生成するには、ポリシーを無効にする必要があります。 - ステップ5: 権限分析レポートの生成および表示
権限分析ポリシーを無効化すると、ユーザーpa_admin
は、権限分析レポートを生成し表示できます。 - ステップ6: 2番目の取得実行の作成
これで、いつでもANY_priv_analysis_pol
権限分析ポリシーの2番目の取得実行を作成できます。 - ステップ7: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
親トピック: 権限分析を実行した 権限 の 使用の確認
ステップ5: 権限分析レポートの生成および表示
権限分析ポリシーを無効にすると、ユーザーpa_admin
は権限分析レポートの生成および表示を行うことができます。
チュートリアル: DBAロールを持つユーザーによる権限の使用の分析
このチュートリアルでは、DBA
ロールを持ち、データベースのチューニング操作を実行するユーザーの権限の使用を分析する方法を示します。
- ステップ1: ユーザー・アカウントの作成
2つのユーザーを作成する必要があります。1つは権限分析ポリシーを作成するユーザーで、もう1つはその権限の使用が分析対象となるユーザーです。 - ステップ2: 権限分析ポリシーの作成および有効化
ユーザーpa_admin
は権限分析ポリシーを作成して有効にする必要があります。 - ステップ3: データベース・チューニング操作の実行
ユーザーtjones
は、DBA
ロールを使用して、データベースのチューニング操作を実行します。 - ステップ4: 権限分析ポリシーの無効化
ユーザーtjones
のアクションを取得するレポートを生成するには、ポリシーを無効にする必要があります。 - ステップ5: 権限分析レポートの生成および表示
権限分析ポリシーを無効化すると、ユーザーpa_admin
は、権限分析レポートを生成し表示できます。 - ステップ6: このチュートリアルのコンポーネントの削除
コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。
親トピック: 権限分析を実行した 権限 の 使用の確認
権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー
Oracle Databaseには、分析された権限について情報を提供する一連のデータ・ディクショナリ・ビューが用意されています。
表5-1に、これらのデータ・ディクショナリ・ビューを示します。
表5-1 権限分析情報を表示するデータ・ディクショナリ・ビュー
ビュー | 説明 |
---|---|
|
既存の権限分析ポリシーの情報をリストします |
|
レポートされた権限分析ポリシーに使用された権限および取得実行をリストします |
|
使用されていない権限付与をリストします |
|
レポートされた権限分析ポリシーに使用されていない権限および取得実行をリストします |
|
レポートされた権限分析ポリシーに使用されたオブジェクト権限および取得実行をリストします。オブジェクト付与パスを含みません。 |
|
レポートされた権限分析ポリシーに使用されていないオブジェクト権限および取得実行をリストします。オブジェクト権限付与パスを含みません。 |
|
レポートされた権限分析ポリシーに使用されたオブジェクト権限および取得実行をリストします。オブジェクト権限付与パスを含みます。 |
|
レポートされた権限分析ポリシーに使用されていないオブジェクト権限および取得実行をリストします。オブジェクト権限付与パスを含みます。 |
|
レポートされた権限分析ポリシーに使用されたシステム権限および取得実行をリストします。システム権限付与パスを含みません。 |
|
レポートされた権限分析ポリシーに使用されていないシステム権限および取得実行をリストします。システム権限付与パスを含みません。 |
|
レポートされた権限分析ポリシーに使用されたシステム権限および取得実行をリストします。システム権限付与パスを含みます。 |
|
レポートされた権限分析ポリシーに使用されていないシステム権限および取得実行をリストします。システム権限付与パスを含みます |
|
レポートされた権限分析ポリシーに使用された |
|
レポートされた権限分析ポリシーに使用されたユーザー権限および取得実行をリストします。ユーザー権限付与パスを含みません。 |
|
レポートされた権限分析ポリシーに使用されていないユーザー権限および取得実行をリストします。ユーザー権限付与パスを含みません。 |
|
レポートされた権限分析ポリシーに使用されたユーザー権限および取得実行をリストします。ユーザー権限付与パスを含みます。 |
|
レポートされた権限分析ポリシーに使用されていない権限および取得実行をリストします。ユーザー権限付与パスを含みます。 |
親トピック: 権限分析を実行した 権限 の 使用の確認