31 カスタム統合監査ポリシーの作成
CREATE AUDIT POLICY
文とAUDIT
文を使用して、カスタム統合監査ポリシーを管理できます。
- カスタム統合監査ポリシーの作成について
デフォルトのOracle Database機能とOracle Database Vaultなどの他のOracle製品の両方のアクティビティを監査できます。 - カスタム統合監査ポリシーの作成のベスト・プラクティス
データベースで複数のポリシーを一度に有効にできますが、有効にするポリシーの数を制限することが理想的です。 - カスタム統合監査ポリシーを作成するための構文
カスタム統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文を使用する必要があります。 - 標準のOracle Databaseコンポーネントの監査
統合監査ポリシーを作成して、ロール、システム権限、管理ユーザーなどのコンポーネントと、表などのオブジェクトに対して実行されるアクションをモニターできます。 - 特殊なユースケース監査シナリオ
条件およびアプリケーション・コンテキストを使用して、複数層環境およびマルチテナント環境で、統合監査ポリシーを作成できます。 - その他のOracle製品および機能のコンポーネントの監査
Oracle Database Vault、Oracle Real Application Security、Oracle Data Pump、Oracle Machine Learning for SQLのイベントなどのOracle製品および機能に対して統合監査ポリシーを作成できます。 - 統合監査ポリシーの管理
統合監査ポリシーを作成したら、それを有効にする必要があります。無効な統合監査ポリシーの変更および統合監査ポリシーの削除ができます。 - 例: 非データベース・ユーザーの監査
このチュートリアルでは、非データベース・ユーザーのアクションをクライアント識別子を使用して監査する統合監査ポリシーの作成方法を示します。 - カスタム統合監査ポリシーのデータ・ディクショナリ・ビュー
データ・ディクショナリ・ビューおよび動的ビューを問い合せると、カスタム統合監査ポリシーについて詳細な監査情報を確認できます。
親トピック: 監査を使用したデータベース・アクティビティの監視
31.1 カスタム統合監査ポリシーの作成について
デフォルトのOracle Database機能とOracle Database Vaultなどの他のOracle製品の両方のアクティビティを監査できます。
統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文を使用します。ポリシーは、1ユーザーのアクティビティの監査のような単純なものにすることも、条件を使用した複雑な監査ポリシーを作成することもできます。1つのデータベースで同時に複数の監査ポリシーを有効にできます。監査ポリシーには、システム全体の監査オプションとオブジェクト固有の監査オプションの両方を含めることができます。一般的なアクティビティに対する監査の大半に、統合監査ポリシーを使用する必要があります。
AUDIT
およびNOAUDIT
SQL文では、それぞれ監査ポリシーを有効および無効にできます。AUDIT
文では、ポリシーに対して特定のユーザーを含めたり、除外することもできます。AUDIT
およびNOAUDIT
文では、アプリケーション・コンテキスト値を監査することもできます。
監査するシステム・アクションを検索するには、AUDITABLE_SYSTEM_ACTIONS
システム表を問い合せます。
親トピック: カスタム統合監査ポリシーの作成
31.2 カスタム統合監査ポリシーの作成のベスト・プラクティス
データベースで複数のポリシーを一度に有効にできますが、有効にするポリシーの数を制限することが理想的です。
統合監査ポリシーの構文は、データベースで必要なすべての監査設定を網羅する1つのポリシーを作成できるように設計されています。複数の小さいポリシーを作成するのではなく、関連するオプションを1つのポリシーにグループ化することをお薦めします。これにより、ポリシーをより簡単に管理できるようになります。たとえば、事前定義の各監査ポリシーには、1つの統合監査ポリシーに複数の監査設定が含まれています。
ユーザー・セッションで有効な監査ポリシーの数を制限すると、次の利点が得られます。
-
監査ポリシーの詳細をセッションのUGAメモリーにロードすることに伴うログオン・オーバーヘッドを軽減します。有効なポリシーの数が減ると、ポリシー情報のロードにかかる時間が短縮します。
-
UGAメモリーにキャッシュするのに必要なポリシーの数が減るため、セッションのUGAメモリー消費量が減ります。
-
関連するイベントの監査レコードを生成するかどうかを決定する内部監査チェック機能が効率的になります。
-
LOGON
文の統合監査ポリシーを構成した場合は、直接ログインおよびALTER SESSION
文とSET CONTAINER
文の両方について、監査レコードが生成されます。
関連トピック
親トピック: カスタム統合監査ポリシーの作成
31.3 カスタム統合監査ポリシーを作成するための構文
カスタム統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文を使用する必要があります。
統合監査ポリシーを作成すると、Oracle Databaseによって、ポリシーを作成したユーザーのスキーマではなく、SYS
スキーマによって所有される最初のクラス・オブジェクトに格納されます。
例31-1に、CREATE AUDIT POLICY
文の構文を示します。
例31-1 CREATE AUDIT POLICY文の構文
CREATE AUDIT POLICY policy_name { {privilege_audit_clause [action_audit_clause ] [role_audit_clause ]} | { action_audit_clause [role_audit_clause ] } | { role_audit_clause } } [WHEN audit_condition EVALUATE PER {STATEMENT|SESSION|INSTANCE}] [ONLY TOPLEVEL] [CONTAINER = {CURRENT | ALL}];
詳細は、次のとおりです。
-
privilege_audit_clause
は、権限に関連する監査オプションを記述します。権限の監査オプションを構成するための詳細な構文は、次のとおりです。privilege_audit_clause := PRIVILEGES privilege1 [, privilege2]
-
action_audit_clause
およびstandard_actions
は、オブジェクト・アクションに関連する監査オプションを記述します。構文は次のとおりです。action_audit_clause := {standard_actions | component_actions} [, component_actions ] standard_actions := ACTIONS action1 [ ON {schema.obj_name | DIRECTORY directory_name | MINING MODEL schema.obj_name } ] [, action2 [ ON {schema.obj_name | DIRECTORY directory_name | MINING MODEL schema.obj_name } ]
-
component_actions
では、Oracle Label Security、Oracle Database Real Application Security、Oracle Database Vault、Oracle Data PumpまたはOracle SQL*Loaderの監査ポリシーを作成できます。構文は次のとおりです。component_actions := ACTIONS COMPONENT=[OLS|XS] action1 [,action2 ] | ACTIONS COMPONENT=DV DV_action ON DV_object_name | ACTIONS COMPONENT=DATAPUMP [ EXPORT | IMPORT | ALL ] | ACTIONS COMPONENT=DIRECT_LOAD [ LOAD | ALL ] | ACTIONS COMPONENT=PROTOCOL [ HTTP | FTP ] | ACTIONS COMPONENT=SQL_FIREWALL [SQL VIOLATION | CONTEXT VIOLATION | ALL]
-
role_audit_clause
では、ロールを監査できます。構文は次のとおりです。role_audit_clause := ROLES role1 [, role2]
-
WHEN
audit_condition
EVALUATE PER
では、監査ポリシーおよび評価頻度の条件を作成するためのファンクションを指定できます。EVALUATE PER
句には、WHEN
条件を付ける必要があります。構文は次のとおりです。WHEN 'audit_condition := function operation value_list' EVALUATE PER {STATEMENT|SESSION|INSTANCE}
ONLY TOPLEVEL
を使用すると、ユーザーは、この監査ポリシーの一部として構成されているアクションに対して実行されるトップレベルの操作のみを監査できます。-
CONTAINER
を使用すると、ユーザーは、この監査ポリシーの一部として構成されているアクションに対して実行されるトップレベルの操作のみを監査できます。
この構文は、ポリシーにリストされているコンポーネントを監査するように設計されています。たとえば、次のポリシーを作成するとします。
CREATE AUDIT POLICY table_pol PRIVILEGES CREATE ANY TABLE, DROP ANY TABLE ROLES emp_admin, sales_admin;
監査証跡では、CREATE ANY TABLE
システム権限またはDROP ANY TABLE
システム権限、ロールemp_admin
に直接付与されている任意のシステム権限、またはロールsales_admin
に直接付与されている任意のシステム権限を必要とするSQL文を取得します。(監査されるのは、ロールを介して再帰的に付与されている権限ではなく、直接付与されている権限であることに注意してください。)
ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。オプションで、1人以上のユーザーに対してポリシーの適用または除外を実行したり、監査アクションの成功または失敗(あるいは両方)時に監査レコードが書き込まれるかどうかを指定できます。
31.4 標準のOracle Databaseコンポーネントの監査
統合監査ポリシーを作成して、ロール、システム権限、管理ユーザーなどのコンポーネントと、表などのオブジェクトに対して実行されるアクションをモニターできます。
- ロールの監査
CREATE AUDIT POLICY
文を使用して、データベース・ロールを監査できます。 - システム権限の監査
CREATE AUDIT POLICY
文を使用して、システム権限を監査できます。 - 管理ユーザーの監査
統合監査ポリシーを作成して、SYS
などの管理ユーザー・アカウントのアクションを取得できます。 - オブジェクト・アクションの監査
CREATE AUDIT POLICY
文を使用して、オブジェクト・アクションを監査できます。 - READ ANY TABLEおよびSELECT ANY TABLE権限の監査
CREATE AUDIT POLICY
文はREAD ANY TABLE
権限とSELECT ANY TABLE
権限を監査できます。 - トップレベルの文のみの監査
トップレベルのSQLまたはPL/SQL文を監査して、監査レコードのボリュームを制限できます。
親トピック: カスタム統合監査ポリシーの作成
31.4.1 ロールの監査
CREATE AUDIT POLICY
文を使用して、データベース・ロールを監査できます。
- ロールの監査について
ロールを監査すると、このロールに直接付与されたすべてのシステム権限がOracle Databaseによって監査されます。 - ロールの統合監査ポリシーの構成
ロールの使用を取得する統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文にROLES
句を含めます。 - 例: 事前定義済の共通DBAロールの監査
CREATE AUDIT POLICY
文で、ルート内とPDB内の両方のロールを監査できます。
親トピック: 標準のOracle Databaseコンポーネントの監査
31.4.1.1 ロールの監査について
ロールを監査すると、このロールに直接付与されたすべてのシステム権限がOracle Databaseによって監査されます。
ユーザー定義のロールを含むすべてのロールを監査できます。ROLES
監査オプションでロールに対して共通の統合監査ポリシーを作成する場合、ロール・リストで共通ロールのみを指定する必要があります。このようなポリシーが有効な場合、Oracle Databaseは、共通ロールに対して共通のシステム権限と共通ロールに直接付与されているシステム権限をすべて監査します。共通ロールに対してローカルに付与されているシステム権限は監査されません。ロールが共通に付与されているかどうかを確認するには、DBA_ROLES
データ・ディクショナリ・ビューを問い合せます。ロールに付与された権限が共通に付与されたかどうかを確認するには、ROLE_SYS_PRIVS
ビューを問い合せます。
親トピック: ロールの監査
31.4.1.2 ロールの統合監査ポリシーの構成
ロールの使用を取得する統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文にROLES
句を含めます。
-
次の構文を使用して、ロールを監査する統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ROLES role1 [, role2];
例:
CREATE AUDIT POLICY audit_roles_pol ROLES IMP_FULL_DATABASE, EXP_FULL_DATABASE;
条件を含む場合など、より複雑なロールの統合監査ポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
親トピック: ロールの監査
31.4.1.3 例: 事前定義済の共通DBAロールの監査
CREATE AUDIT POLICY
文で、ルート内とPDB内の両方のロールを監査できます。
次の例では、事前定義済の共通ロールDBA
を監査する方法を示します。
例31-2 事前定義済の共通DBAロールの監査
CREATE AUDIT POLICY role_dba_audit_pol
ROLES DBA
CONTAINER = ALL;
AUDIT POLICY role_dba_audit_pol;
親トピック: ロールの監査
31.4.2 システム権限の監査
CREATE AUDIT POLICY
文を使用して、システム権限を監査できます。
- システム権限監査について
システム権限の監査では、システム権限を正常に使用するアクティビティ(READ
ANY
TABLE
など)を監査します。 - 監査できるシステム権限
ほとんどのシステム権限の使用を監査できます。 - 監査できないシステム権限
いくつかのシステム権限は監査できません。 - システム権限の使用を取得するための統合監査ポリシーの構成
CREATE AUDIT POLICY
文のPRIVILEGES
句で、システム権限の使用を監査します。 - 例: ANY権限を持つユーザーの監査
CREATE AUDIT POLICY
文で、ANY
権限のユーザーを監査できます。 - 例: 条件を使用するシステム権限の監査
CREATE AUDIT POLICY
文で、システム権限の監査に条件を使用する監査ポリシーを作成できます。 - 監査証跡でのシステム権限の統合監査ポリシーの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはシステム権限の監査イベントを表示します。
親トピック: 標準のOracle Databaseコンポーネントの監査
31.4.2.1 システム権限監査について
システム権限の監査では、システム権限を正常に使用するアクティビティ(READ
ANY
TABLE
など)を監査します。
この種の監査では、正常終了するために監査対象の権限を必要とするSQL文が記録されます。
1つの統合監査ポリシーに、権限監査およびアクション監査の両方のオプションを含めることができます。SYS
などの管理ユーザーの権限の使用は監査しないでください。かわりに、オブジェクト・アクションを監査してください。
1つの問合せで複数の監査レコードを生成できることに注意してください。1つの問合せは、問合せでアクセスされるオブジェクトごとに1つずつ生成でき、これらのすべてのオブジェクトで監査が有効になっている場合です。たとえば、ビューを問い合せるときに、ビュー自体で参照される基礎となるオブジェクトごとに複数の監査レコードを生成できます。
ノート:
システム権限、オブジェクト、データベース・イベントなどを監査できます。ただし、データベース権限の使用状況(たとえば、指定のロールに付与されている権限はどれが使用されているか)を検索し、使用されている権限と使用されていない権限のレポートを生成する必要がある場合は、権限キャプチャを作成できます。
関連トピック
親トピック: システム権限の監査
31.4.2.2 監査できるシステム権限
ほとんどのシステム権限の使用を監査できます。
監査可能なシステム権限のリストを検索するには、SYSTEM_PRIVILEGE_MAP
表を問い合せます。
例:
SELECT NAME FROM SYSTEM_PRIVILEGE_MAP; NAME ------------- ALTER ANY CUBE BUILD PROCESS SELECT ANY CUBE BUILD PROCESS ALTER ANY MEASURE FOLDER ...
アクション監査オプションと同様、権限監査では、データベース・ユーザーに付与されているシステム権限の使用を監査します。SQL文監査と権限監査の両方について類似の監査オプションを設定しても、生成される監査レコードは1つのみです。たとえば、2つのポリシーが存在しており、一方が、特にHR.PROC
プロシージャのEXECUTE PROCEDURE
を監査し、もう一方が一般的にEXECUTE PROCEDURE
(すべてのプロシージャ)を監査する場合は、監査レコードが1つのみ書き込まれます。
権限監査は、アクションが既存の所有者およびオブジェクト権限によってすでに許可されている場合は実行されません。権限監査がトリガーされるのは、権限が不十分な場合、つまりアクションを可能にする権限がシステム権限である場合のみです。たとえば、ユーザーSCOTT
にSELECT ANY TABLE
権限が付与されており、SELECT ANY TABLE
が監査対象であるとします。SCOTT
が自分の表(たとえば、SCOTT.EMP
)を選択した場合、SELECT ANY TABLE
権限は使用されません。SCOTT
が自身のスキーマ内でSELECT
文を実行したため、監査レコードは生成されません。一方、SCOTT
が他のスキーマ(たとえばHR.EMPLOYEES
表)から選択すると、監査レコードが生成されます。SCOTT
は自分自身のスキーマ外にある表を選択したため、SELECT ANY TABLE
権限を使用する必要がありました。
親トピック: システム権限の監査
31.4.2.3 監査できないシステム権限
次のシステム権限は監査できません。
これらの権限は、次のとおりです。
-
INHERIT ANY PRIVILEGE
-
INHERIT PRIVILEGE
-
TRANSLATE ANY SQL
-
TRANSLATE SQL
親トピック: システム権限の監査
31.4.2.4 システム権限の使用を取得するための統合監査ポリシーの構成
CREATE AUDIT POLICY
文のPRIVILEGES
句で、システム権限の使用を監査します。
-
次の構文を使用して、権限を監査する統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name PRIVILEGES privilege1 [, privilege2];
例:
CREATE AUDIT POLICY my_simple_priv_policy PRIVILEGES SELECT ANY TABLE, CREATE LIBRARY;
条件を含む場合など、より複雑な権限の統合監査ポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
親トピック: システム権限の監査
31.4.2.5 例: ANY権限を持つユーザーの監査
CREATE AUDIT POLICY
文で、ANY
権限のユーザーを監査できます。
例31-3に、ユーザーHR_MGR
の複数のANY
権限を監査する方法を示します。
例31-3 ANY権限を持つユーザーの監査
CREATE AUDIT POLICY hr_mgr_audit_pol PRIVILEGES DROP ANY TABLE, DROP ANY CONTEXT, DROP ANY INDEX, DROP ANY LIBRARY; AUDIT POLICY hr_mgr_audit_pol BY HR_MGR;
親トピック: システム権限の監査
31.4.2.6 例: 条件を使用するシステム権限の監査
CREATE AUDIT POLICY
文で、システム権限の監査に条件を使用する監査ポリシーを作成できます。
例31-4に、条件を使用してpsmith
およびjrawlins
の2人のオペレーティング・システム・ユーザーによって使用される権限を監査する方法を示します。
例31-4 条件を使用するシステム権限の監査
CREATE AUDIT POLICY os_users_priv_pol PRIVILEGES SELECT ANY TABLE, CREATE LIBRARY WHEN 'SYS_CONTEXT (''USERENV'', ''OS_USER'') IN (''psmith'', ''jrawlins'')' EVALUATE PER SESSION; AUDIT POLICY os_users_priv_pol;
親トピック: システム権限の監査
31.4.2.7 監査証跡でのシステム権限の統合監査ポリシーの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはシステム権限の監査イベントを表示します。
次の例では、オペレーティング・システム・ユーザーpsmith
によって使用される権限のリストが表示されます。
SELECT SYSTEM_PRIVILEGE_USED FROM UNIFIED_AUDIT_TRAIL WHERE OS_USERNAME = 'PSMITH' AND UNIFIED_AUDIT_POLICIES = 'OS_USERS_PRIV_POL'; SYSTEM_PRIVILEGE_USED ---------------------- SELECT ANY TABLE DROP ANY TABLE
ノート:
SELECT ANY TABLE
システム権限に対する監査ポリシーを作成した場合、ユーザーがREAD
オブジェクト権限を実行したか、SELECT
オブジェクト権限を実行したかによって監査証跡で取得されるアクションが影響を受けます。
親トピック: システム権限の監査
31.4.3 管理ユーザーの監査
統合監査ポリシーを作成して、SYS
などの管理ユーザー・アカウントのアクションを取得できます。
- 監査可能な管理ユーザー・アカウント
Oracle Databaseでは、管理権限に関連付けられている管理ユーザー・アカウントが用意されています。 - 管理者アクティビティを取得するための統合監査ポリシーの構成
CREATE AUDIT POLICY
文で、管理ユーザーを監査できます。 - 例: SYSユーザーの監査
CREATE AUDIT POLICY
文で、SYS
ユーザーを監査できます。
親トピック: 標準のOracle Databaseコンポーネントの監査
31.4.3.1 監査可能な管理ユーザー・アカウント
Oracle Databaseでは、管理権限に関連付けられている管理ユーザー・アカウントが用意されています。
表31-1に、デフォルトの管理ユーザー・アカウントと、通常関連付けられている管理権限を示します。
表31-1 管理ユーザーおよび管理権限
管理ユーザー・アカウント | 管理権限 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
脚注1
PUBLIC
はユーザーPUBLIC
を示し、SYSOPER
管理権限でログインしている場合に有効なユーザーです。これはPUBLIC
ロールを示しません。
関連トピック
親トピック: 管理ユーザーの監査
31.4.3.2 管理者アクティビティを取得するための統合監査ポリシーの構成
CREATE AUDIT POLICY
文で、管理ユーザーを監査できます。
-
管理ユーザーを監査する場合は、統合監査ポリシーを作成して、非管理ユーザーに適用する場合と同じように、このポリシーをユーザーに適用します。管理ユーザーによるトップ・レベルの文は、データベースを開くまで強制的に監査されます。
親トピック: 管理ユーザーの監査
31.4.4 オブジェクト・アクションの監査
CREATE AUDIT POLICY
文を使用して、オブジェクト・アクションを監査できます。
- オブジェクト・アクションの監査について
HR.EMPLOYEES
表のUPDATE
文など、特定のオブジェクトで実行されるアクションを監査できます。 - 監査できるオブジェクト・アクション
オブジェクト・アクションの監査では、監査の対象を拡大または限定できます(すべてのユーザー・アクションの監査または一部のユーザー・アクションに限定した監査など)。 - オブジェクト・アクションの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
句で、オブジェクト・アクションを取得するポリシーを作成します。 - 例: SYSオブジェクトでのアクションの監査
CREATE AUDIT POLICY
文で、SYS
オブジェクトのアクションを監査できます。 - 例: 1つのオブジェクトでの複数のアクションの監査
CREATE AUDIT POLICY
文で、1つのオブジェクト上の複数のアクションを監査できます。 - 例: オブジェクトに対するGRANTおよびREVOKE操作の監査
CREATE AUDIT POLICY
文は、表などのオブジェクトに対するGRANT
およびREVOKE
操作を監査できます。 - 例: オブジェクトでのアクションと権限の両方の監査
CREATE AUDIT POLICY
文で、単一のポリシーを使用して1つのオブジェクトでの複数のアクションと権限の両方を監査できます。 - 例: 表の列でのアクションの監査
CREATE AUDIT POLICY
文で、表またはビューの列でのアクションを監査できます。 - 例: 表でのすべてのアクションの監査
CREATE AUDIT POLICY
文で、表でのすべてのアクションを監査できます。 - 例: データベースでのすべてのアクションの監査
CREATE AUDIT POLICY
文で、データベースでのすべてのアクションを監査できます。 - 監査証跡でのオブジェクト・アクションの統合監査ポリシーの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはオブジェクト・アクションの監査イベントを表示します。 - ファンクション、プロシージャ、パッケージおよびトリガーの監査
ファンクション、プロシージャ、PL/SQLパッケージおよびトリガーを監査できます。 - Oracle Virtual Private Databaseの述語の監査
統合監査証跡では、Oracle Virtual Private Database (VPD)のポリシーで使用される述語を自動的に取得します。 - Oracle Virtual Private Databaseポリシー関数の監査ポリシー
監査によって動的VPDポリシーや静的VPDポリシー、コンテキスト依存VPDポリシーが影響を受けることがあります。 - 統合監査とエディション付きオブジェクト
エディション付きオブジェクトに対するアクションを監査するために作成された監査ポリシーは、そのすべてのエディションに適用されます。
親トピック: 標準のOracle Databaseコンポーネントの監査
31.4.4.1 オブジェクト・アクションの監査について
HR.EMPLOYEES
表のUPDATE
文など、特定のオブジェクトで実行されるアクションを監査できます。
監査は、オブジェクトに使用されたDDLおよびDML文を含むことができます。1つの統合監査ポリシーに、権限監査およびアクション監査の両方のオプションと、複数のオブジェクトの監査オプションのセットを含めることができます。
機密情報を含む表の場合、監査レコードが間接的なSELECT
操作を取得するように、統合監査ポリシーにACTIONS ALL
句を含めることをお薦めします。
親トピック: オブジェクト・アクションの監査
31.4.4.2 監査できるオブジェクト・アクション
オブジェクト・アクションの監査では、監査の対象を拡大または限定できます(すべてのユーザー・アクションの監査または一部のユーザー・アクションに限定した監査など)。
表31-2に、オブジェクト・レベルの標準データベース・アクションのオプションを示します。SELECT
SQL文に対する監査ポリシーでは、SELECT
アクションだけでなくREAD
アクションも取得されます。
表31-2 オブジェクト・レベルの標準データベース・アクションの監査オプション
オブジェクト | 監査できるSQLアクション |
---|---|
ディレクトリ |
|
ファンクション |
|
Javaスキーマ・オブジェクト(ソース、クラス、リソース) |
|
ライブラリ |
|
マテリアライズド・ビュー |
|
マイニング・モデル |
|
オブジェクト型 |
|
パッケージ |
|
プロシージャ(トリガーを含む) |
|
順序 |
|
表 |
|
表またはビュー列 |
|
ビュー |
|
31.4.4.3 オブジェクト・アクションの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
句で、オブジェクト・アクションを取得するポリシーを作成します。
-
次の構文を使用して、オブジェクト・アクションを監査する統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS action1 [, action2 ON object1] [, action3 ON object2];
例:
CREATE AUDIT POLICY my_simple_obj_policy ACTIONS SELECT ON OE.ORDERS, UPDATE ON HR.EMPLOYEES;
この例に示すように、複数のオブジェクトの複数のアクションを監査できます。
条件を含む場合など、より複雑なオブジェクト・アクションの統合監査ポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
親トピック: オブジェクト・アクションの監査
31.4.4.4 例: SYSオブジェクトでのアクションの監査
CREATE AUDIT POLICY
文で、SYS
オブジェクトのアクションを監査できます。
例31-6では、SYS.USER$
システム表でのSELECT
文を監査する監査ポリシーの作成方法を示します。この監査ポリシーは、SYS
およびSYSTEM
を含むすべてのユーザーに適用されます。
例31-6 SYSオブジェクトの監査アクション
CREATE AUDIT POLICY select_user_dictionary_table_pol ACTIONS SELECT ON SYS.USER$; AUDIT POLICY select_user_dictionary_table_pol;
親トピック: オブジェクト・アクションの監査
31.4.4.5 例: 1つのオブジェクトでの複数のアクションの監査
CREATE AUDIT POLICY
文で、1つのオブジェクト上の複数のアクションを監査できます。
例31-7に、ユーザーjrandolph
およびphawkins
によってapp_lib
ライブラリで実行される複数のSQL文の監査方法を示します。
例31-7 1つのオブジェクトでの複数のアクションの監査
CREATE AUDIT POLICY actions_on_hr_emp_pol1 ACTIONS EXECUTE, GRANT ON app_lib; AUDIT POLICY actions_on_hr_emp_pol1 BY jrandolph, phawkins;
親トピック: オブジェクト・アクションの監査
31.4.4.6 例: オブジェクトに対するGRANTおよびREVOKE操作の監査
CREATE AUDIT POLICY
文で、表などのオブジェクトに対するGRANT
およびREVOKE
操作を監査できます。
オブジェクトに対するGRANT
操作の監査を有効にすると、オブジェクトに対するREVOKE
操作の監査も自動的に有効になります。
例31-8 GRANTおよびREVOKE操作の監査
CREATE AUDIT POLICY grant_revoke_pol ACTIONS GRANT ON HR.EMPLOYEES; AUDIT POLICY grant_revoke_pol;
このタイプのポリシーのUNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューから選択するには、次のような問合せを実行できます。権限が付与されている権限受領者名は、TARGET_USER
列に記録されます。
SELECT DBUSERNAME, OBJECT_PRIVILEGES, ACTION_NAME, OBJECT_SCHEMA, OBJECT_NAME, TARGET_USER FROM UNIFIED_AUDIT_TRAIL WHERE ACTION_NAME IN ('GRANT', 'REVOKE');
親トピック: オブジェクト・アクションの監査
31.4.4.7 例: オブジェクトでのアクションと権限の両方の監査
CREATE AUDIT POLICY
文で、単一のポリシーを使用して1つのオブジェクトでの複数のアクションと権限の両方を監査できます。
例31-9に、CREATE LIBRARY
権限を使用するapp_lib
ライブラリ上のすべてのEXECUTE
およびGRANT
文がどのように監査されるかを示します。
例31-9オブジェクトでのアクションと権限の両方の監査
CREATE AUDIT POLICY actions_on_hr_emp_pol2 PRIVILEGES CREATE LIBRARY ACTIONS EXECUTE, GRANT ON app_lib; AUDIT POLICY actions_on_hr_emp_pol2 BY jrandolph, phawkins;
ディレクトリ・オブジェクトは監査可能です。たとえば、ORACLE_LOADER
アクセス・ドライバで使用されるプリプロセッサ・プログラムを含むディレクトリ・オブジェクトを作成するとします。ディレクトリ・オブジェクト内のこのプログラムを実行するすべてのユーザーを監査できます。
親トピック: オブジェクト・アクションの監査
31.4.4.8 例: 表の列でのアクションの監査
CREATE AUDIT POLICY
文で、表またはビューの列でのアクションを監査できます。
例31-10では、HR.EMPLOYEES
表のSALARY
列のSELECT
文を監査する監査ポリシーの作成方法を示します。
例31-10表の列でのアクションの監査
CREATE AUDIT POLICY emp_hr_emp_sal_access_pol ACTIONS SELECT(SALARY) ON HR.EMPLOYEES; AUDIT POLICY emp_hr_emp_sal_access_pol;
親トピック: オブジェクト・アクションの監査
31.4.4.9 例: 表でのすべてのアクションの監査
CREATE AUDIT POLICY
文で、表でのすべてのアクションを監査できます。
ALL
キーワードを使用してすべてのアクションを監査できます。すべてのアクションの監査は機密オブジェクトに対してのみ実行することをお薦めします。ALL
は、間接的なSELECT
操作を取得する場合に便利です。例31-11に、HR.EMPLOYEES
表ですべてのアクション(ユーザーpmulligan
によるアクションを除く)を監査する方法を示します。
例31-11表でのすべてのアクションの監査
CREATE AUDIT POLICY all_actions_on_hr_emp_pol ACTIONS ALL ON HR.EMPLOYEES; AUDIT POLICY all_actions_on_hr_emp_pol EXCEPT pmulligan;
関連トピック
親トピック: オブジェクト・アクションの監査
31.4.4.10 例: データベースでのすべてのアクションの監査
CREATE AUDIT POLICY
文で、データベースでのすべてのアクションを監査できます。
この監査ポリシー構成のすべての再帰的アクションであっても、多数の監査レコードが生成されてすぐに監査証跡がいっぱいになることを回避するには、CREATE AUDIT POLICY
文にONLY TOPLEVEL
句を含めます。ONLY TOPLEVEL
のかわりに、条件を使用してACTIONS ALL
ポリシーを作成し、レコードのサブセットのみを取得できます。
ノート:
ACTIONS ALL
監査は注意して使用してください。オンライン・トランザクション処理(OLTP)ワークロードを実行する必要があるユーザーには有効にしないでください。これにより、多数の監査レコードが生成されなくなります。
例31-12に、データベース全体のすべてのアクションを監査する方法を示します。
例31-12データベースでのすべてのアクションの監査
CREATE AUDIT POLICY all_actions_pol ACTIONS ALL ONLY TOPLEVEL; AUDIT POLICY all_actions_pol;
関連トピック
親トピック: オブジェクト・アクションの監査
31.4.4.11 監査証跡でのオブジェクト・アクションの統合監査ポリシーの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはオブジェクト・アクションの監査イベントを表示します。
例:
SELECT ACTION_NAME, OBJECT_SCHEMA, OBJECT_NAME FROM UNIFIED_AUDIT_TRAIL WHERE DBUSERNAME = 'SYS'; ACTION_NAME OBJECT_SCHEMA OBJECT_NAME ----------- ------------- ------------ SELECT HR EMPLOYEES
親トピック: オブジェクト・アクションの監査
31.4.4.12 ファンクション、プロシージャ、パッケージおよびトリガーの監査
ファンクション、プロシージャ、PL/SQLパッケージおよびトリガーを監査できます。
監査可能な領域は次のとおりです。
-
スタンドアロン・ファンクション、スタンドアロン・プロシージャおよびPL/SQLパッケージは個別に監査できます。
-
PL/SQLパッケージを監査すると、パッケージ内のすべてのファンクションおよびプロシージャが監査されます。
-
すべての実行の監査を使用可能にすると、データベース内のすべてのトリガーおよびPL/SQLパッケージ内のすべてのファンクションとプロシージャが監査されます。
-
PL/SQLパッケージ内のファンクションまたはプロシージャを個別に監査することはできません。
-
PL/SQLストアド・プロシージャまたはストアド・ファンクションでの
EXECUTE
操作を監査する場合は、監査目的での操作の成否を判断する際に、プロシージャまたはファンクションを検索してその実行を認証する機能のみが監査対象となります。したがって、WHENEVER NOT SUCCESSFUL
句を指定すると、無効なオブジェクト・エラー、存在しないオブジェクト・エラー、および認証の失敗が監査されます。プロシージャまたはファンクションの実行時に検出されたエラーは監査されません。WHENEVER SUCCESSFUL
句を指定すると、実行時にエラーが検出されたかどうかに関係なく、無効なオブジェクト・エラー、存在しないオブジェクト・エラー、および認証の失敗が監査されます。
親トピック: オブジェクト・アクションの監査
31.4.4.13 Oracle Virtual Private Databaseの述語の監査
統合監査証跡では、Oracle Virtual Private Database (VPD)のポリシーで使用される述語を自動的に取得します。
VPD述語監査情報を取得するために統合監査ポリシーを作成する必要はありません。
このタイプの監査では、DML操作の一部として実行された述語式を識別できるため、DML操作の一部として生じる可能性のある他のアクションを識別するために役立ちます。たとえば、VPD述語を使用してデータベースに対して悪意のある攻撃が行われた場合、統合監査証跡を使用してその攻撃を追跡できます。ユーザーが作成したVPDポリシーの述語に加えて、Oracle Label SecurityおよびOracle Real Application Securityのポリシーの内部述語も取得されます。たとえば、Oracle Label Securityは、OLSポリシーを表に適用する一方で、VPDポリシーを内部的に作成します。Oracle Real Application Securityは、Oracle RASポリシーを有効にする一方で、VPDポリシーを生成します。
統合監査証跡では、この述語情報がUNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのRLS_INFO
列に書き込まれます。ファイングレイン監査ポリシーを使用している場合、これらのビューのRLS_INFO
列にVPD述語情報も取得されます。
監査証跡では、オブジェクトに対して複数のVPDポリシーが実施されている場合、述語とその述語が対応するポリシー名を取得できます。監査証跡ではポリシー・スキーマとポリシー名が取得されるため、異なるポリシーから生成された述語を区別することができます。この情報はデフォルトでRLS_INFO
列に連結されますが、Oracle Databaseに用意されたDBMS_AUDIT_UTIL
PL/SQLパッケージのファンクションを使用すると、結果を読みやすい形式に再フォーマットできます。
次の例は、VPDポリシーの述語を監査する方法を示しています。
-
次のVPDポリシー関数を作成します。
CREATE OR REPLACE FUNCTION auth_orders( schema_var IN VARCHAR2, table_var IN VARCHAR2 ) RETURN VARCHAR2 IS return_val VARCHAR2 (400); BEGIN return_val := 'SALES_REP_ID = 159'; RETURN return_val; END auth_orders; /
-
次のVPDポリシーを作成します。
BEGIN DBMS_RLS.ADD_POLICY ( object_schema => 'oe', object_name => 'orders', policy_name => 'orders_policy', function_schema => 'sec_admin', policy_function => 'auth_orders', statement_types => 'select, insert, update, delete' ); END; /
-
次の統合監査ポリシーを作成して有効にします。
CREATE AUDIT POLICY oe_pol ACTIONS SELECT ON OE.ORDERS; AUDIT POLICY oe_pol;
-
ユーザー
OE
として接続し、OE.ORDERS
表を問い合せます。CONNECT OE@pdb_name Enter password: password SELECT COUNT(*) FROM ORDERS;
-
AUDIT_ADMIN
ロールを付与されたユーザーとして接続し、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。CONNECT sec_admin@pdb_name Enter password: password SELECT RLS_INFO FROM UNIFIED_AUDIT_TRAIL;
次のような出力が表示されます。
((POLICY_TYPE=[3]'VPD'),(POLICY_SCHEMA=[9]'SEC_ADMIN'),(POLICY_NAME=[13]'ORDERS_POLICY'),(PREDICATE=[16]'SALES_REP_ID=159'));
-
これらの詳細を抽出して該当する列に追加するために、
DBMS_AUDIT_UTIL
PL/SQLパッケージの適切なファンクションを実行します。統合監査の場合、
DBMS_AUDIT_UTIL.DECODE_RLS_INFO_ATRAIL_UNI
ファンクションを実行する必要があります。例:
SELECT DBUSERNAME, ACTION_NAME, OBJECT_NAME, SQL_TEXT, RLS_PREDICATE, RLS_POLICY_TYPE, RLS_POLICY_OWNER, RLS_POLICY_NAME FROM TABLE (DBMS_AUDIT_UTIL.DECODE_RLS_INFO_ATRAIL_UNI (CURSOR (SELECT * FROM UNIFIED_AUDIT_TRAIL)));
再フォーマットされた監査証跡の出力は、次のようになります。
DBUSERNAME ACTION_NAME OBJECT_NAME SQL_TEXT ---------- ----------- ----------- --------------------------- RLS_PREDICATE RLS_POLICY_TYPE RLS_POLICY_OWNER RLS_POLICY_NAME ------------------ --------------- ---------------- --------------- OE SELECT ORDERS SELECT COUNT(*) FROM ORDERS SALES_REP_ID = 159 VPD SEC_ADMIN ORDERS_POLICY
31.4.4.14 Oracle Virtual Private Databaseポリシー関数の監査ポリシー
監査によって動的VPDポリシーや静的VPDポリシー、コンテキスト依存VPDポリシーが影響を受けることがあります。
-
動的ポリシー: ポリシー関数が2回(SQL文の解析時に1回と実行時に1回)評価されます。結果として、各評価で2つの監査レコードが生成されます。
-
静的ポリシー: ポリシー関数が1回評価され、SGA内にキャッシュされます。これにより、監査レコードは1つのみ生成されます。
-
状況依存ポリシー: ポリシー関数が文の解析時に1回実行されます。これにより、監査レコードは1つのみ生成されます。
親トピック: オブジェクト・アクションの監査
31.4.4.15 統合監査とエディション付きオブジェクト
エディション付きオブジェクトに対するアクションを監査するために作成された監査ポリシーは、そのすべてのエディションに適用されます。
また、あるエディションで新しく作成されたオブジェクトは、既存のエディションから統合監査ポリシーを継承します。
監査対象のオブジェクトが表示されるエディションを調べるには、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのOBJECT_NAME
およびOBJ_EDITION_NAME
列を問い合せます。
関連トピック
親トピック: オブジェクト・アクションの監査
31.4.5 READ ANY TABLEおよびSELECT ANY TABLE権限の監査
CREATE AUDIT POLICY
文で、READ ANY TABLE
権限とSELECT ANY TABLE
権限を監査できます。
- READ ANY TABLEおよびSELECT ANY TABLE権限の監査について
READ ANY TABLE
およびSELECT ANY TABLE
システム権限の使用を取得する統合監査ポリシーを作成できます。 - READオブジェクト権限操作を取得する統合監査ポリシーの作成
READ
オブジェクト権限操作を取得する統合監査ポリシーを作成できます。 - 統合監査証跡でのREAD ANY TABLEおよびSELECT ANY TABLEの取得方法
統合監査証跡では、ユーザーにREAD ANY TABLE
またはSELECT ANY TABLE
権限が付与されているかどうかに基づいてSELECT
動作が取得されます。
親トピック: 標準のOracle Databaseコンポーネントの監査
31.4.5.1 READ ANY TABLEおよびSELECT ANY TABLE権限の監査について
READ ANY TABLE
およびSELECT ANY TABLE
システム権限の使用を取得する統合監査ポリシーを作成できます。
ユーザーが実行しようとしたアクションおよびユーザーに付与されていた権限に基づいて、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのSYSTEM_PRIVILEGE_USED
列にREAD ANY TABLE
システム権限またはSELECT ANY TABLE
システム権限が記録されます。たとえば、ユーザーにSELECT ANY TABLE
権限が付与されていて、表に対する問合せを実行するとします。監査証跡に、ユーザーがSELECT ANY TABLE
システム権限を使用したことが記録されます。ユーザーにREAD ANY TABLE
が付与されていて、同じ問合せを実行した場合、READ ANY TABLE
権限が記録されます。
31.4.5.2 READオブジェクト権限操作を取得する統合監査ポリシーの作成
READ
オブジェクト権限操作を取得する統合監査ポリシーを作成できます。
-
すべての
READ
オブジェクト操作を取得する統合監査ポリシーを作成する場合、READ
文ではなくSELECT
文に対するポリシーを作成します。
例:
CREATE AUDIT POLICY read_hr_employees ACTIONS SELECT ON HR.EMPLOYEES;
監査できる他のオブジェクト・アクションの場合と同様に、SELECT
オブジェクトの操作に対しても、SELECT
文に関するポリシーを作成します。
関連トピック
31.4.5.3 統合監査証跡でのREAD ANY TABLEおよびSELECT ANY TABLEの取得方法
統合監査証跡では、ユーザーにREAD ANY TABLE
またはSELECT ANY TABLE
権限が付与されているかどうかに基づいてSELECT
動作が取得されます。
表31-3は、統合監査証跡によるこれらのアクションの取得方法を示しています。
表31-3 READ ANY TABLEおよびSELECT ANY TABLEに対する監査動作
ユーザーが発行した文 | ユーザーに付与されている権限 | 監査されるシステム権限 | 予期されるUNIFIED_AUDIT_TRAILの動作 |
---|---|---|---|
|
|
|
|
|
|
|
レコードなし |
|
|
|
|
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
|
|
|
|
|
|
|
|
レコードなし |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
|
|
|
|
レコードなし |
|
|
|
|
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
|
|
|
レコードなし |
31.4.6 トップレベルの文のみの監査
トップレベルのSQLまたはPL/SQL文を監査して、監査レコードのボリュームを制限できます。
- トップレベルのSQL文のみの監査について
トップレベルの文は、PL/SQLプロシージャ内から実行される文ではなく、ユーザーによって直接実行される文です。 - トップレベルの文のみを取得する統合監査ポリシーの構成
CREATE AUDIT POLICY
文でONLY TOPLEVEL
句を指定すると、監査ポリシーの監査構成に応じてエンド・ユーザーが直接発行するSQL文のみを監査できます。 - 例: トップレベルの文の監査
CREATE AUDIT POLICY文
で、任意のユーザーに対する統合監査ポリシーのトップレベルの文の監査レコードを含めるか除外できます。 - 例: トップレベルのSQL文監査の比較
トップレベルのSQL文監査レコードは、SQLで直接実行されるSQL文またはPL/SQLプロシージャ内から生成できます。 - 統合監査ポリシーのトップレベルのSQL文の取得
ONLY TOPLEVEL
句は、個々の統合監査証跡レコードの出力には影響しません。
親トピック: 標準のOracle Databaseコンポーネントの監査
31.4.6.1 トップレベルのSQL文のみの監査について
トップレベルの文は、PL/SQLプロシージャ内から実行される文ではなく、ユーザーによって直接実行される文です。
トップレベルの文を監査できることは、監査レコードのサブセットのみが表示されるように出力をフィルタ処理できることを意味します。ほとんどの場合、指定された監査文に対して1つの監査レコードのみが生成されます。ただし、1つの監査文に対する1つの監査レコードの生成は、他の複数のデータベース表上に構築されたデータベース・ビューおよびその下のビューでSQL問合せを発行するエンド・ユーザーには当てはまりません。問合せでビューにアクセスすると、Oracle Databaseによって、ビューが内部的に展開されて、ビューの構築の基礎となる各オブジェクトにアクセスされます。セキュリティの観点から、統合監査ポリシーがONLY TOPLEVEL
を追跡している場合でも、Oracle Databaseでは常に、問合せでアクセスされたビューの一部としてアクセスされたオブジェクトごとに1つの監査レコードが生成されます。実際、複数の監査レコードには、UNIFIED_AUDIT_TRAIL
ビューに移入されたものと同じSQL_TEXT
の値と同じSTATEMENT_ID
の値がありますが、OBJECT_NAME
の値は異なります。
ユーザーSYS
を含むすべてのユーザーからトップレベルの文を監査できます。統合監査証跡をトップレベルの文に制限する利点は、特に統合監査ポリシー内の1つの文に対して多数の監査証跡レコードが生成される場合に、監査証跡のサイズが大幅に削減されることです。この機能は、再帰的SQL文を削減するのに役立ちます。これらの監査レコードを制限することで、この機能は有用なデータを提供しないレコードの数も削減します。このシナリオの例として、200,000個を超える個別監査レコードを生成するDBMS_STATS.GATHER_DATABASE_STATS
SQL文の監査などがあります。監査証跡を削減することにより、この機能でデータベース・パフォーマンスが向上し、データベース(および使用中の場合はOracle Audit Vaultリポジトリ)内の領域が節約されます。
親トピック: トップレベルの文のみの監査
31.4.6.2 トップレベルの文のみを取得する統合監査ポリシーの構成
CREATE AUDIT POLICY
文でONLY TOPLEVEL
句を指定すると、監査ポリシーの監査構成に応じてエンド・ユーザーが直接発行するSQL文のみを監査できます。
ONLY TOPLEVEL
句を含むポリシーを検索するには、AUDIT_UNIFIED_POLICIES
データ・ディクショナリ・ビューのAUDIT_ONLY_TOPLEVEL
列を問い合せます。
CREATE AUDIT POLICY policy_name all_existing_options ONLY TOPLEVEL;
たとえば、HR.EMPLOYEES
表のSELECT
文のトップレベル・インスタンスに監査証跡を制限するには、次のようにします。
CREATE AUDIT POLICY actions_on_hr_emp_pol ACTIONS SELECT ON HR.EMPLOYEES ONLY TOPLEVEL;
親トピック: トップレベルの文のみの監査
31.4.6.3 例: トップレベルの文の監査
CREATE AUDIT POLICY
文で、任意のユーザーに対する統合監査証跡にトップレベルの文の監査レコードを含めるか除外できます。
次の例は、ユーザーSYS
によって実行されるすべてのトップレベルの文を取得する監査ポリシーを示しています。
例31-13例: ユーザーSYSによって実行されるトップレベルの文の監査
CREATE AUDIT POLICY actions_all_pol ACTIONS ALL ONLY TOPLEVEL; AUDIT POLICY actions_all_pol BY SYS;
親トピック: トップレベルの文のみの監査
31.4.6.4 例: トップレベルのSQL文監査の比較
トップレベルのSQL文監査レコードは、SQLで直接実行されるSQL文またはPL/SQLプロシージャ内から生成できます。
この例は、PL/SQLプロシージャ内部のビューへのアクセスに対して、PL/SQLプロシージャ外部のビューにアクセスした場合の監査レコードの生成が、どのように異なるかを示しています。この出力は、2つの異なる監査ポリシーから生成される監査レコードのボリュームの違いを示しています。
SYSDBA
管理権限を持つユーザーSYS
としてデータベース・インスタンスにログインします。マルチテナント環境の場合、PDBにログインします。CDB内の使用可能なPDBを確認するには、CDBルート・コンテナにログインし、
DBA_PDBS
データ・ディクショナリ・ビューのPDB_NAME
列を問い合せます。現在のコンテナを確認するには、show con_name
コマンドを実行します。- 次のプロシージャを作成します。
CREATE OR REPLACE PROCEDURE proc1 AS cnt number; BEGIN SELECT COUNT(*) INTO CNT FROM SYS.DBA_USERS WHERE USER_ID=9999; END; /
- トップレベルのアクションを取得するには、次の監査ポリシーを作成して有効にします。
CREATE AUDIT POLICY toplevel_pol ACTIONS ALL ONLY TOPLEVEL; AUDIT POLICY toplevel_pol;
- 次の問合せを実行して、監査レコードを生成し、作成した
proc1
プロシージャの外部にあるSYS.DBA_USERS
ビューにアクセスします。SELECT /* TOPLEVEL */ COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=0000;
出力は次のようになります。
COUNT(*) ---------- 1
- 先ほど作成した
proc1
プロシージャを実行して、SYS.DBA_USERS
ビューに再度アクセスしますが、プロシージャ内からアクセスします。EXEC proc1;
- 次のように、
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。SELECT ACTION_NAME, OBJECT_SCHEMA,OBJECT_NAME,STATEMENT_ID,ENTRY_ID, UNIFIED_AUDIT_POLICIES,SQL_TEXT FROM UNIFIED_AUDIT_TRAIL ORDER BY EVENT_TIMESTAMP;
次のような出力が表示されます。
ACTION_NAME OBJECT_SCHEMA -------------------- ------------------------------ OBJECT_NAME STATEMENT_ID ENTRY_ID ------------------------------ ------------ ---------- UNIFIED_AUDIT_POLICIES ------------------------------ SQL_TEXT ------------------------------------------------------------ LOGON 1 1 TOPLEVEL_POL COMMIT 3 2 TOPLEVEL_POL COMMIT 4 3 TOPLEVEL_POL SELECT SYS USER$ 5 4 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS RESOURCE_GROUP_MAPPING$ 5 5 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS TS$ 5 6 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS TS$ 5 7 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS TS$ 5 8 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS PROFNAME$ 5 9 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS USER_ASTATUS_MAP 5 10 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS PROFILE$ 5 11 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS PROFILE$ 5 12 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS DBA_USERS 5 13 TOPLEVEL_POL select /* toplevel */ count(*) from sys.dba_users where user _id=0000 EXECUTE SYS PROC1 7 14 TOPLEVEL_POL BEGIN proc1; END; 14 rows selected.
toplevel_pol
監査ポリシーを無効にしてから削除します。NOAUDIT POLICY toplevel_pol; DROP AUDIT POLICY toplevel_pol;
- 新しい監査ポリシーを作成して有効化し、すべてのアクションを取得します。
CREATE AUDIT POLICY recursive_pol ACTIONS ALL; AUDIT POLICY recursive_pol;
- 監査証跡をクリーンアップします。
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,FALSE);
- 次の問合せを実行して、監査レコードを生成し、
proc1
プロシージャの外部にあるSYS.DBA_USERS
ビューにアクセスします。SELECT /* TOPLEVEL */ COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=0000;
出力は次のようになります。
COUNT(*) ---------- 1
proc1
プロシージャを実行して、SYS.DBA_USERS
に再度アクセスしますが、proc1
プロシージャ内からアクセスします。EXEC proc1;
- 次のように、
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。SELECT ACTION_NAME, OBJECT_SCHEMA,OBJECT_NAME,STATEMENT_ID,ENTRY_ID, UNIFIED_AUDIT_POLICIES,SQL_TEXT FROM UNIFIED_AUDIT_TRAIL ORDER BY EVENT_TIMESTAMP;
次のような出力が表示されます。
ACTION_NAME OBJECT_SCHEMA -------------------- ------------------------------ OBJECT_NAME UNIFIED_AUDIT_POLICIES STATEMENT_ID ------------------------------ ------------------------------ ------------ ENTRY_ID SQL_TEXT ---------- ------------------------------------------------------------ LOGON RECURSIVE_POL 1 1 ALTER SESSION RECURSIVE_POL 1 2 ALTER SESSION SET TIME_ZONE='-07:00' COMMIT RECURSIVE_POL 3 3 COMMIT RECURSIVE_POL 4 4 SELECT SYS USER$ RECURSIVE_POL 5 5 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS RESOURCE_GROUP_MAPPING$ RECURSIVE_POL 5 6 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS TS$ RECURSIVE_POL 5 7 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS TS$ RECURSIVE_POL 5 8 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS TS$ RECURSIVE_POL 5 9 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS PROFNAME$ RECURSIVE_POL 5 10 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS USER_ASTATUS_MAP RECURSIVE_POL 5 11 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS PROFILE$ RECURSIVE_POL 5 12 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS PROFILE$ RECURSIVE_POL 5 13 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS DBA_USERS RECURSIVE_POL 5 14 select /* toplevel */ count(*) from sys.dba_users where user _id=0000 SELECT SYS USER$ RECURSIVE_POL 7 15 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS RESOURCE_GROUP_MAPPING$ RECURSIVE_POL 7 16 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS TS$ RECURSIVE_POL 7 17 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS TS$ RECURSIVE_POL 7 18 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS TS$ RECURSIVE_POL 7 19 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS PROFNAME$ RECURSIVE_POL 7 20 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS USER_ASTATUS_MAP RECURSIVE_POL 7 21 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS PROFILE$ RECURSIVE_POL 7 22 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS PROFILE$ RECURSIVE_POL 7 23 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 SELECT SYS DBA_USERS RECURSIVE_POL 7 24 SELECT COUNT(*) FROM SYS.DBA_USERS WHERE USER_ID=9999 EXECUTE SYS PROC1 RECURSIVE_POL 7 25 BEGIN proc1; END; 25 rows selected.
この問合せの出力では、25個のレコードが生成されます(先ほどは14個)。
recursive_pol
ポリシーを無効にして削除します。NOAUDIT POLICY recursive_pol; DROP AUDIT POLICY recursive_pol;
親トピック: トップレベルの文のみの監査
31.4.6.5 統合監査ポリシーでのトップレベルのSQL文の取得方法
ONLY TOPLEVEL
句は、個々の統合監査証跡レコードの出力には影響しません。
ONLY TOPLEVEL
がポリシーに及ぼす影響は、指定の統合監査ポリシーに対して生成されるレコードの数を制限することのみです。
親トピック: トップレベルの文のみの監査
31.5 特殊なユースケース監査シナリオ
条件およびアプリケーション・コンテキストを使用して、複数層環境およびマルチテナント環境で、統合監査ポリシーを作成できます。
- 複数層環境におけるSQL文および権限の監査
統合監査ポリシーを作成して、複数層環境のクライアントのアクティビティを監査できます。 - 統合監査ポリシーの条件の作成
CREATE AUDIT POLICY
文を使用すると、統合監査ポリシーの条件を作成できます。 - アプリケーション・コンテキスト値の監査
AUDIT
文を使用して、アプリケーション・コンテキスト値を監査できます。 - マルチテナント環境での統合監査ポリシーまたはAUDIT設定
統合監査ポリシーを個々のPDBに対して作成することやルートで作成することができます。
親トピック: カスタム統合監査ポリシーの作成
31.5.1 複数層環境におけるSQL文および権限の監査
統合監査ポリシーを作成して、複数層環境のクライアントのアクティビティを監査できます。
複数層環境では、クライアントの識別情報をすべての層を通して保持できます。したがって、クライアントにかわって中間層アプリケーションにより行われたアクションを、ポリシーのAUDIT
文の中でBY
user
句を使用することで監査できます。監査は、プロキシ・セッションを含むすべてのユーザー・セッションに適用されます。
中間層では、データベース・セッションでユーザーのクライアント識別情報を設定し、中間層アプリケーションでエンド・ユーザーのアクションを監査することもできます。そうすることにより、エンド・ユーザーのクライアント識別情報が監査証跡に記録されます。
次の例は、ユーザーjackson
によって発行されたSELECT TABLE
文を監査する方法を示しています。
CREATE AUDIT POLICY tab_pol PRIVILEGES CREATE ANY TABLE ACTIONS CREATE TABLE; AUDIT tab_pol BY jackson;
複数層環境でユーザー・アクティビティを監査できます。監査を開始した後で、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せることで、これらのアクティビティを確認できます。
図31-1に、UNIFIED_AUDIT_TRAIL
ビューのPROXY_SESSIONID
、ACTION_NAME
およびSESSION_ID
列を問い合せることで、プロキシ・ユーザーを監査する方法を示します。このシナリオでは、データベース・ユーザーとプロキシ・ユーザーの両方のアカウントがデータベースに認識されます。セッション・プーリングを使用できます。
図31-2に、DBA_AUDIT_TRAIL
データ・ディクショナリ・ビューのCLIENT_ID
列を問い合せることで、複数のデータベース・セッションにわたるクライアント識別子情報を監査する方法を示します。この例では、クライアント識別子はCLIENT_A
に設定されています。図31-1に示すプロキシ・ユーザー/データベース・ユーザーのシナリオと同様に、セッション・プーリングを使用できます。
関連トピック
親トピック: 特殊なユースケース監査シナリオ
31.5.2 統合監査ポリシーの条件の作成
CREATE AUDIT POLICY
文を使用すると、統合監査ポリシーの条件を作成できます。
- 統合監査ポリシーの条件について
SYS_CONTEXT
ネームスペースと属性のペアを使用して条件を指定する統合監査ポリシーを作成できます。 - 条件を使用した統合監査ポリシーの構成
CREATE AUDIT POLICY
文のWHEN
句で、監査ポリシーの条件を定義します。 - 例: SQL*Plusへのアクセスの監査
CREATE AUDIT POLICY
文で、SQL*Plusへのアクセスを監査できます。 - 例: 特定のホストにはないアクションの監査
CREATE AUDIT POLICY
文で、特定のホストにはないアクションを監査できます。 - 例: システム全体のアクションおよびスキーマ固有のアクションの両方の監査
CREATE AUDIT POLICY
文で、システム全体のアクションおよびスキーマ固有のアクションの両方を監査できます。 - 例: 文の発生ごとの条件の監査
CREATE AUDIT POLICY
文で、条件を監査できます。 - 例: 現在の管理ユーザー・セッションの統合監査セッションID
SYS_CONTEXT
ファンクションを使用してセッションIDを確認できます。 - 例: 現在の非管理ユーザー・セッションの統合監査セッションID
SYS_CONTEXT
ファンクションを使用して、現在の非管理ユーザー・セッションのセッションIDを確認できます。 - 監査証跡での条件からの監査レコードの表示方法
統合監査ポリシーからの監査レコードの条件は、監査証跡には表示されません。
親トピック: 特殊なユースケース監査シナリオ
31.5.2.1 統合監査ポリシーについて
SYS_CONTEXT
ネームスペースと属性のペアを使用して条件を指定する統合監査ポリシーを作成できます。
たとえば、監査条件を満たす可能性のある特定のユーザーや、監査条件を満たすコンピュータ・ホストにこの監査条件を適用します。
監査条件が満たされると、Oracle Databaseによってイベントのレコードが監査されます。条件定義の一部として、監査条件が文の発生、セッションまたはデータベース・インスタンスごとに評価されるかどうかを指定する必要があります。
ノート:
監査条件では、安全なアプリケーション・コンテキストと安全でないアプリケーション・コンテキストの両方を使用できます。
親トピック: 統合監査ポリシーの条件の作成
31.5.2.2 条件を使用した統合監査ポリシーの構成
CREATE AUDIT POLICY
文のWHEN
句で、監査ポリシーの条件を定義します。
-
次の構文を使用して、条件を使用する統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name action_privilege_role_audit_option [WHEN function_operation_value_list_1 [[AND | OR] function_operation_value_list_n] EVALUATE PER STATEMENT | SESSION | INSTANCE];
詳細は、次のとおりです。
-
action_privilege_role_audit_option
は、システム・アクション、オブジェクト・アクション、権限およびロールの監査オプションを示します。 -
WHEN
は、条件を定義します。この項では、次のコンポーネントについて説明します。-
function
は、次のタイプの関数を使用します。数値関数:
BITAND
、CEIL
、FLOOR
、LN
POWER
など文字値を戻す文字関数:
CONCAT
、LOWER
、UPPER
など数値を戻す文字関数:
LENGTH
、INSTR
など環境および識別子関数:
SYS_CONTEXT
、UID
など。SYS_CONTEXT
では、ほとんどの場合、USERENV
ネームスペースを使用できます。 -
operation
には、AND
、OR
、IN
、NOT IN
、=
、<
、>
、<>
の演算子を使用できます。 -
value_list
は、テストする条件を示します。
function_operation_value_list
セットごとに、AND
またはOR
で区切られた追加の条件を含めることができます。WHEN
句を記述する場合は、次のガイドラインに従います。-
function operation value
設定全体を一重引用符で囲みます。句内では、引用符で囲まれたそれぞれの構成要素を、2つのペアの一重引用符で囲みます。二重引用符は使用しないでください。 -
WHEN
条件は4000バイトを超えないでください。
-
-
EVALUATE PER
は、次のオプションを示します。-
STATEMENT
は、発生する監査可能な関連する各文の条件を評価します。 -
SESSION
は、セッション中に1回のみ条件を評価し、セッションの残りで結果をキャッシュして再利用します。Oracle Databaseでは、ポリシーが最初に使用されるときに条件を評価し、結果をUGAメモリーに後で保存します。 -
INSTANCE
は、データベース・インスタンスのライフタイム中に1回のみ条件を評価します。Oracle Databaseは条件を評価した後、インスタンスの残りのライフタイムで結果をキャッシュして再利用します。SESSION
評価と同様、評価は最初に必要になるときに実行され、結果は後でUGAメモリーに保存されます。
-
例:
CREATE AUDIT POLICY oe_orders_pol ACTIONS UPDATE ON OE.ORDERS WHEN 'SYS_CONTEXT(''USERENV'', ''IDENTIFICATION_TYPE'') = ''EXTERNAL''' EVALUATE PER STATEMENT;
ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
親トピック: 統合監査ポリシーの条件の作成
31.5.2.3 例: SQL*Plusへのアクセスの監査
CREATE AUDIT POLICY
文で、SQL*Plusへのアクセスを監査できます。
例31-14に、ロールemp_admin
およびsales_admin
が直接付与されたユーザーによる、SQL*Plusを使用したデータベースへのアクセスを監査する方法を示します。
例31-14 SQL*Plusへのアクセスの監査
CREATE AUDIT POLICY logon_pol ACTIONS LOGON WHEN 'INSTR(UPPER(SYS_CONTEXT(''USERENV'', ''CLIENT_PROGRAM_NAME'')), ''SQLPLUS'') > 0' EVALUATE PER SESSION; AUDIT POLICY logon_pol BY USERS WITH GRANTED ROLES emp_admin, sales_admin;
親トピック: 統合監査ポリシーの条件の作成
31.5.2.4 例: 特定のホストにはないアクションの監査
CREATE AUDIT POLICY
文で、特定のホストにはないアクションを監査できます。
例31-15に、OE.ORDERS
表の2つのアクション(UPDATE
およびDELETE
文)を監査する方法を示します(ホスト名sales_24
およびsales_12
は監査から除く)。監査はセッション単位で実行され、失敗した場合にのみ監査レコードが書き込まれます。
例31-15特定のホストにはないアクションの監査
CREATE AUDIT POLICY oe_table_audit1 ACTIONS UPDATE ON OE.ORDERS, DELETE ON OE.ORDERS WHEN 'SYS_CONTEXT (''USERENV'', ''HOST'') NOT IN (''sales_24'',''sales_12'')' EVALUATE PER SESSION; AUDIT POLICY oe_table_audit1 WHENEVER NOT SUCCESSFUL;
親トピック: 統合監査ポリシーの条件の作成
31.5.2.5 例: システム全体のアクションおよびスキーマ固有のアクションの両方の監査
CREATE AUDIT POLICY
文で、システム全体のアクションおよびスキーマ固有のアクションの両方を監査できます。
例31-16に、UPDATE
文がシステム全体で監査される例31-15のバリエーションを示します。DELETE
文の監査は、OE.ORDERS
表に固有です。
例31-16システム全体のアクションおよびスキーマ固有のアクションの両方の監査
CREATE AUDIT POLICY oe_table_audit2 ACTIONS UPDATE, DELETE ON OE.ORDERS WHEN 'SYS_CONTEXT (''USERENV'', ''HOST'') NOT IN (''sales_24'',''sales_12'')' EVALUATE PER SESSION; AUDIT POLICY oe_table_audit2;
親トピック: 統合監査ポリシーの条件の作成
31.5.2.6 例: 文の発生ごとの条件の監査
CREATE AUDIT POLICY
文で、条件を監査できます。
例31-17に、OE.ORDERS
表のDELETE
文の各発生に基づいて条件を監査する方法を示します(ユーザーjmartin
は監査から除く)。
例31-17文の発生ごとの条件の監査
CREATE AUDIT POLICY sales_clerk_pol ACTIONS DELETE ON OE.ORDERS WHEN 'SYS_CONTEXT(''USERENV'', ''CLIENT_IDENTIFIER'') = ''sales_clerk''' EVALUATE PER STATEMENT; AUDIT POLICY sales_clerk_pol EXCEPT jmartin;
親トピック: 統合監査ポリシーの条件の作成
31.5.2.7 例: 現在の管理ユーザー・セッションの統合監査セッションID
SYS_CONTEXT
関数を使用してセッションIDを確認できます。
例31-18に、管理ユーザーの現在のユーザー・セッションの統合監査セッションIDの確認方法を示します。
例31-18現在の管理ユーザー・セッションの統合監査セッションID
CONNECT SYS AS SYSDBA
Enter password: password
SELECT SYS_CONTEXT('USERENV', 'UNIFIED_AUDIT_SESSIONID') FROM DUAL;
次のような出力が表示されます。
SYS_CONTEXT('USERENV','UNIFIED_AUDIT_SESSIONID') -------------------------------------------------------------------------------- 2318470183
混合モード監査では、USERENV
ネームスペースのUNIFIED_AUDIT_SESSIONID
値はSESSIONID
パラメータで記録される値とは異なります。このため、混合モード監査を使用し、正しい監査セッションIDを確認する場合、SESSIONID
パラメータではなくUSERENV UNIFIED_AUDIT_SESSIONID
パラメータを使用します。完全な統合監査では、SESSIONID
とUNIFIED_AUDIT_SESSIONID
の値は同じです。
親トピック: 統合監査ポリシーの条件の作成
31.5.2.8 例: 現在の非管理ユーザー・セッションの統合監査セッションID
SYS_CONTEXT
関数を使用して、現在の非管理ユーザー・セッションのセッションIDを確認できます。
例31-19に、非管理ユーザーの現在のユーザー・セッションの統合監査セッションIDの確認方法を示します。
例31-19現在の非管理ユーザー・セッションの統合監査セッションID
CONNECT mblake@pdb_name
Enter password: password
SELECT SYS_CONTEXT('USERENV', 'UNIFIED_AUDIT_SESSIONID') FROM DUAL;
次のような出力が表示されます。
SYS_CONTEXT('USERENV','UNIFIED_AUDIT_SESSIONID') -------------------------------------------------------------------------------- 2776921346
親トピック: 統合監査ポリシーの条件の作成
31.5.2.9 監査証跡での条件からの監査レコードの表示方法
統合監査ポリシーからの監査レコードの条件は、監査証跡には表示されません。
条件がtrueと評価され、レコードが書き込まれると、レコードは監査証跡に表示されます。UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せることで、監査証跡をチェックできます。
関連トピック
親トピック: 統合監査ポリシーの条件の作成
31.5.3 アプリケーション・コンテキスト値の監査
AUDIT
文を使用して、アプリケーション・コンテキスト値を監査できます。
- アプリケーション・コンテキスト値の監査について
統合監査証跡でアプリケーション・コンテキスト値を取得できます。 - アプリケーション・コンテキストの監査設定の構成
CONTEXT
キーワードを使用したAUDIT
文で、アプリケーション・コンテキスト値の監査を構成します。 - アプリケーション・コンテキストの監査設定の無効化
NOAUDIT
文で、アプリケーション・コンテキストの監査設定を無効にします。 - 例: デフォルト・データベースでのアプリケーション・コンテキスト値の監査
AUDIT CONTEXT NAMESPACE
文で、アプリケーション・コンテキスト値を監査できます。 - 例: Oracle Label Securityのアプリケーション・コンテキスト値の監査
AUDIT CONTEXT NAMESPACE
文で、Oracle Label Securityのアプリケーション・コンテキスト値を監査できます。 - 監査証跡での監査対象のアプリケーション・コンテキストの表示方法
UNIFIED_AUDIT_POLICIES
データ・ディクショナリ・ビューはアプリケーション・コンテキストの監査イベントを表示します。
親トピック: 特殊なユースケース監査シナリオ
31.5.3.1 アプリケーション・コンテキスト値の監査について
統合監査証跡でアプリケーション・コンテキスト値を取得できます。
この機能では、監査対象の文の実行中にデータベース・アプリケーションによって設定されるアプリケーション・コンテキスト値を取得します。
Oracle Label Securityを監査する場合は、この機能により、データベース監査証跡のセッション・ラベルのアクティビティが取得されます。監査証跡では、指定したコンテキストと属性値のペアで取得されたすべての値が記録されます。
アプリケーション・コンテキストの監査設定または監査ポリシーには、セッションの静的セマンティクがあります。つまり、ユーザーに対して新しいポリシーが有効になると、後続のユーザー・セッションにこのコマンドの結果が表示されます。セッションが確立されると、ポリシーとコンテキストの設定がロードされ、このセッションは後続のAUDIT
文の影響を受けません。
アプリケーション・コンテキストの監査ポリシーは現在のPDBのみに適用されるということに注意してください。
31.5.3.2 アプリケーション・コンテキストの監査設定の構成
CONTEXT
キーワードを使用したAUDIT
文で、アプリケーション・コンテキスト値の監査を構成します。
このタイプの監査では、統合監査ポリシーを作成しません。
-
次の構文を使用して、アプリケーション・コンテキスト値の監査を構成します。
AUDIT CONTEXT NAMESPACE context_name1 ATTRIBUTES attribute1 [, attribute2] [, CONTEXT NAMESPACE context_name2 ATTRIBUTES attribute1 [, attribute2]] [BY user_list];
詳細は、次のとおりです。
-
context_name1
: オプションでCONTEXT
の名前と属性のペアを1つ追加できます。 -
user_list
は、データベース・ユーザー・アカウントのオプションのリストです。複数の名前はカンマで区切ります。この設定を省略すると、Oracle Databaseによって、すべてのユーザーにアプリケーション・コンテキスト・ポリシーが構成されます。各ユーザーがログインすると、関連するすべてのアプリケーション・コンテキストと属性のリストがユーザー・セッションでキャッシュされます。
例:
AUDIT CONTEXT NAMESPACE clientcontext3 ATTRIBUTES module, action, CONTEXT NAMESPACE ols_session_labels ATTRIBUTES ols_pol1, ols_pol3 BY appuser1, appuser2;
現在構成されているアプリケーション・コンテキストの監査設定のリストを検索するには、AUDIT_UNIFIED_CONTEXTS
データ・ディクショナリ・ビューを問い合せます。
親トピック: アプリケーション・コンテキスト値の監査
31.5.3.3 アプリケーション・コンテキストの監査設定の無効化
NOAUDIT
文で、アプリケーション・コンテキストの監査設定を無効にします。
-
アプリケーション・コンテキストの監査設定を無効にするには、
NOAUDIT
文でネームスペースと属性設定を指定します。属性は任意の順序で入力できます(対応するAUDIT CONTEXT
文で使用される順序に一致させる必要はありません)。
例:
NOAUDIT CONTEXT NAMESPACE client_context ATTRIBUTES module, CONTEXT NAMESPACE ols_session_labels ATTRIBUTES ols_pol1, ols_pol3 BY USERS WITH GRANTED ROLES emp_admin;
現在監査されているアプリケーション・コンテキストを検索するには、AUDIT_UNIFIED_CONTEXTS
データ・ディクショナリ・ビューを問い合せます。
親トピック: アプリケーション・コンテキスト値の監査
31.5.3.4 例: デフォルト・データベースでのアプリケーション・コンテキスト値の監査
AUDIT CONTEXT NAMESPACE
文で、アプリケーション・コンテキスト値を監査できます。
例31-20に、ユーザーappuser1
によるmodule
およびaction
属性のclientcontext
アプリケーション値の監査方法を示します。
例31-20デフォルト・データベースでのアプリケーション・コンテキスト値の監査
AUDIT CONTEXT NAMESPACE clientcontext ATTRIBUTES module, action BY appuser1;
親トピック: アプリケーション・コンテキスト値の監査
31.5.3.5 例: Oracle Label Securityのアプリケーション・コンテキスト値の監査
AUDIT CONTEXT NAMESPACE
文で、Oracle Label Securityのアプリケーション・コンテキスト値を監査できます。
例31-21に、属性ols_pol1
およびols_pol2
に対して、ols_session_labels
という名前のOracle Label Securityのアプリケーション・コンテキストのアプリケーション・コンテキストの監査方法を示します。
例31-21 Oracle Label Securityのアプリケーション・コンテキスト値の監査
AUDIT CONTEXT NAMESPACE ols_session_labels ATTRIBUTES ols_pol1, ols_pol2;
親トピック: アプリケーション・コンテキスト値の監査
31.5.3.6 監査証跡での監査対象のアプリケーション・コンテキストの表示方法
UNIFIED_AUDIT_POLICIES
データ・ディクショナリ・ビューはアプリケーション・コンテキストの監査イベントを表示します。
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのAPPLICATION_CONTEXTS
列には、アプリケーション・コンテキストの監査データが表示されます。アプリケーション・コンテキストは、セミコロンで区切られた値のリストとして表示されます。
例:
SELECT APPLICATION_CONTEXTS FROM UNIFIED_AUDIT_TRAIL WHERE UNIFIED_AUDIT_POLICIES = 'app_audit_pol'; APPLICATION_CONTEXTS ---------------------------------------------------------- CLIENT_CONTEXT.APPROLE=MANAGER;E2E_CONTEXT.USERNAME=PSMITH
親トピック: アプリケーション・コンテキスト値の監査
31.5.4 マルチテナント環境での統合監査ポリシーまたはAUDIT設定
統合監査ポリシーを個々のPDBに対して作成することやルートで作成することができます。
- ローカル、CDB共通およびアプリケーション共通監査ポリシーについて
監査ポリシーは、ローカル、CDB共通またはアプリケーション共通のいずれかにすることができます。 - すべてのPDBに共通する監査構成
共通監査構成は、すべてのPDBで表示でき、強制されます。 - アプリケーション・ルート内の統合監査ポリシー
通常のPDBからアプリケーション・ルートを作成すると、このPDB内のローカル統合監査ポリシーがこのアプリケーション・ルートに追加されます。 - ローカル統合監査ポリシーまたは共通統合監査ポリシーの構成
CONTAINER
句の使用はマルチテナント環境限定で、CREATE AUDIT POLICY
文で使用します。 - 例: ローカル統合監査ポリシー
CREATE AUDIT POLICY
文で、ルートまたはPDBにローカル統合監査ポリシーを作成できます。 - 例: CDB共通統合監査ポリシー
CREATE AUDIT POLICY
文で、CDB共通統合監査ポリシーを作成できます。 - 例: アプリケーション共通統合監査ポリシー
アプリケーション・コンテナ共通統合監査ポリシーの場合、アクション・オプションとシステム権限オプションを監査して、共通オブジェクトおよびロールを参照できます。 - 監査証跡でのローカルまたは共通監査ポリシーまたは設定の表示方法
ルートまたはアクションが発生したPDBから、統合監査ポリシー・ビューを問い合せることができます。
親トピック: 特殊なユースケース監査シナリオ
31.5.4.1 ローカル、CDB共通およびアプリケーション共通監査ポリシーについて
監査ポリシーは、ローカル、CDB共通またはアプリケーション共通のいずれかにすることができます。
これは統合監査ポリシーと、AUDIT
SQL文を使用して作成されたポリシーの両方に適用されます。
-
ローカル監査ポリシー。このタイプのポリシーは、ルート(CDBまたはアプリケーション)またはPDB (CDBまたはアプリケーション)に存在できます。ルートに存在するローカル監査ポリシーには、ローカル・オブジェクトと共通オブジェクトの両方用のオブジェクト監査オプションを含めることができます。
AUDIT_ADMIN
ロールが付与されているローカル・ユーザーおよび共通ユーザーは、両方ともローカル・ポリシーを有効にできます(ローカル・ユーザーはPDBから、共通ユーザーは権限のあるルートまたはPDBから有効にできます)。ローカル監査ポリシーは、ローカル・ユーザーおよびロールと共通ユーザーおよびロールの両方に対して有効にすることができます。ローカル監査ポリシーは、アプリケーション・ローカル・オブジェクトおよびアプリケーション・ローカル・ロールのほか、システム・アクション・オプションおよびシステム権限オプションに対して作成できます。ローカル監査ポリシーをすべてのコンテナにわたり共通ユーザーに対して実行することや、共通監査ポリシーをローカル・ユーザーに対して実施することはできません。
-
CDB共通監査ポリシー。このタイプのポリシーは、マルチテナント環境のすべてのPDBに使用できます。共通監査ポリシーを作成および保持できるのは、
AUDIT_ADMIN
ロールが付与されている共通ユーザーのみです。共通監査ポリシーは、共通ユーザーのみに対して有効にできます。共通監査ポリシーは、ルートにのみ作成する必要があります。このタイプのポリシーには、共通オブジェクトのみのオブジェクト監査オプションを含めることができ、共通ユーザーのみに対して有効にできます。共通監査ポリシーは、共通ユーザーおよびロールに対してのみ有効にできます。CDB共通監査ポリシーの名前は、
COMMON_USER_PREFIX
初期化パラメータの値で開始する必要があります。COMMON_USER_PREFIX
パラメータのデフォルト値はc##
です。たとえば、c##hr_admin
は有効な共通監査ポリシー名です。監査ポリシー名の長さは128バイトを超えることはできず、ASCII文字のみを含める必要があります。共通監査ポリシーをすべてのコンテナにわたりローカル・ユーザーに対して実施することはできません。
-
アプリケーション共通監査ポリシー。CDB共通監査ポリシーと同様、このタイプのポリシーは、マルチテナント環境のすべてのPDBに使用できます。共通監査ポリシーは、アプリケーション共通オブジェクトおよびアプリケーション共通ロールのほか、システム・アクション・オプションおよびシステム権限オプションに対して作成できます。このタイプのポリシーはアプリケーション・ルート・コンテナでのみ作成できますが、アプリケーション共通ユーザーとCDB共通ユーザーの両方で有効にできます。オブジェクトを監査する場合は、これらのオブジェクトがアプリケーション共通オブジェクトであることを確認してください。
DBA_OBJECTS
データ・ディクショナリ・ビューのSHARING
列を問い合せることで、オブジェクトがアプリケーション共通オブジェクトであるかどうかを判断できます。アプリケーション共通監査ポリシーのネーミング規則は、
COMMON_USER_PREFIX
の値がアプリケーション・ルートからフェッチされる点を除き、CDB共通監査ポリシーと同じルールに従います。アプリケーション・ルートのデフォルト値は空の文字列です。たとえば、hr_admin
は有効なアプリケーション共通監査ポリシー名です。
デフォルトでは、CDBとアプリケーションの両方のシナリオにおいて、監査ポリシーは現在のPDBに対してローカルです。
次の表では、異なるマルチテナント環境における監査ポリシーの適用方法について説明します。
表31-4 CDBルート、アプリケーション・ルートおよび個々のPDBへの監査ポリシーの適用方法
監査オプション・タイプ | CDBルート | アプリケーション・ルート | 個々のPDB |
---|---|---|---|
共通監査文または監査ポリシー |
CDB共通ユーザーに適用されます |
CDB共通ユーザーに適用されます |
CDB共通ユーザーに適用されます |
アプリケーション・コンテナの共通監査文または監査ポリシー |
適用されません |
|
|
ローカル監査文または監査ポリシー |
ローカル構成は許可されません |
ローカル構成は許可されません |
|
31.5.4.2 すべてのPDBに共通する監査構成
共通監査構成は、すべてのPDBで表示でき、強制されます。
監査構成は、ローカルまたは共通のいずれかです。他のローカルまたは共通現象(ユーザーやロールなど)に適用されるすべてのスコープ指定ルールが、監査構成にも適用されます。
ノート:
監査初期化パラメータは、CDBレベルに存在し、各PDBには存在しません。
PDBでは、次の監査オプションがサポートされます。
-
オブジェクト監査
オブジェクト監査とは、特定のオブジェクトに対する監査構成のことを指します。共通監査構成に含めることができるのは、共通オブジェクトのみです。ローカル監査構成には、共通オブジェクトを含めることはできません。
-
監査ポリシー
監査ポリシーは、ローカルまたは共通のいずれかです。
-
ローカル監査ポリシー
ローカル監査ポリシーは、1つのPDBに適用されます。ローカル監査ポリシーは、このPDBのみのローカルおよび共通ユーザーに対して実行できます。ローカル監査ポリシーをすべてのコンテナにわたって実行しようとすると、エラーが発生します。
いかなる場合でも、ローカル監査ポリシーの実行は、ローカル監査フレームワークの一部です。
-
共通監査ポリシー
共通監査ポリシーは、すべてのコンテナに対して適用されます。このポリシーには、アクション、システム権限、共通ロールおよび共通オブジェクトのみを含めることができます。共通監査ポリシーは、共通ユーザーに対してのみ適用できます。ローカル・ユーザーに対する共通監査ポリシーをすべてのコンテナにわたって実行しようとすると、エラーが発生します。
-
共通監査構成は、ルートのSYS
スキーマに格納されています。ローカル監査構成は、適用対象のPDBのSYS
スキーマに格納されています。
監査証跡は、関連PDBのSYS
またはAUDSYS
スキーマに格納されています。オペレーティング・システムおよびPDBのXML監査証跡は、AUDIT_FILE_DEST
(非推奨)初期化パラメータで指定されたディレクトリのサブディレクトリに格納されています。
31.5.4.3 アプリケーション・ルートの統合監査ポリシー
通常のPDBからアプリケーション・ルートを作成すると、このPDBのローカル統合監査ポリシーがこのアプリケーション・ルートに追加されます。
これは統合監査ポリシーと、AUDIT
SQL文を使用して作成されたポリシーの両方に適用されます。
この場合、ローカル統合監査ポリシーを共通統合監査ポリシーに変換する必要があります。そのためには、既存の各ローカル統合監査ポリシーをアプリケーション・ルートから削除し、CREATE AUDIT POLICY
文を使用してアプリケーション共通監査ポリシーとして再作成します。
関連トピック
31.5.4.4 ローカル統合監査ポリシーまたは共通統合監査ポリシーの構成
CONTAINER
句の使用はマルチテナント環境限定で、CREATE AUDIT POLICY
文で使用します。
CREATE AUDIT POLICY
文にCONTAINER
句を含めます。
-
次の構文を使用して、ローカル統合監査ポリシーまたは共通統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name action1 [,action2 ] [CONTAINER = {CURRENT | ALL}];
詳細は、次のとおりです。
-
CURRENT
は、監査ポリシーを現在のPDBにローカルになるように設定します。 -
ALL
は、監査ポリシーを共通監査ポリシー(マルチテナント環境全体で使用可能にする)にします。
たとえば、共通統合監査ポリシーの場合は次のようになります。
CREATE AUDIT POLICY dict_updates
ACTIONS UPDATE ON SYS.USER$,
DELETE ON SYS.USER$,
UPDATE ON SYS.LINK$,
DELETE ON SYS.LINK$
CONTAINER = ALL;
次のことに注意してください。
-
CONTAINER
句はCREATE AUDIT POLICY
文に設定できますが、ALTER AUDIT POLICY
またはDROP AUDIT POLICY
には設定できません。この設定を使用するように既存の統合監査ポリシーの範囲を変更する場合は、ポリシーを削除してから再作成します。 -
AUDIT
文の場合は、リリース12.x以降の監査機能にまだ移行していないOracleデータベースがある場合など、監査設定のみにCONTAINER
句を設定します。統合監査ポリシーを有効にするために使用するAUDIT
文には、CONTAINER
句を使用できません。 -
PDBにいる場合、
CONTAINER
句に設定できるのはALL
ではなくCURRENT
のみです。PDBにいる場合に設定を省略すると、デフォルトはCONTAINER = CURRENT
になります。 -
ルートにいる場合は、
CONTAINER
句を、ポリシーをルートのみに適用する場合はCURRENT
に、ポリシーをCDB全体に適用する場合はALL
に設定できます。CONTAINER
句を省略すると、デフォルトはCONTAINER = CURRENT
になります。 -
オブジェクトの場合:
-
共通監査ポリシーには共通オブジェクトのみ、ローカル監査ポリシーにはローカル・オブジェクトと共通オブジェクトの両方を含めることができます。
-
関係するオブジェクトがローカルの場合は、
CONTAINER
をALL
に設定することはできません。共通オブジェクトにする必要があります。
-
-
権限の場合:
-
関係するユーザー・アカウントがローカル・アカウントと共通アカウントの混在の場合は、
CONTAINER
をCURRENT
に設定(またはCONTAINER
句を省略)できます。これにより、現在のPDBのみに適用されるローカル監査構成が作成されます。 -
関係するユーザーがローカル・ユーザーの場合は、
CONTAINER
をALL
に設定することはできません。共通ユーザーにする必要があります。 -
CONTAINER
をALL
に設定し、ユーザー・リストを指定しない場合(BY
句をAUDIT
文に使用)、構成が各PDBのすべての共通ユーザーに適用されます。
-
-
アプリケーション・コンテナの場合、アプリケーションのインストール、アップグレード、パッチ適用およびアンインストールに使用されるアプリケーション・コンテナ・スクリプトから共通統合監査ポリシーを実行できます。これを行うには、次のようにします。
-
アプリケーション・コンテナ・ルートに共通統合監査ポリシーを作成し、このポリシーを
CONTAINER = ALL
に設定します。または、このポリシーを次のステップで説明するスクリプトに含めることもできます。 -
Oracle Databaseのインストール、アップグレード、パッチ適用またはアンインストールに通常使用するスクリプトのカスタム・バージョンを作成します。
-
このスクリプト内の次の行に、監査するSQL文を含めます。
ALTER PLUGGABLE DATABASE APPLICATION BEGIN INSTALL List SQL statements here. Separate each statement with a semi-colon. ALTER PLUGGABLE DATABASE APPLICATION END INSTALL
スクリプトに統合監査ポリシーを含める場合は、
CREATE AUDIT POLICY
とAUDIT POLICY
の両方の文を含めるようにします。
監査ポリシーを作成して有効にした後、監査ポリシーがデータベースで定義されたものであるか、スクリプトからのものであるかにかかわらず、アプリケーション共通オブジェクトへのすべてのユーザー・アクセスが監査されます。
-
-
アプリケーションのインストール、アップグレード、パッチ適用およびアンインストール操作をアプリケーション・ルートまたはアプリケーションPDBでローカルに監査するには、共通統合監査ポリシーに関する前の手順と同様の手順に従いますが、後からアプリケーションPDBを同期します。例:
ALTER PLUGGABLE DATABASE APPLICATION application_name SYNC;
関連トピック
31.5.4.5 例: ローカル統合監査ポリシー
CREATE AUDIT POLICY
文で、ルートまたはPDBにローカル統合監査ポリシーを作成できます。
ルートでローカル統合監査ポリシーを作成すると、マルチテナント環境全体ではなく、ルートにのみ適用されます。
以下の例に、共通ユーザーc##sec_admin
によってPDBから作成され、共通ユーザーc##hr_admin
に適用されているローカル統合監査ポリシーを示します。
例31-22ローカル統合監査ポリシー
CONNECT c##sec_admin@pdb_name
Enter password: password
Connected.
CREATE AUDIT POLICY table_privs
PRIVILEGES CREATE ANY TABLE, DROP ANY TABLE
CONTAINER = CURRENT;
AUDIT POLICY table_privs BY c##hr_admin;
31.5.4.6 例: CDB共通統合監査ポリシー
CREATE AUDIT POLICY
文で、CDB共通統合監査ポリシーを作成できます。
例31-23に、共通ユーザーc##sec_admin
によってルートから作成され、共通ユーザーc##hr_admin
に適用されている共通統合監査ポリシーを示します。
例31-23共通統合監査ポリシー
CONNECT c##sec_admin
Enter password: password
Connected.
CREATE AUDIT POLICY admin_pol
ACTIONS CREATE TABLE, ALTER TABLE, DROP TABLE
ROLES c##hr_mgr, c##hr_sup
CONTAINER = ALL;
AUDIT POLICY admin_pol BY c##hr_admin;
31.5.4.7 例: アプリケーション共通統合監査ポリシー
アプリケーション・コンテナ共通統合監査ポリシーの場合、アクション・オプションとシステム権限オプションを監査して、共通オブジェクトおよびロールを参照できます。
アプリケーション共通監査ポリシーの作成はアプリケーション・ルートからに限定されますが、このポリシーをアプリケーション共通ユーザーとCDB共通ユーザーの両方に対して有効にできます。
以下の例に、アプリケーション・コンテナapp_pdb
でアプリケーション共通ユーザーSYSTEM
を監査するポリシーを作成する方法を示します。この監査ポリシーは、SYSTEM.utils_tab
表に対するSELECT
アクション、およびコンテナ・データベース(CDBルートを含む)内の任意のPDBに対するDROP TABLE
アクションを監査します。このポリシーは、すべてのコンテナでSELECT ANY TABLE
システム権限の使用も監査します。
例31-24アプリケーション共通統合監査ポリシー
CONNECT c##sec_admin@app_pdb
Enter password: password
Connected.
CREATE AUDIT POLICY app_pdb_admin_pol
ACTIONS SELECT ON hr_app_cdb.utils_tab, DROP TABLE
PRIVILEGES SELECT ANY TABLE
CONTAINER = ALL;
AUDIT POLICY app_pdb_admin_pol by SYSTEM, c##hr_admin;
前述の例では、CONTAINER
をALL
に設定することで、ポリシーは、アプリケーション・ルートおよびアプリケーション・ルートに属するすべてのアプリケーションPDBのすべての関連オブジェクトへのアクセスのみに適用されます。この範囲外にポリシーは適用されません。
31.5.4.8 監査証跡でのローカルまたは共通監査ポリシーまたは設定の表示方法
ルートまたはアクションが発生したPDBから、統合監査ポリシー・ビューを問い合せることができます。
次のタイプの問合せを実行できます。
-
すべてのPDBからのレコードを監査する。監査証跡には、PDBで実行された監査アクションが反映されます。たとえば、
PDB1
のユーザーlbrown
が、共通監査ポリシーまたはローカル監査ポリシーのいずれかによって監査されたアクションを実行すると、監査証跡によってこのアクションが取得されます。UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのDBID
列は、監査アクションが実行され、ポリシーが適用されるPDBを示します。すべてのPDBからの監査レコードを確認する場合は、ルートからCDB_UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せる必要があります。 -
共通監査ポリシーからのレコードを監査する。この場所は、共通監査ポリシーが監査レコードになる場所です。アクションが実際に発生した場所に応じて、マルチテナント環境(ルートまたはPDB)の任意の場所で監査レコードを生成できます。たとえば、共通監査ポリシー
fga_pol
は、DBMS_FGA
PL/SQLパッケージのEXECUTE
権限を監査し、このアクションがPDB1
で発生すると、監査レコードはルートではなく、PDB1
に生成されます。このため、監査レコードはPDB1に表示できます。ポリシー名に
WHERE
句を使用している場合は(たとえば、WHERE UNIFIED_AUDIT_POLICIES = 'FGA_POL'
)、ポリシーについて、ルートまたはPDBのいずれかからUNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せることができます。
次の例は、共通統合監査ポリシーの結果を検索する方法を示します。
CONNECT c##sec_admin
Enter password: password
Connected.
SELECT DBID, ACTION_NAME, OBJECT_SCHEMA, OBJECT_NAME FROM CDB_UNIFIED_AUDIT_TRAIL WHERE DBUSERNAME = 'c##hr_admin';
46892-1
DBID ACTION_NAME OBJECT_SCHEMA OBJECT_NAME
----------- ----------- ------------- -----------
653916017 UPDATE HR EMPLOYEES
653916018 UPDATE HR JOB_HISTORY
653916017 UPDATE HR JOBS
31.6 その他のOracle製品および機能のコンポーネントの監査
Oracle Database Vault、Oracle Real Application Security、Oracle Data Pump、Oracle Machine Learning for SQLのイベントなどのOracle製品および機能に対して統合監査ポリシーを作成できます。
- SQLファイアウォールの監査
SQLファイアウォールを構成した後は、SQLファイアウォール違反を追跡するための統合監査ポリシーを作成できます。 - Oracle Database Vaultイベントの監査
Oracle Database Vault環境で、CREATE AUDIT POLICY
文を使用してDatabase Vaultアクティビティを監査できます。 - Oracle Database Real Application Securityイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Database Real Application Securityイベントを監査できます。 - Oracle Recovery Managerイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Recovery Managerイベントを監査できます。 - Oracle Label Securityイベントの監査
Oracle Label Security環境で、CREATE AUDIT POLICY
文を使用してOracle Label Securityアクティビティを監査できます。 - Oracle Data Pumpイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Data Pumpを監査できます。 - Oracle SQL*Loaderダイレクト・ロード・パス・イベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle SQL*Loaderダイレクト・ロード・パス・イベントを監査できます。 - Oracle XML DB HTTPプロトコルおよびFTPプロトコルの監査
CREATE AUDIT POLICY
文を使用して、Oracle XML DB HTTPおよびFTPプロトコル・メッセージを監査できます。 - Oracle Machine Learning for SQLイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Machine Learning for SQLのイベントを監査できます。
親トピック: カスタム統合監査ポリシーの作成
31.6.1 SQLファイアウォールの監査
SQLファイアウォールを構成した後は、SQLファイアウォール違反を追跡するための統合監査ポリシーを作成できます。
- SQLファイアウォールの監査について
すべての統合監査と同様に、SQLファイアウォール違反を監査するには、AUDIT_ADMIN
ロールが必要です。 - 例: SQLファイアウォール違反の監査
AUDIT CONTEXT NAMESPACE
文で、Oracle Label Securityのセッション・ラベル属性を監査できます。 - 監査証跡でのSQLファイアウォール・イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューには、SQLファイアウォールの監査イベントが表示されます。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.1.1 SQLファイアウォールの監査について
すべての統合監査と同様に、SQLファイアウォール違反を監査するには、AUDIT_ADMIN
ロールが必要です。
SQLファイアウォールの統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文のCOMPONENT
句をSQL Firewall
に設定する必要があります。
監査レポートを表示するには、UNIFIED_AUDIT_POLICY
データ・ディクショナリ・ビューのFW_ACTION_NAME
列およびFW_RETURN_CODE
列を問い合せます。SQLファイアウォール用のその他のデータ・ディクショナリ・ビューは、DBA_SQL_FIREWALL_
*という名前で始まります。
関連トピック
親トピック: SQLファイアウォールの監査
31.6.1.2 例: SQLファイアウォール違反の監査
AUDIT CONTEXT NAMESPACE
文で、Oracle Label Securityのセッション・ラベル属性を監査できます。
例31-25に、すべてのSQLファイアウォール違反を追跡するための統合監査ポリシーを作成して有効にする方法を示します。ポリシーを微調整するには、SQL_FIREWALL
コンポーネントをSQL VIOLATION
またはCONTEXT VIOLATION
に設定します。
例31-25 SQLファイアウォール違反の監査
CREATE AUDIT POLICY sql_firewall_pol
ACTIONS COMPONENT = SQL_FIREWALL ALL
ON psmith;
AUDIT POLICY sql_firewall_pol;
親トピック: SQLファイアウォールの監査
31.6.1.3 監査証跡でのSQLファイアウォール・イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューには、SQLファイアウォールの監査イベントが表示されます。
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのFW_ACTION_NAME
列およびFW_RETURN_CODE
列は、SQLファイアウォール違反を追跡します。問合せを微調整するには、違反を追跡するためのV$UNIFIED_AUDIT_RECORD_FORMAT
動的ビューのCOMPONENT
列にSQLファイアウォール設定に対するネストされた問合せを含めます。例:
SELECT DBUSERNAME, ACTION_NAME, CURRENT_USER, SQL_TEXT, UNIFIED_AUDIT_POLICIES, FW_ACTION_NAME, FW_RETURN_CODE
FROM UNIFIED_AUDIT_TRAIL
WHERE AUDIT_TYPE
IN (SELECT UNIQUE COMPONENT FROM V$UNIFIED_AUDIT_RECORD_FORMAT
WHERE COMPONENT = 'SQL Firewall');
親トピック: SQLファイアウォールの監査
31.6.2 Oracle Database Vaultイベントの監査
Oracle Database Vault環境で、CREATE AUDIT POLICY
文を使用してDatabase Vaultアクティビティを監査できます。
- Oracle Database Vaultイベントの監査について
すべての統合監査と同様、Oracle Database Vaultのイベントを監査するには、AUDIT_ADMIN
ロールが必要です。 - Oracle Database Vaultの監査者
Oracle Database Vaultの監査対象ユーザーには、Database Vault管理者、およびアクティビティがDatabase Vaultの規定ポリシーに影響するユーザーが含まれます。 - Oracle Database Vaultの統合監査証跡イベントについて
Oracle Database Vault環境の監査証跡は、すべての構成変更やDatabase Vaultポリシーの変更の試行を取得します。 - Oracle Database Vaultのレルムの監査イベント
統合監査証跡によってOracle Database Vaultのレルムのイベントが取得されます。 - Oracle Database Vaultのルール・セットおよびルールの監査イベント
統合監査証跡では、Oracle Database Vaultのルール・セットおよびルールの監査イベントを取得できます。 - Oracle Database Vaultのコマンド・ルールの監査イベント
統合監査証跡では、Oracle Database Vaultのコマンド・ルールの監査イベントを取得できます。 - Oracle Database Vaultのファクタの監査イベント
統合監査証跡では、Oracle Database Vaultのファクタ・イベントを取得できます。 - Oracle Database Vaultのセキュア・アプリケーション・ロールの監査イベント
統合監査証跡では、Oracle Database Vaultのセキュア・アプリケーション・ロールの監査イベントを取得できます。 - Oracle Database Vault Oracle Label Securityの監査イベント
統合監査証跡では、Oracle Database Vault Oracle Label Securityの監査イベントを取得できます。 - Oracle Database Vault Oracle Data Pumpの監査イベント
統合監査証跡では、Oracle Database Vault Oracle Data Pumpの監査イベントを取得できます。 - Oracle Database Vaultの有効および無効な監査イベント
統合監査証跡では、Oracle Database Vaultの有効および無効な監査イベントを取得できます。 - Oracle Database Vaultの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
およびACTIONS COMPONENT
句で、Oracle Database Vaultイベントの統合監査ポリシーを作成できます。 - 例: Oracle Database Vaultのレルムの監査
CREATE AUDIT POLICY
文で、Oracle Database Vaultのレルムを監査できます。 - 例: Oracle Database Vaultのルール・セットの監査
CREATE AUDIT POLICY
文で、Oracle Database Vaultのルール・セットを監査できます。 - 例: 2つのOracle Database Vaultイベントの監査
CREATE AUDIT POLICY
文で、複数のOracle Database Vaultイベントを監査できます。 - 例: Oracle Database Vaultのファクタの監査
CREATE AUDIT POLICY
文で、Oracle Database Vaultのファクタを監査できます。 - 監査証跡でのOracle Database Vaultの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Database Vaultの監査イベントを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.2.1 Oracle Database Vaultイベントの監査について
すべての統合監査と同様、Oracle Database Vaultのイベントを監査するには、AUDIT_ADMIN
ロールが必要です。
Oracle Database Vaultの統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文のCOMPONENT
句をDV
に設定し、Rule Set Failure
などのアクションおよびルール・セットの名前などのオブジェクトを指定します。
監査証跡にアクセスする場合は、次のビューを問い合せることができます。
-
UNIFIED_AUDIT_TRAIL
-
AUDSYS.DV$CONFIGURATION_AUDIT
-
AUDSYS.DV$ENFORCEMENT_AUDIT
UNIFIED_AUDIT_TRAIL
ビューでは、Oracle Database Vault固有の列はDV_
で始まります。UNIFIED_AUDIT_TRAIL
ビューを問い合せるには、AUDIT_VIEWER
ロールが必要です。
これらのビューに加えて、Database Vaultレポートでは、Database Vault固有の統合監査ポリシーの結果も取得します。
31.6.2.2 Oracle Database Vaultの監査者
Oracle Database Vaultの監査対象ユーザーには、Database Vault管理者、およびアクティビティがDatabase Vaultの規定ポリシーに影響するユーザーが含まれます。
これらのユーザーは次のとおりです。
-
Database Vault管理者。Oracle Database Vaultに対して行われるすべての構成変更は、強制的に監査されます。監査は、レルム、ファクタ、コマンド・ルール、ルール・セット、ルールの作成、変更、削除などのアクティビティを取得します。
AUDSYS.DV$CONFIGURATION_AUDIT
データ・ディクショナリ・ビューでは、Database Vault管理者によって実行された構成変更が取得されます。 -
アクティビティがOracle Database Vaultの規定ポリシーに影響するユーザー。
AUDSYS.DV$ENFORCEMENT_AUDIT
データ・ディクショナリ・ビューでは、規定関連の監査を取得します。
親トピック: Oracle Database Vaultイベントの監査
31.6.2.3 Oracle Database Vaultの統合監査証跡イベントについて
Oracle Database Vault環境の監査証跡は、すべての構成変更やDatabase Vaultポリシーの変更の試行を取得します。
これは、既存のDatabase Vaultのポリシーに対するユーザーの違反も取得します。
次の種類のOracle Database Vaultイベントを監査できます。
-
Oracle Database Vaultのポリシーに対するすべての構成変更または変更の試行。Database Vault管理者による変更および権限のないユーザーによる試行の両方が取得されます。
-
既存のDatabase Vaultのポリシーに対するユーザーの違反。たとえば、ユーザーが作業時間以外に特定のスキーマ表にアクセスできないようにするポリシーを作成すると、監査証跡によって、このアクティビティが取得されます。
親トピック: Oracle Database Vaultイベントの監査
31.6.2.4 Oracle Database Vaultのレルムの監査イベント
統合監査証跡によってOracle Database Vaultのレルムのイベントが取得されます。
表31-5では、これらのイベントについて説明します。
表31-5 Oracle Database Vaultのレルムの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.5 Oracle Database Vaultのルール・セットおよびルールの監査イベント
統合監査証跡では、Oracle Database Vaultのルール・セットおよびルールの監査イベントを取得できます。
表31-6では、これらのイベントについて説明します。
表31-6 Oracle Database Vaultのルール・セットおよびルールの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.6 Oracle Database Vaultのコマンド・ルールの監査イベント
統合監査証跡では、Oracle Database Vaultのコマンド・ルールの監査イベントを取得できます。
表31-7では、これらのイベントについて説明します。
表31-7 Oracle Database Vaultのコマンド・ルールの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.7 Oracle Database Vaultのファクタの監査イベント
統合監査証跡では、Oracle Database Vaultのファクタ・イベントを取得できます。
表31-8では、これらのイベントについて説明します。
表31-8 Oracle Database Vaultのファクタの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.8 Oracle Database Vaultのセキュア・アプリケーション・ロールの監査イベント
統合監査証跡では、Oracle Database Vaultのセキュア・アプリケーション・ロールの監査イベントを取得できます。
表31-9では、これらのイベントについて説明します。
表31-9 Oracle Database Vaultのセキュア・アプリケーション・ロールの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.9 Oracle Database Vault Oracle Label Securityの監査イベント
統合監査証跡では、Oracle Database Vault Oracle Label Securityの監査イベントを取得できます。
表31-10では、これらのイベントについて説明します。
表31-10 Oracle Database Vault Oracle Label Securityの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.10 Oracle Database Vault Oracle Data Pumpの監査イベント
統合監査証跡では、Oracle Database Vault Oracle Data Pumpの監査イベントを取得できます。
表31-11では、これらのイベントについて説明します。
表31-11 Oracle Database Vault Oracle Data Pumpの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.11 Oracle Database Vaultの有効および無効な監査イベント
統合監査証跡では、Oracle Database Vaultの有効および無効な監査イベントを取得できます。
表31-12では、これらのイベントについて説明します。
表31-12 Oracle Database Vaultの有効および無効な監査イベント
イベント | 説明 |
---|---|
|
|
|
|
親トピック: Oracle Database Vaultイベントの監査
31.6.2.12 Oracle Database Vaultの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
およびACTIONS COMPONENT
句で、Oracle Database Vaultイベントの統合監査ポリシーを作成できます。
-
次の構文を使用して、Oracle Database Vaultの統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS action1 [,action2 ] ACTIONS COMPONENT= DV DV_action ON DV_object [,DV_action2 ON DV_object2]
詳細は、次のとおりです。
-
DV_action
は次のいずれかになります。-
レルム関連のアクション:
Realm Violation
は、レルム違反を監査します(たとえば、認可されていないユーザーが、レルムで保護されたオブジェクトにアクセスしようとしたとき)。Realm Success
は、レルムで保護されたオブジェクトに、認可されたユーザーが正常にアクセスしたときに監査します。Realm Access
は、Realm ViolationとRealm Successの両方のケースを監査します。つまり、アクセスが成功したか失敗したかに関係なく、レルム・アクセスが試行されるたびに監査します。 -
ルール・セット関連のアクション:
Rule Set Failure
、Rule Set Success
、Rule Set Eval
-
ファクタ関連のアクション:
Factor Error
、Factor Null
、Factor Validate Error
、Factor Validate False
、Factor Trust Level Null
、Factor Trust Level Neg
、Factor All
-
-
DV_objects
は次のいずれかになります。-
Realm_Name
-
Rule_Set_Name
-
Factor_Name
-
オブジェクトが小文字または大/小文字が混在して作成された場合は、DV_objects
を二重引用符で囲みます。オブジェクトをすべて大文字で作成した場合は、引用符を省略できます。
たとえば、Database Vaultアカウント管理レルムのレルム違反を監査するには、次のようにします。
CREATE AUDIT POLICY audit_dv ACTIONS CREATE TABLE, SELECT ACTIONS COMPONENT=DV Realm Violation ON "Database Vault Account Management";
条件を含む場合など、より複雑なポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
親トピック: Oracle Database Vaultイベントの監査
31.6.2.13 例: Oracle Database Vaultのレルムの監査
CREATE AUDIT POLICY
文で、Oracle Database Vaultのレルムを監査できます。
例31-26に、HR
スキーマに対するレルム違反の監査方法を示します。
例31-26レルム違反の監査
CREATE AUDIT POLICY dv_realm_hr ACTIONS SELECT, UPDATE, DELETE ACTIONS COMPONENT=DV Realm Violation ON "HR Schema Realm"; AUDIT POLICY dv_realm_hr EXCEPT psmith;
親トピック: Oracle Database Vaultイベントの監査
31.6.2.14 例: Oracle Database Vaultのルール・セットの監査
CREATE AUDIT POLICY
文で、Oracle Database Vaultのルール・セットを監査できます。
例: Oracle Database Vaultのルール・セットの監査に、Can Maintain Accounts/Profileルール・セットの監査方法を示します。DV_ACCTMGR
ロールがあるため、ユーザー・アカウントおよびユーザー・プロファイルを管理する権限があるユーザーdbv_acctmgr
は、この監査ポリシーから除外されます。
例31-27ルール・セットの監査
CREATE AUDIT POLICY dv_rule_set_accts ACTIONS CREATE USER, ALTER USER, ALTER PROFILE ACTIONS COMPONENT=DV RULE SET FAILURE ON "Can Maintain Accounts/Profile"; AUDIT POLICY dv_rule_set_accts EXCEPT dbv_acctmgr;
親トピック: Oracle Database Vaultイベントの監査
31.6.2.15 例: 2つのOracle Database Vaultイベントの監査
CREATE AUDIT POLICY
文で、複数のOracle Database Vaultイベントを監査できます。
例31-28に、レルム違反およびルール・セット失敗の監査方法を示します。
例31-28 2つのOracle Database Vaultイベントの監査
CREATE AUDIT POLICY audit_dv ACTIONS CREATE TABLE, SELECT ACTIONS COMPONENT=DV REALM VIOLATION ON "Oracle Enterprise Manager", Rule Set Failure ON "Allow Sessions"; AUDIT POLICY audit_dv EXCEPT psmith;
親トピック: Oracle Database Vaultイベントの監査
31.6.2.16 例: Oracle Database Vaultのファクタの監査
CREATE AUDIT POLICY
文で、Oracle Database Vaultのファクタを監査できます。
例31-29に、1つのファクタで2つのタイプのエラーを監査する方法を示します。
例31-29 Oracle Database Vaultのファクタ設定の監査
CREATE AUDIT POLICY audit_dv_factor ACTIONS COMPONENT=DV FACTOR ERROR ON "Database_Domain", Factor Validate Error ON "Client_IP"; AUDIT POLICY audit_dv_factor;
親トピック: Oracle Database Vaultイベントの監査
31.6.2.17 監査証跡でのOracle Database Vaultの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Database Vaultの監査イベントを表示します。
UNIFIED_AUDIT_TRAIL
ビューのDV_
* 列は、Oracle Database Vault固有の監査データを示します。
例:
SELECT DV_RULE_SET_NAME FROM UNIFIED_AUDIT_TRAIL WHERE ACTION_NAME = 'UPDATE'; DV_RULE_SET_NAME ----------------------- Allow System Parameters
親トピック: Oracle Database Vaultイベントの監査
31.6.3 Oracle Database Real Application Securityイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Database Real Application Securityイベントを監査できます。
- Oracle Database Real Application Securityイベントの監査について
Oracle Database Real Application Securityイベントを監査するには、AUDIT_ADMIN
ロールが必要です。 - Oracle Database Real Application Securityの監査可能なイベント
Oracle Databaseには、CREATE USER
、UPDATE USER
など、Real Application Securityの監査可能なイベントが用意されています。 - Oracle Database Real Application Securityのユーザー、権限およびロールの監査イベント
統合監査証跡では、ユーザー、権限およびロールについてOracle Database Real Application Securityのイベントを取得できます。 - Oracle Database Real Application Securityのセキュリティ・クラスおよびACLの監査イベント
統合監査証跡では、Oracle Database Real Application Securityのセキュリティ・クラスおよびACLの監査イベントを取得できます。 - Oracle Database Real Application Securityのセッションの監査イベント
統合監査証跡では、Oracle Database Real Application Securityのセッションの監査イベントを取得できます。 - Oracle Database Real Application SecurityのALLイベント
統合監査証跡では、Oracle Database Real Application SecurityのALL
イベントを取得できます。 - Oracle Database Real Application Securityの統合監査ポリシーの構成
CREATE AUDIT POLICY
文で、Oracle Real Application Securityの統合監査ポリシーを作成できます。 - 例: Real Application Securityのユーザー・アカウントの変更の監査
CREATE AUDIT POLICY
文で、Real Application Securityのユーザー・アカウントの変更を監査できます。 - 例: Real Application Securityの統合監査ポリシーでの条件の使用
CREATE AUDIT POLICY
文で、Real Application Securityの統合監査ポリシーの条件を設定できます。 - 監査証跡でのOracle Database Real Application Securityイベントの表示方法
DBA_XS_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Real Application Securityの監査イベントを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.3.1 Oracle Database Real Application Securityイベントの監査について
Oracle Database Real Application Securityイベントを監査するには、AUDIT_ADMIN
ロールが必要です。
監査証跡にアクセスするには、Real Application Security固有の列がXS_
で始まるUNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。Oracle Real Application Securityポリシーが有効なときに作成される、内部的に生成されたVPD述語に関する監査情報を確認する場合は、RLS_INFO
列を問い合せることができます。
Real Application Security固有のビューは次のとおりです。
-
DBA_XS_AUDIT_TRAIL
では、監査されたReal Application Securityイベントの詳細情報が提供されます。 -
DBA_XS_AUDIT_POLICY_OPTIONS
では、Real Application Securityの統合監査ポリシーに定義された監査オプションを記述します。 -
DBA_XS_ENB_AUDIT_POLICIES
では、Real Application Securityの統合監査ポリシーが有効なユーザーのリストを表示します。
31.6.3.2 Oracle Database Real Application Securityの監査可能なイベント
Oracle Databaseには、CREATE USER
、UPDATE USER
など、Real Application Securityの監査可能なイベントが用意されています。
監査可能なReal Application Securityイベントのリストを検索するには、次のように、AUDITABLE_SYSTEM_ACTIONS
データ・ディクショナリ・ビューのCOMPONENT
およびNAME
列を問い合せます。
SELECT NAME FROM AUDITABLE_SYSTEM_ACTIONS WHERE COMPONENT = 'XS'; NAME ------------- CREATE USER UPDATE USER DELETE USER ...
31.6.3.3 Oracle Database Real Application Securityのユーザー、権限およびロールの監査イベント
統合監査証跡では、ユーザー、権限およびロールについてOracle Database Real Application Securityのイベントを取得できます。
表31-13では、これらのイベントについて説明します。
表31-13 Oracle Database Real Application Securityのユーザー、権限およびロールの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
次のプロシージャを使用してOracle Database Real Application Securityのユーザー・アカウントを更新します。
|
|
|
|
|
|
|
|
|
|
次のプロシージャを使用してOracle Database Real Application Securityのロールを更新します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31.6.3.4 Oracle Database Real Application Securityのセキュリティ・クラスおよびACLの監査イベント
統合監査証跡では、Oracle Database Real Application Securityのセキュリティ・クラスおよびACLの監査イベントを取得できます。
表31-14では、これらのイベントについて説明します。
表31-14 Oracle Database Real Application Securityのセキュリティ・クラスおよびACLの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
次のプロシージャを使用してセキュリティ・クラスを作成します。
|
|
|
|
|
|
次のプロシージャを使用してACLを更新します。
|
|
|
|
|
|
次のプロシージャを使用してデータ・セキュリティ・ポリシーを更新します。
|
|
|
|
|
|
|
31.6.3.5 Oracle Database Real Application Securityのセッションの監査イベント
統合監査証跡では、Oracle Database Real Application Securityのセッションの監査イベントを取得できます。
表31-13では、これらのイベントについて説明します。
表31-15 Oracle Database Real Application Securityのセッションの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
次のプロシージャを使用してネームスペース属性を更新します。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31.6.3.6 Oracle Database Real Application SecurityのALLイベント
統合監査証跡では、Oracle Database Real Application SecurityのALL
イベントを取得できます。
表31-16では、これらのイベントについて説明します。
表31-16 Oracle Database Real Application SecurityのALLイベント
監査イベント | 説明 |
---|---|
|
Real Application Securityのすべてのアクションを取得します。 |
31.6.3.7 Oracle Database Real Application Securityの統合監査ポリシーの構成
CREATE AUDIT POLICY
文で、Oracle Real Application Securityの統合監査ポリシーを作成できます。
-
次の構文を使用して、Oracle Database Real Application Securityの統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS COMPONENT=XS component_action1 [, action2];
例:
CREATE AUDIT POLICY audit_ras_pol ACTIONS COMPONENT=XS SWITCH USER, DISABLE ROLE;
条件を含む場合など、より複雑なポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
31.6.3.8 例: Real Application Securityのユーザー・アカウントの変更の監査
CREATE AUDIT POLICY
文で、Real Application Securityのユーザー・アカウントの変更を監査できます。
例31-30に、ユーザーbhurst'
がユーザーの切替えおよびロールの無効化を試行する監査方法を示します。
例31-30 Real Application Securityのユーザー・アカウントの変更の監査
CREATE AUDIT POLICY ras_users_pol ACTIONS COMPONENT=XS SWITCH USER, DISABLE ROLE; AUDIT POLICY ras_users_pol BY bhurst;
31.6.3.9 例: Real Application Securityの統合監査ポリシーでの条件の使用
CREATE AUDIT POLICY
文で、Real Application Securityの統合監査ポリシーの条件を設定できます。
例31-31に、nemosity
コンピュータ・ホストからのアクションのみに監査を適用するReal Application Securityの統合監査ポリシーを作成する方法を示します。
例31-31 Real Application Securityの統合監査ポリシーでの条件の使用
CREATE AUDIT POLICY ras_acl_pol ACTIONS DELETE ON OE.CUSTOMERS ACTIONS COMPONENT=XS CREATE ACL, UPDATE ACL, DELETE ACL WHEN 'SYS_CONTEXT(''USERENV'', ''HOST'') = ''nemosity''' EVALUATE PER INSTANCE; AUDIT POLICY ras_acl_pol BY pfitch;
31.6.3.10 監査証跡でのOracle Database Real Application Securityイベントの表示方法
DBA_XS_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Real Application Securityの監査イベントを表示します。
次の例では、Real Application Security固有のビューのDBA_XS_AUDIT_TRAIL
を問い合せます。
SELECT XS_USER_NAME FROM DBA_XS_AUDIT_TRAIL WHERE XS_ENABLED_ROLE = 'CLERK'; XS_USER_NAME ------------- USER2
31.6.4 Oracle Recovery Managerイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Recovery Managerイベントを監査できます。
- Oracle Recovery Managerイベントの監査について
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューでは、Oracle Recovery Managerの監査イベントをRMAN_
columnに自動的に格納します。 - Oracle Recovery Managerの統合監査証跡イベント
統合監査証跡では、Oracle Recovery Managerのイベントを取得できます。 - 監査証跡でのOracle Recovery Managerの監査イベントの表示方法
UNIFIED_AUDIT_TRAILデータ・ディクショナリ・ビューはOracle Recovery Managerの監査イベントを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.4.1 Oracle Recovery Managerイベントの監査について
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューでは、Oracle Recovery Managerの監査イベントをRMAN_
columnに自動的に格納します。
他のOracle Databaseコンポーネントと異なり、Oracle Recovery Managerのイベントには統合監査ポリシーを作成しません。
ただし、UNIFIED_AUDIT_TRAIL
ビューを問い合せて、これらのイベントを確認するには、AUDIT_ADMIN
またはAUDIT_VIEWER
ロールが必要です。SYSBACKUP
またはSYSDBA
管理権限がない場合は、V$RMAN_STATUS
やV$RMAN_BACKUP_JOB_DETAILS
などのビューを問い合せて、Recovery Managerジョブに関する追加情報を検索できます。
31.6.4.2 Oracle Recovery Managerの統合監査証跡イベント
統合監査証跡では、Oracle Recovery Managerのイベントを取得します。
表31-17では、これらのイベントについて説明します。
表31-17 UNIFIED_AUDIT_TRAILビューのOracle Recovery Manager列
Recovery Managerの列 | 説明 |
---|---|
|
Recovery Managerのセッション識別子。この列と |
|
セッションのタイムスタンプ。この列と |
|
ジョブによって実行されるRecovery Manager操作。Recovery Managerのセッション内の操作ごとに行が1つ追加されます。たとえば、バックアップ・ジョブには、 |
|
Recovery Managerのセッションに含まれるオブジェクトのタイプ。これには、次のいずれかの値が含まれます。Recovery Managerのセッションがこれらの複数を満たさない場合は、プリファレンスが次の順序(リストの上から下)で指定されます。
|
|
Recovery Managerのセッションに関連付けられているデバイス。この列は、 |
31.6.4.3 監査証跡でのOracle Recovery Managerの監査イベントの表示方法
UNIFIED_AUDIT_TRAILデータ・ディクショナリ・ビューはOracle Recovery Managerの監査イベントを表示します。
表31-17に、Oracle Recovery Manager固有の監査データを検索するために問合せ可能な、
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューの列を示します。
例:
SELECT RMAN_OPERATION FROM UNIFIED_AUDIT_TRAIL WHERE RMAN_OBJECT_TYPE = 'DB FULL'; RMAN_OPERATION --------------- BACKUP
31.6.5 Oracle Label Securityイベントの監査
Oracle Label Security環境で、CREATE AUDIT POLICY
文を使用してOracle Label Securityアクティビティを監査できます。
- Oracle Label Securityイベントの監査について
すべての統合監査と同様、Oracle Label Security (OLS)のイベントを監査するには、AUDIT_ADMIN
ロールが必要です。 - Oracle Label Securityの統合監査証跡イベント
統合監査証跡では、Oracle Label Securityの監査イベントを取得できます。 - Oracle Label Securityの監査可能なユーザー・セッション・ラベル
ORA_OLS_SESSION_LABELS
アプリケーション・コンテキストで、各Oracle Databaseイベントのユーザー・セッション・ラベルの使用状況を取得できます。 - Oracle Label Securityの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
およびACTIONS COMPONENT
句を使用して、Oracle Label Securityイベントの監査ポリシーを作成できます。 - 例: Oracle Label Securityのセッション・ラベル属性の監査
AUDIT CONTEXT NAMESPACE
文で、Oracle Label Securityのセッション・ラベル属性を監査できます。 - 例: Oracle Label Securityポリシーからのユーザーの除外
CREATE AUDIT POLICY
文で、ポリシーからユーザーを除外できます。 - 例: Oracle Label Securityのポリシー・アクションの監査
CREATE AUDIT POLICY
文で、Oracle Label Securityのポリシー・アクションを監査できます。 - 例: 監査済のOLSセッション・ラベルの問合せ
UNIFIED_AUDIT_TRAIL問合せでLBACSYS.ORA_GET_AUDITED_LABEL
ファンクションを使用して、監査済Oracle Label Securityセッション・ラベルを確認できます。 - 監査証跡でのOracle Label Securityの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Label Securityの監査イベントを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.5.1 Oracle Label Securityイベントの監査について
すべての統合監査と同様、Oracle Label Security (OLS)のイベントを監査するには、AUDIT_ADMIN
ロールが必要です。
Oracle Label Securityの統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文のCOMPONENT
句をOLS
に設定する必要があります。
ユーザー・セッション情報を監査するには、AUDIT
文を使用して、アプリケーション・コンテキスト値を監査します。
監査証跡にアクセスするには、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。このビューには、名前がOLS_
で始まるOracle Label Security固有の列が含まれます。Oracle Label Securityポリシーを表に適用するときに作成される、内部的に生成されたVPD述語に関する監査情報を特定する場合は、RLS_INFO
列を問い合せることができます。
31.6.5.2 Oracle Label Securityの統合監査証跡イベント
統合監査証跡では、Oracle Label Securityの監査イベントを取得できます。
監査可能なOracle Label Securityのイベントのリストを検索するには、次のように、AUDITABLE_SYSTEM_ACTIONS
データ・ディクショナリ・ビューのCOMPONENT
列およびNAME
列を問い合せます。
例:
SELECT NAME FROM AUDITABLE_SYSTEM_ACTIONS WHERE COMPONENT = 'Label Security'; NAME ------------- CREATE POLICY ALTER POLICY DROP POLICY ...
表31-18に、Oracle Label Securityの監査イベントを示します。
表31-18 Oracle Label Securityの監査イベント
監査イベント | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Oracle Label Securityの権限を含むOracle Label Securityのすべての認可を含み、ユーザーまたは信頼できるストアド・プロシージャのいずれかにラベルを使用します。 |
|
Oracle Label Securityの権限のユーザーを必要とするアクションを含みます。これらのアクションは、ログオン、 |
|
次のプロシージャを使用して、Oracle Label Securityのポリシーを有効にします。
|
|
次のプロシージャを使用して、Oracle Label Securityのポリシーを無効にします。
|
|
|
|
|
|
|
|
|
|
|
|
次のプロシージャを使用して、Oracle Label Securityのコンポーネントを作成します。
|
|
次のプロシージャを使用して、Oracle Label Securityのコンポーネントを変更します。
|
|
次のプロシージャを使用して、Oracle Label Securityのコンポーネントを削除します。
|
|
Oracle Label Securityのすべてのアクションの監査を有効にします。 |
親トピック: Oracle Label Securityイベントの監査
31.6.5.3 Oracle Label Securityの監査可能なユーザー・セッション・ラベル
ORA_OLS_SESSION_LABELS
アプリケーション・コンテキストで、各Oracle Databaseイベントのユーザー・セッション・ラベルの使用状況を取得できます。
このアプリケーション・コンテキストで使用される属性は、Oracle Label Securityのポリシーを示します。
構文は、アプリケーション・コンテキストの監査に使用される構文と同じです。例:
AUDIT CONTEXT NAMESPACE ORA_SESSION_LABELS ATTRIBUTES policy1, policy2;
セッション・ラベルの記録はユーザー・セッション固有ではないため、BY
user_list
句は、Oracle Label Securityのアプリケーション・コンテキストには不要です。
ユーザー・セッション・ラベル情報の監査を無効にするには、NOAUDIT
文を使用します。たとえば、ポリシーpolicy1
およびpolicy2
の監査を停止するには、次の文を入力します。
NOAUDIT CONTEXT NAMESPACE ORA_SESSION_LABELS ATTRIBUTES policy1, policy2;
関連トピック
親トピック: Oracle Label Securityイベントの監査
31.6.5.4 Oracle Label Securityの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
およびACTIONS COMPONENT
句を使用して、Oracle Label Securityイベントの監査ポリシーを作成できます。
-
次の構文を使用して、Oracle Label Securityの統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS action1 [,action2 ] ACTIONS COMPONENT=OLS component_action1 [, action2];
例:
CREATE AUDIT POLICY audit_ols ACTIONS SELECT ON OE.ORDERS ACTIONS COMPONENT=OLS ALL;
条件を含む場合など、より複雑なポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
親トピック: Oracle Label Securityイベントの監査
31.6.5.5 例: Oracle Label Securityのセッション・ラベル属性の監査
AUDIT CONTEXT NAMESPACE
文で、Oracle Label Securityのセッション・ラベル属性を監査できます。
例31-32に、Oracle Label Securityのポリシーusr_pol1
およびusr_pol2
のORA_OLS_SESSION_LABELS
アプリケーション・コンテキスト属性を監査する方法を示します。
例31-32 Oracle Label Securityセッション・ラベル属性の監査
AUDIT CONTEXT NAMESPACE ORA_SESSION_LABELS ATTRIBUTES usr_pol1, usr_pol2;
親トピック: Oracle Label Securityイベントの監査
31.6.5.6 例: Oracle Label Securityポリシーからのユーザーの除外
CREATE AUDIT POLICY
文で、ポリシーからユーザーを除外できます。
例31-33に、アクションをユーザーols_mgr
から除外する統合監査ポリシーを作成する方法を示します。
例31-33 Oracle Label Securityポリシーからのユーザーの除外
CREATE AUDIT POLICY auth_ols_audit_pol ACTIONS SELECT ON HR.EMPLOYEES ACTIONS COMPONENT=OLS DROP POLICY, DISABLE POLICY; AUDIT POLICY auth_ols_audit_pol EXCEPT ols_mgr;
親トピック: Oracle Label Securityイベントの監査
31.6.5.7 例: Oracle Label Securityのポリシー・アクションの監査
CREATE AUDIT POLICY
文で、Oracle Label Securityのポリシー・アクションを監査できます。
例31-34に、DROP POLICY
、DISABLE POLICY
、UNSUBSCRIBE OID
イベント、およびHR.EMPLOYEES
表のUPDATE
およびDELETE
文を監査する方法を示します。次に、ポリシーがHR
およびLBACSYS
ユーザーに適用され、監査アクションが成功すると、監査レコードが統合監査証跡に書き込まれます。
例31-34 Oracle Label Securityのポリシー・アクションの監査
CREATE AUDIT POLICY generic_audit_pol ACTIONS UPDATE ON HR.EMPLOYEES, DELETE ON HR.EMPLOYEES ACTIONS COMPONENT=OLS DROP POLICY, DISABLE POLICY, UNSUBSCRIBE OID; AUDIT POLICY generic_audit_pol BY HR, LBACSYS WHENEVER SUCCESSFUL;
親トピック: Oracle Label Securityイベントの監査
31.6.5.8 例: 監査済のOLSセッション・ラベルの問合せ
UNIFIED_AUDIT_TRAIL問合せでLBACSYS.ORA_GET_AUDITED_LABEL
関数を使用して、監査済Oracle Label Securityセッション・ラベルを確認できます。
例31-35に、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューの問合せでLBACSYS.ORA_GET_AUDITED_LABEL
ファンクションを使用する方法を示します。
例31-35監査対象のOracle Label Securityセッション・ラベルの問合せ
SELECT ENTRY_ID, SESSIONID, LBACSYS.ORA_GET_AUDITED_LABEL( APPLICATION_CONTEXTS,'GENERIC_AUDIT_POL1') AS SESSION_LABEL1, LBACSYS.ORA_GET_AUDITED_LABEL( APPLICATION_CONTEXTS,'GENERIC_AUDIT_POL2') AS SESSION_LABEL2 FROM UNIFIED_AUDIT_TRAIL; / ENTRY_ID SESSIONID SESSION_LABEL1 SESSION_LABEL2 -------- --------- -------------- -------------- 1 1023 SECRET LEVEL_ALPHA 2 1024 TOP_SECRET LEVEL_BETA
親トピック: Oracle Label Securityイベントの監査
31.6.5.9 監査証跡でのOracle Label Securityの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Label Securityの監査イベントを表示します。
UNIFIED_AUDIT_TRAIL
ビューのOLS_
*列は、Oracle Label Security固有の監査データを示します。例:
SELECT OLS_PRIVILEGES_USED FROM UNIFIED_AUDIT_TRAIL WHERE DBUSERNAME = 'psmith'; OLS_PRIVILEGES_USED ------------------- READ WRITEUP WRITEACROSS
監査証跡で取得されるセッション・ラベルは、UNIFIED_AUDIT_TRAIL
ビューのAPPLICATION_CONTEXTS
列に格納されます。LBACSYS.ORA_GET_AUDITED_LABEL
ファンクションを使用して、APPLICATION_CONTEXTS
列に格納されているセッション・ラベルを取得できます。このファンクションは、UNIFIED_AUDIT_TRAIL.APPLICATION_CONTEXTS
列値、およびOracle Label Securityポリシー名を引数として受け入れ、指定したポリシーの列に格納されているセッション・ラベルを返します。
関連トピック
親トピック: Oracle Label Securityイベントの監査
31.6.6 Oracle Data Pumpイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Data Pumpを監査できます。
- Oracle Data Pumpイベントの監査について
Oracle Data Pumpの統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文のCOMPONENT
句をDATAPUMP
に設定する必要があります。 - Oracle Data Pumpの統合監査証跡イベント
統合監査証跡では、Oracle Data Pumpのイベントを取得できます。 - Oracle Data Pumpの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS COMPONENT
句を使用して、Oracle Data Pumpイベントの統合監査ポリシーを作成できます。 - 例: Oracle Data Pumpのインポート操作の監査
CREATE AUDIT POLICY
文で、Oracle Data Pumpのインポート操作を監査できます。 - 例: Oracle Data Pumpのすべての操作の監査
CREATE AUDIT POLICY
文で、Oracle Data Pumpのすべての操作を監査できます。 - 監査証跡でのOracle Data Pumpの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Data Pumpの監査イベントを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.6.1 Oracle Data Pumpイベントの監査について
Oracle Data Pumpの統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文のCOMPONENT
句をDATAPUMP
に設定する必要があります。
Data Pumpのエクスポート(expdp
)およびインポート(impdp
)操作を監査できます。
すべての統合監査と同様、Oracle Data Pumpのイベントを監査するには、AUDIT_ADMIN
ロールが必要です。
監査証跡にアクセスするには、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。このビューのData Pump固有の列はDP_
で始まります。
関連トピック
親トピック: Oracle Data Pumpイベントの監査
31.6.6.2 Oracle Data Pumpの統合監査証跡イベント
統合監査証跡によってOracle Data Pumpのイベントを取得できます。
統合監査証跡では、エクスポート(expdp
)およびインポート(impdp
)の両方の操作に関する情報を取得します。
親トピック: Oracle Data Pumpイベントの監査
31.6.6.3 Oracle Data Pumpの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS COMPONENT
句を使用して、Oracle Data Pumpイベントの統合監査ポリシーを作成できます。
-
次の構文を使用して、Oracle Data Pumpの統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS COMPONENT=DATAPUMP { EXPORT | IMPORT | ALL };
例:
CREATE AUDIT POLICY audit_dp_export_pol ACTIONS COMPONENT=DATAPUMP EXPORT;
条件を含む場合など、より複雑なポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
親トピック: Oracle Data Pumpイベントの監査
31.6.6.4 例: Oracle Data Pumpのインポート操作の監査
CREATE AUDIT POLICY
文で、Oracle Data Pumpのインポート操作を監査できます。
例31-36に、Oracle Data Pumpのすべてのインポート操作を監査する方法を示します。
例31-36 Oracle Data Pumpのインポート操作の監査
CREATE AUDIT POLICY audit_dp_import_pol ACTIONS COMPONENT=DATAPUMP IMPORT; AUDIT POLICY audit_dp_import_pol;
親トピック: Oracle Data Pumpイベントの監査
31.6.6.5 例: Oracle Data Pumpのすべての操作の監査
CREATE AUDIT POLICY
文で、Oracle Data Pumpのすべての操作を監査できます。
例31-37に、Oracle Database Pumpのエクスポートおよびインポートの両方の操作を監査する方法を示します。
例31-37 Oracle Data Pumpのすべての操作の監査
CREATE AUDIT POLICY audit_dp_all_pol ACTIONS COMPONENT=DATAPUMP ALL; AUDIT POLICY audit_dp_all_pol BY SYSTEM;
親トピック: Oracle Data Pumpイベントの監査
31.6.6.6 監査証跡でのOracle Data Pumpの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle Data Pumpの監査イベントを表示します。
UNIFIED_AUDIT_TRAIL
ビューのDP_*
列は、Oracle Data Pump固有の監査データを示します。例:
SELECT DP_TEXT_PARAMETERS1, DP_BOOLEAN_PARAMETERS1, DP_WARNINGS1 FROM UNIFIED_AUDIT_TRAIL WHERE AUDIT_TYPE = 'DATAPUMP'; DP_TEXT_PARAMETERS1 DP_BOOLEAN_PARAMETERS1 DP_WARNINGS1 ---------------------------------------------- ----------------------- –-------------------------------------------------------------------------- MASTER TABLE: "SCOTT"."SYS_EXPORT_TABLE_01", MASTER_ONLY: FALSE, WARNING(S) ISSUED: ORA-39173: Encrypted data has been stored unencrypted in JOB_TYPE: EXPORT, DATA_ONLY: FALSE, dump METADATA_JOB_MODE: TABLE_EXPORT, METADATA_ONLY: FALSE, JOB VERSION: 19.1.0.0, DUMPFILE_PRESENT: TRUE, ACCESS METHOD: DIRECT_PATH, JOB_RESTARTED: FALSE DATA OPTIONS: 0, DUMPER DIRECTORY: NULL REMOTE LINK: NULL, TABLE EXISTS: NULL, PARTITION OPTIONS: NONE
(この出力は、読みやすくするために変更が加えられています。)
親トピック: Oracle Data Pumpイベントの監査
31.6.7 Oracle SQL*Loaderダイレクト・ロード・パス・イベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle SQL*Loaderダイレクト・ロード・パス・イベントを監査できます。
- Oracle SQL*Loaderダイレクト・パス・ロード・イベントの監査について
Oracle SQL*Loaderダイレクト・パス・イベントを監査するには、AUDIT_ADMIN
ロールが必要です。 - Oracle SQL*Loaderダイレクト・ロード・パスの統合監査証跡イベント
統合監査証跡によってSQL*Loaderダイレクト・ロード・パスのイベントを取得できます。 - Oracle SQL*Loaderダイレクト・パス・イベントの統合監査証跡ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS COMPONENT
句を使用して、Oracle SQL*Loaderダイレクト・パス・イベントの統合監査ポリシーを作成できます。 - 例: Oracle SQL*Loaderダイレクト・パス・ロード操作の監査
CREATE AUDIT POLICY
文で、Oracle SQL*Loaderダイレクト・パス・ロード操作を監査できます。 - 監査証跡でのSQL*Loaderダイレクト・パス・ロードの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはSQL*Loaderダイレクト・パス・ロードの監査イベントを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.7.1 Oracle SQL*Loaderダイレクト・パス・ロード・イベントの監査について
Oracle SQL*Loaderダイレクト・パス・イベントを監査するには、AUDIT_ADMIN
ロールが必要です。
SQL*Loaderの統合監査ポリシーを作成するには、CREATE AUDIT POLICY
文のCOMPONENT
句をDIRECT_LOAD
に設定する必要があります。監査できるのは、従来のパス・ロードなどの他のSQL*Loaderロードではなく、ダイレクト・パス・ロードのみです。
監査証跡にアクセスするには、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューのDIRECT_PATH_NUM_COLUMNS_LOADED
列を問い合せます。
関連トピック
31.6.7.2 Oracle SQL*Loaderダイレクト・ロード・パスの統合監査証跡イベント
統合監査証跡によってSQL*Loaderダイレクト・ロード・パスのイベントを取得できます。
統合監査証跡では、SQL*Loaderで実行されるダイレクト・パス・ロードに関する情報を取得します(SQL*LoaderのコマンドラインまたはSQL*Loaderの制御ファイルでdirect=true
に設定した場合)。
また、ダイレクト・パスAPIを使用するOracle Call Interface (OCI)プログラムも監査します。
関連トピック
31.6.7.3 Oracle SQL*Loaderダイレクト・パス・イベントの統合監査証跡ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS COMPONENT
句を使用して、Oracle SQL*Loaderダイレクト・パス・イベントの統合監査ポリシーを作成できます。
-
次の構文を使用して、Oracle SQL*Loaderの統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS COMPONENT=DIRECT_LOAD { LOAD };
例:
CREATE AUDIT POLICY audit_sqlldr_pol ACTIONS COMPONENT=DIRECT_LOAD LOAD;
条件を含む場合など、より複雑なポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
31.6.7.4 例: Oracle SQL*Loaderダイレクト・パス・ロード操作の監査
CREATE AUDIT POLICY
文で、Oracle SQL*Loaderダイレクト・パス・ロード操作を監査できます。
例31-36に、SQL*Loaderダイレクト・パス・ロード操作を監査する方法を示します。
例31-38 Oracle SQL*Loaderダイレクト・パス・ロード操作の監査
CREATE AUDIT POLICY audit_sqlldr_load_pol ACTIONS COMPONENT=DIRECT_LOAD LOAD; AUDIT POLICY audit_sqlldr_load_pol;
31.6.7.5 監査証跡でのSQL*Loaderダイレクト・パス・ロードの監査イベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはSQL*Loaderダイレクト・パス・ロードの監査イベントを表示します。
UNIFIED_AUDIT_TRAIL
ビューのDIRECT_PATH_NUM_COLUMNS_LOADED
列は、SQL*Loaderダイレクト・パス・ロード・メソッドを使用してロードされた列の数を示します。例:
SELECT DBUSERNAME, ACTION_NAME, OBJECT_SCHEMA, OBJECT_NAME, DIRECT_PATH_NUM_COLUMNS_LOADED FROM UNIFIED_AUDIT_TRAIL WHERE AUDIT_TYPE = 'DIRECT PATH API'; DBUSERNAME ACTION_NAME OBJECT_SCHEMA OBJECT_NAME DIRECT_PATH_NUM_COLUMNS_LOADED ----------- ----------- ------------- ------------ ------------------------------ RLAYTON INSERT HR EMPLOYEES 4
31.6.8 Oracle XML DB HTTPおよびFTPプロトコルの監査
CREATE AUDIT POLICY
文を使用して、Oracle XML DB HTTPおよびFTPプロトコル・メッセージを監査できます。
- Oracle XML DB HTTPおよびFTPプロトコルの監査について
Oracle XDB HTTPおよびFTPプロトコル・メッセージを監査するには、AUDIT_ADMIN
ロールが必要です。 - Oracle XML DB HTTPおよびFTPプロトコルを取得するための統合監査ポリシーの構成
CREATE AUDIT POLICY
文で、Oracle XML DB HTTPおよびFTPプロトコルの統合監査ポリシーを作成できます。 - 例: 失敗したOracle XML DB HTTPメッセージの監査
CREATE AUDIT POLICY
文で、失敗したOracle XML DB HTTPメッセージを監査できます。 - 例: すべてのOracle XML DB FTPメッセージの監査
CREATE AUDIT POLICY
文で、すべてのOracle XML DB FTPメッセージを監査できます。 - 例: 401 AUTHエラーがあるOracle XML DB HTTPメッセージの監査
CREATE AUDIT POLICY
文で、401 AUTH
エラーがあるHTTPメッセージを監査できます。 - 統合監査証跡でのOracle XML DB HTTPおよびFTPプロトコル・メッセージの取得方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle XML DB HTTPおよびFTPプロトコル・メッセージを表示します。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.8.1 Oracle XML DB HTTPおよびFTPプロトコルの監査について
Oracle XDB HTTPおよびFTPプロトコル・メッセージを監査するには、AUDIT_ADMIN
ロールが必要です。
Oracle Databaseは、すべてのまたは失敗したHTTPメッセージ、401 AUTH
HTTPリターン・コード・メッセージおよびすべてのまたは失敗したFTPメッセージを監査できます。UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューでは、PROTOCOL_
*列の監査結果を取得します。
HTTPおよびFTPプロトコルの統合監査ポリシーは、パフォーマンスに影響を与える可能性があることに注意してください。
31.6.8.2 Oracle XML DB HTTPおよびFTPプロトコルを取得するための統合監査ポリシーの構成
CREATE AUDIT POLICY
文で、Oracle XML DB HTTPおよびFTPプロトコルの統合監査ポリシーを作成できます。
31.6.8.3 例: 失敗したOracle XML DB HTTPメッセージの監査
CREATE AUDIT POLICY
文で、失敗したOracle XML DB HTTPメッセージを監査できます。
例31-39に、失敗したHTTPメッセージを追跡する統合監査ポリシーの作成と有効化の例を示します。
例31-39失敗したOracle XML DB HTTPメッセージの監査
CREATE AUDIT POLICY failed_http_pol ACTIONS COMPONENT=PROTOCOL HTTP; AUDIT POLICY failed_http_pol WHENEVER NOT SUCCESSFUL;
31.6.8.4 例: すべてのOracle XML DB FTPメッセージの監査
CREATE AUDIT POLICY
文で、すべてのOracle XML DB FTPメッセージを監査できます。
例31-40に、すべてのFTPメッセージを追跡する統合監査ポリシーの作成と有効化の例を示します。
例31-40すべてのOracle XML DB FTPメッセージの監査
CREATE AUDIT POLICY all_ftp_pol ACTIONS COMPONENT=PROTOCOL FTP; AUDIT POLICY all_ftp_pol;
31.6.8.5 例: 401 AUTHエラーがあるOracle XML DB HTTPメッセージの監査
CREATE AUDIT POLICY
文で、401 AUTH
エラーがあるHTTPメッセージを監査できます。
例31-41に、401 AUTH
メッセージを追跡する統合監査ポリシーの作成と有効化の例を示します。このタイプのポリシーを有効にする場合、WHENEVER
句を使用せずに設定するか、WHENEVER SUCCESSFUL
句を使用して設定できます。WHENEVER NOT SUCCESSFUL
を使用すると、401 AUTH
エラーは監査されません。
例31-41 401 AUTHエラーがあるOracle XML DB HTTPメッセージの監査
CREATE AUDIT POLICY 401_error_pol ACTIONS COMPONENT=PROTOCOL AUTHENTICATION; AUDIT POLICY 401_error_pol;
31.6.8.6 統合監査証跡でのOracle XML DB HTTPおよびFTPプロトコル・メッセージの取得方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューはOracle XML DB HTTPおよびFTPプロトコル・メッセージを表示します。
PROTOCOL_
*列は、セッションID、リターン・コード、リクエストのタイプ、およびリクエストまたはリプライのテキストなど、HTTPおよびFTP固有の情報を取得します。
たとえば、次の問合せは、HTTP-GET
リクエスト/リプライに207
の戻りコードが含まれていることを示しています。つまり、リプライには個別のリターン・コードを持つ複数のコンポーネントが存在する可能性があります。
SELECT PROTOCOL_RETURN_CODE, PROTOCOL_ACTION_NAME FROM UNIFIED_AUDIT_POLICY WHERE USERHOST = "HR_SRV"; PROTOCOL_RETURN_CODE PROTOCOL_ACTION_NAME –------------------- –------------------- 207 HTTP-GET-CMD 207 HTTP-GET
31.6.9 Oracle Machine Learning for SQLイベントの監査
CREATE AUDIT POLICY
文を使用して、Oracle Machine Learning for SQLのイベントを監査できます。
- Oracle Machine Learning for SQLイベントの監査について
Oracle Machine Learning for SQLのイベントを監査するにはAUDIT_ADMIN
ロールが必要です。 - Oracle Machine Learning for SQLの統合監査証跡イベント
統合監査証跡では、Oracle Machine Learning for SQLの監査イベントを取得できます。 - Oracle Machine Learning for SQLの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
およびON MINING MODEL
句を使用して、Oracle Machine Learning for SQLイベントの統合監査ポリシーを作成できます。 - 例: ユーザーによる複数のOracle Machine Learning for SQL操作の監査
CREATE AUDIT POLICY
文で、複数のOracle Machine Learning for SQL操作を監査できます。 - 例: ユーザーによる失敗したすべてのOracle Machine Learning for SQL操作の監査
CREATE AUDIT POLICY
文で、ユーザーによる失敗したOracle Machine Learning for SQL操作を監査できます。 - 監査証跡でのOracle Machine Learning for SQLイベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューでは、Oracle Machine Learning for SQLの監査イベントが一覧表示されます。
親トピック: その他のOracle製品および機能のコンポーネントの監査
31.6.9.1 Oracle Machine Learning for SQLイベントの監査について
Oracle Machine Learning for SQLイベントを監査するにはAUDIT_ADMIN
ロールが必要です。
監査証跡にアクセスするには、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。
31.6.9.2 Oracle Machine Learning for SQLの統合監査証跡イベント
統合監査証跡では、Oracle Machine Learning for SQLの監査イベントを取得できます。
表31-19では、これらのイベントについて説明します。
表31-19 Oracle Machine Learning for SQLの監査イベント
監査イベント | 説明 |
---|---|
|
Oracle Machine Learning for SQLモデルの監査レコードを生成します |
|
Oracle Machine Learning for SQLモデルにコメントを追加します |
|
Oracle Machine Learning for SQLモデルにアクセスするための権限をユーザーに付与します |
|
Oracle Machine Learning for SQLモデルの名前を変更します |
|
Oracle Machine Learning for SQLモデルを適用するかその署名を表示します |
31.6.9.3 Oracle Machine Learning for SQLの統合監査ポリシーの構成
CREATE AUDIT POLICY
文のACTIONS
およびON MINING MODEL
句を使用して、Oracle Machine Learning for SQLイベントの統合監査ポリシーを作成できます。
-
次の構文を使用して、Oracle Machine Learning for SQLの統合監査ポリシーを作成します。
CREATE AUDIT POLICY policy_name ACTIONS {operation | ALL} ON MINING MODEL schema_name.model_name;
例:
CREATE AUDIT POLICY dm_ops ACTIONS RENAME ON MINING MODEL hr.dm_emp;
条件を含む場合など、より複雑なポリシーを作成できます。ポリシーを作成したら、AUDIT
文を使用して有効にする必要があります。
関連トピック
31.6.9.4 例: ユーザーによる複数のOracle Machine Learning for SQL操作の監査
CREATE AUDIT POLICY
文で、複数のOracle Machine Learning for SQL操作を監査できます。
例31-42では、ユーザーpsmith
による複数のOracle Machine Learning for SQL操作を監査する方法を示します。イベントごとにON MINING MODEL
schema_name.model_name
句を含み、それぞれカンマで区切ります。この例では、両方のアクションで同じschema_name.model name
を指定しますが、スキーマおよびデータ・モデルごとに異なるschema_name.model_name
設定を構文で指定できます。
例31-42ユーザーによる複数のOracle Machine Learning for SQL操作の監査
CREATE AUDIT POLICY dm_ops_pol ACTIONS SELECT ON MINING MODEL dmuser1.nb_model, ALTER ON MINING MODEL dmuser1.nb_model; AUDIT POLICY dm_ops_pol BY psmith;
31.6.9.5 例: ユーザーによる失敗したすべてのOracle Machine Learning for SQL操作の監査
CREATE AUDIT POLICY
文で、ユーザーによる失敗したOracle Machine Learning for SQL操作を監査できます。
例31-43では、ユーザーpsmith
による失敗したすべてのOracle Machine Learning for SQL操作を監査する方法を示します。
例31-43ユーザーによる失敗したすべてのOracle Machine Learning for SQL操作の監査
CREATE AUDIT POLICY dm_all_ops_pol ACTIONS ALL ON MINING MODEL dmuser1.nb_model; AUDIT POLICY dm_all_ops_pol BY psmith WHENEVER NOT SUCCESSFUL;
31.6.9.6 監査証跡でのOracle Machine Learning for SQLイベントの表示方法
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューでは、Oracle Machine Learning for SQLの監査イベントが一覧表示されます。
次の例では、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せて、Machine Learning for SQLの監査イベントを確認する方法を示します。
SELECT DBUSERNAME, ACTION_NAME, SYSTEM_PRIVILEGE_USED, RETURN_CODE, OBJECT_SCHEMA, OBJECT_NAME, SQL_TEXT FROM UNIFIED_AUDIT_TRAIL; DBUSERNAME ACTION_NAME SYSTEM_PRIVILEGE_USED RETURN_CODE ---------- -------------------- ------------------------- ----------- OBJECT_SCHEMA OBJECT_NAME -------------------- -------------------- SQL_TEXT -------------------------------------------------------------------------------- DMUSER1 CREATE MINING MODEL CREATE MINING MODEL 0 DMUSER1 BEGIN dbms_data_mining.create_model(model_name => 'nb_model', mining_function => dbms_data_mining.classification, data_table_name => 'dm_data', case_id_column_name => 'case_id', target_column_name => 'target'); END; DMUSER1 SELECT MINING MODEL 0 DMUSER1 NB_MODEL select prediction(nb_model using *) from dual DMUSER2 SELECT MINING MODEL 40284 DMUSER1 NB_MODEL select prediction(dmuser1.nb_model using *) from dual DMUSER1 ALTER MINING MODEL 0 DMUSER1 NB_MODEL BEGIN dbms_data_mining.rename_model('nb_model', 'nb_model1'); END; DMUSER2 ALTER MINING MODEL 40284 DMUSER1 NB_MODEL BEGIN dbms_data_mining.rename_model('dmuser1.nb_model1', 'nb_model'); END; DMUSER2 ALTER MINING MODEL 40284 DMUSER1 NB_MODEL BEGIN dbms_data_mining.rename_model('dmuser1.nb_model1', 'nb_model'); END;
31.7 統合監査ポリシーの管理
統合監査ポリシーを作成したら、それを有効にする必要があります。無効な統合監査ポリシーの変更および統合監査ポリシーの削除ができます。
- 統合監査ポリシーの変更
ALTER AUDIT POLICY
文を使用して、統合監査ポリシーを変更できます。 - 統合監査ポリシーの有効化およびユーザーとロールへの適用
AUDIT POLICY
文を使用すると、統合監査ポリシーを有効にして、ユーザーとロールに適用できます。 - 統合監査ポリシーの無効化
NOAUDIT POLICY
文を使用して、統合監査ポリシーを無効にすることができます。 - 統合監査ポリシーの削除
DROP AUDIT POLICY
文を使用して、統合監査ポリシーを削除できます。
親トピック: カスタム統合監査ポリシーの作成
31.7.1 統合監査ポリシーの変更
ALTER AUDIT POLICY
文を使用して、統合監査ポリシーを変更できます。
- 統合監査ポリシーの変更について
統合監査ポリシーでは、CONTAINER
設定を除いたほとんどのプロパティを変更できます。 - 統合監査ポリシーの変更
ALTER AUDIT POLICY
文で、統合監査ポリシーを変更できます。 - 例: 統合監査ポリシーの条件の変更
ALTER AUDIT POLICY文で、統合監査ポリシーの条件を変更できます。 - 例: 統合監査ポリシーでのOracle Label Securityコンポーネントの変更
ALTER AUDIT POLICY
文で、監査ポリシーのOracle Label Securityコンポーネントを変更できます。 - 例: 統合監査ポリシーのロールの変更
ALTER AUDIT POLICY
文で、統合監査ポリシーのロールを変更できます。 - 例: 統合監査ポリシーからの条件の削除
ALTER AUDIT POLICY
文で、統合監査ポリシーから条件を削除できます。 - 例: 既存の統合監査ポリシーのトップレベルの文の監査の変更
ALTER AUDIT POLICY文
で、統合監査証跡がトップレベルのSQL文のみを取得できるように、既存の統合監査ポリシーを変更できます。
親トピック: 統合監査ポリシーの管理
31.7.1.1 統合監査ポリシーの変更について
統合監査ポリシーでは、CONTAINER
設定を除いたほとんどのプロパティを変更できます。
マルチテナント環境では統合監査ポリシーを変更できません。たとえば、共通統合監査ポリシーをローカル統合監査ポリシーにすることはできません。
既存の統合監査ポリシーを検索するには、AUDIT_UNIFIED_POLICIES
データ・ディクショナリ・ビューを問い合せます。有効な統合監査ポリシーのみを検索する場合は、AUDIT_UNIFIED_ENABLED_POLICIES
ビューを問い合せます。有効な監査ポリシーと無効な監査ポリシーの両方を変更できます。有効な監査ポリシーを変更する場合は、変更後も有効なままです。
オブジェクトの統合監査ポリシーを変更すると、アクティブおよび後続の両方のユーザー・セッションで新しい監査設定が即座に実行されます。システムの監査オプションを変更する場合やポリシーの条件を監査する場合は、現在のユーザー・セッションではなく、新しいユーザー・セッションに対してアクティブになります。
親トピック: 統合監査ポリシーの変更
31.7.1.3 例: 統合監査ポリシーの条件の変更
ALTER AUDIT POLICY文で、統合監査ポリシーの条件を変更できます。
例31-44に、既存の統合監査ポリシーの条件を変更する方法を示します。
例31-44統合監査ポリシーの条件の変更
ALTER AUDIT POLICY orders_unified_audpol ADD ACTIONS INSERT ON SCOTT.EMP CONDITION 'SYS_CONTEXT(''ENTERPRISE'', ''GROUP'') = ''ACCESS_MANAGER''' EVALUATE PER SESSION;
親トピック: 統合監査ポリシーの変更
31.7.1.4 例: 統合監査ポリシーでのOracle Label Securityコンポーネントの変更
ALTER AUDIT POLICY
文で、監査ポリシーのOracle Label Securityコンポーネントを変更できます。
例31-45に、監査ポリシーでOracle Label Securityコンポーネントを変更する方法を示します。
例31-45統合監査ポリシーでのOracle Label Securityコンポーネントの変更
ALTER AUDIT POLICY audit_ols ADD ACTIONS SELECT ON HR.EMPLOYEES ACTIONS COMPONENT=OLS DROP POLICY, DISABLE POLICY, REMOVE POLICY;
親トピック: 統合監査ポリシーの変更
31.7.1.5 例: 統合監査ポリシーのロールの変更
ALTER AUDIT POLICY
文で、統合監査ポリシーのロールを変更できます。
例31-46に、共通統合監査ポリシーにロールを追加する方法を示します。
例31-46統合監査ポリシーのロールの変更
CONNECT c##sec_admin
Enter password: password
Connected.
ALTER AUDIT POLICY RoleConnectAudit
ADD ROLES c##role1, c##role2;
親トピック: 統合監査ポリシーの変更
31.7.1.6 例: 統合監査ポリシーからの条件の削除
ALTER AUDIT POLICY
文で、統合監査ポリシーから条件を削除できます。
例31-47に、既存の統合監査ポリシーから条件を削除する方法を示します。
例31-47統合監査ポリシーからの条件の削除
ALTER AUDIT POLICY orders_unified_audpol CONDITION DROP;
親トピック: 統合監査ポリシーの変更
31.7.1.7 例: 既存の統合監査ポリシーのトップレベルの文の監査の変更
ALTER AUDIT POLICY文
で、統合監査証跡がトップレベルのSQL文のみを取得できるように、既存の統合監査ポリシーを変更できます。
次の例は、orders_unified_audpol
ポリシーを変更してトップレベルのSQL文のみを取得する方法を示しています。
例31-48トップレベルの文の監査のための既存の統合監査ポリシーの変更
ALTER AUDIT POLICY orders_unified_audpol ADD ONLY TOPLEVEL;
同様に、トップレベルのSQL文監査を削除するには、DROP
句を使用します。
ALTER AUDIT POLICY orders_unified_audpol DROP ONLY TOPLEVEL;
親トピック: 統合監査ポリシーの変更
31.7.2 統合監査ポリシーの有効化およびユーザーとロールへの適用
AUDIT POLICY
文を使用すると、統合監査ポリシーを有効にして、ユーザーとロールに適用できます。
- 統合監査ポリシーの有効化について
POLICY
句を含むAUDIT
文で、統合監査ポリシーを有効にして、オブジェクト・レベルのオプションを含むすべてのタイプの監査オプションに適用します。 - 統合監査ポリシーの有効化
AUDIT POLICY
文で、統合監査ポリシーを有効にできます。 - 例: 統合監査ポリシーの有効化
AUDIT POLICY
文で、WHENEVER NOT SUCCESSFUL
などの条件を使用して統合監査ポリシーを有効にできます。
親トピック: 統合監査ポリシーの管理
31.7.2.1 統合監査ポリシーの有効化について
POLICY
句を含むAUDIT
文で、統合監査ポリシーを有効にして、オブジェクト・レベルのオプションを含むすべてのタイプの監査オプションに適用します。
このポリシーは、現在のセッションおよび進行中のアクティブなすべてのセッション(ログインしている他のユーザーのセッションを含む)ですぐに有効になります。
監査ポリシーは、個々のユーザーまたはロールに対して有効にできます。監査ポリシーをロールに対して有効にすると、そのロールを直接付与されたユーザーのグループに対してポリシーを有効にできます。新規ユーザーに対してロールを直接付与すると、そのユーザーに対してポリシーが自動的に適用されます。ユーザーからロールを取り消すと、そのユーザーにポリシーは適用されなくなります。
監査の結果を確認するには、UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せます。既存の統合監査ポリシーのリストを検索するには、AUDIT_UNIFIED_POLICIES
データ・ディクショナリ・ビューを問い合せます。
AUDIT
文では、次のオプションの追加設定を指定できます。
-
統合監査ポリシーを1人以上のユーザーまたは1つ以上のロールに適用するかどうか。
SYSDBA
管理権限(SYS
など)でログインする管理ユーザーを含む、1人以上のユーザーまたは1つ以上のロールにポリシーを適用するには、BY
句を使用します。たとえば、ユーザーSYS
およびSYSTEM
にポリシーを適用するには、次のようにします。たとえば、2人のユーザーにポリシーを適用する場合:
AUDIT POLICY role_connect_audit_pol BY SYS, SYSTEM;
DBA
およびCDB_DBA
ロールを直接付与されたユーザーにポリシーを適用するには:AUDIT POLICY admin_audit_pol BY USERS WITH GRANTED ROLES DBA, CDB_DBA;
-
統合監査ポリシーからユーザーを除外するかどうか。監査ポリシーからユーザーを除外するには、
EXCEPT
句を含めます。例:
AUDIT POLICY role_connect_audit_pol EXCEPT rlee, jrandolph;
-
アクティビティが成功または失敗した場合に、監査レコードを作成するかどうか。この監査方法は、監査証跡が減少するため、特定のアクションに重点を置きやすくなります。これにより、データベースの良好なパフォーマンスを維持できます。次のいずれかの句を入力します。
-
WHENEVER SUCCESSFUL
は、ユーザーのアクティビティの実行が成功した場合のみ監査します。 -
WHENEVER NOT SUCCESSFUL
は、ユーザーのアクティビティの実行が失敗した場合のみ監査します。異常終了したSQL文を監視することで、アクセス違反や不当な処理を行っているユーザーを判別できます。ただし、異常終了したSQL文の原因はそのどちらでもない場合がほとんどです。
例:
AUDIT POLICY role_connect_audit_pol WHENEVER NOT SUCCESSFUL;
この句を省略すると、失敗および成功した両方のユーザー・アクティビティが監査証跡に書き込まれます。
-
次のことに注意してください。
-
統合監査ポリシーには、
BY
、BY USERS WITH GRANTED ROLES
またはEXCEPT
句のみを含めることができますが、同じポリシーに複数を含めることはできません。 -
複数の
AUDIT
文を同じ統合監査ポリシーで実行し、異なるBYユーザーまたは異なるBY USERS WITH GRANTED ROLES
ロールを指定すると、Oracle Databaseによってこれらのユーザーまたはロールがすべて監査されます。 -
複数の
AUDIT
文を同じ統合監査ポリシーで実行し、異なるEXCEPT
ユーザーを指定すると、Oracle Databaseによって、前述のリストのユーザーではなく、最新の例外ユーザー・リストが使用されます。つまり、前のAUDIT POLICY ... EXCEPT
文の影響は最新のAUDIT POLICY ... EXCEPT
文によってオーバーライドされます。 -
EXCEPT
句はロールに対して使用できません。これはユーザーのみに適用されます。 -
共通統合監査ポリシーは、共通ユーザーまたはロールに対してのみ有効にできます。
-
共通監査ポリシーはルートからのみ、ローカル監査ポリシーはそれが適用されるPDBからのみ有効にできます。
親トピック: 統合監査ポリシーの有効化およびユーザーとロールへの適用
31.7.2.2 統合監査ポリシーの有効化
AUDIT POLICY
文で、統合監査ポリシーを有効にできます。
UNIFIED_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せることで、監査レコードを検索できます。
関連トピック
親トピック: 統合監査ポリシーの有効化およびユーザーとロールへの適用
31.7.2.3 例: 統合監査ポリシーの有効化
AUDIT POLICY
文で、WHENEVER NOT SUCCESSFUL
などの条件を使用して統合監査ポリシーを有効にできます。
例31-49に、ユーザーdv_admin
による失敗したアクションのみを統合監査ポリシーで記録できるようにする方法を示します。
例31-49統合監査ポリシーの有効化
AUDIT POLICY dv_admin_pol BY tjones WHENEVER NOT SUCCESSFUL;
親トピック: 統合監査ポリシーの有効化およびユーザーとロールへの適用
31.7.3 統合監査ポリシーの無効化
NOAUDIT POLICY
文を使用して、統合監査ポリシーを無効にすることができます。
- 統合監査ポリシーの無効化について
NOAUDIT
文とPOLICY
句を組み合せることにより、統合監査ポリシーを無効にできます。 - 統合監査ポリシーの無効化
NOAUDIT
文で、サポートされている監査オプションを使用して統合監査ポリシーを無効にできます。 - 例: 統合監査ポリシーの無効化
NOAUDIT POLICY
文で、ユーザー名などのフィルタを使用して統合監査ポリシーを無効にします。
親トピック: 統合監査ポリシーの管理
31.7.3.1 統合監査ポリシーの無効化について
NOAUDIT
文とPOLICY
句を組み合せることにより、統合監査ポリシーを無効にできます。
NOAUDIT
文では、BY
ユーザー・リストまたはBY USERS WITH GRANTED ROLES
ロール・リストを指定できますが、EXCEPT
ユーザー・リストは指定できません。統合監査ポリシーを無効にすると、後続のユーザー・セッションに反映されます。
既存の統合監査ポリシーのリストを検索するには、AUDIT_UNIFIED_POLICIES
データ・ディクショナリ・ビューを問い合せます。
共通監査ポリシーはルートからのみ、ローカル監査ポリシーはそれが適用されるPDBからのみ無効にできます。
親トピック: 統合監査ポリシーの無効化
31.7.3.3 例: 統合監査ポリシーの無効化
NOAUDIT POLICY
文で、ユーザー名などのフィルタを使用して統合監査ポリシーを無効にします。
例31-50に、ユーザーまたはロールに対して統合監査ポリシーを無効にする方法を示します。
例31-50統合監査ポリシーの無効化
NOAUDIT POLICY dv_admin_pol BY tjones; NOAUDIT POLICY dv_admin_pol BY USERS WITH GRANTED ROLES emp_admin;
親トピック: 統合監査ポリシーの無効化
31.7.4 統合監査ポリシーの削除
DROP AUDIT POLICY
文を使用して、統合監査ポリシーを削除できます。
- 統合監査ポリシーの削除について
DROP AUDIT POLICY
文を使用して、統合監査ポリシーを削除できます。 - 統合監査ポリシーの削除
統合監査ポリシーを削除するには、最初に無効にし、DROP AUDIT POLICY
文を実行して削除します。 - 例: 統合監査ポリシーの無効化および削除
NOAUDIT POLICY
文およびDROP AUDIT POLICY
文で、統合監査ポリシーを無効化して削除できます。
親トピック: 統合監査ポリシーの管理
31.7.4.1 統合監査ポリシーの削除について
DROP AUDIT POLICY
文を使用して、統合監査ポリシーを削除できます。
統合監査ポリシーがすでにセッションで有効な場合、ポリシーを削除しても、既存のこのセッションには影響しません。この時点まで、統合監査ポリシーの設定は有効のままです。ただし、オブジェクト関連の監査ポリシーの場合、影響は即座に反映されます。
既存の統合監査ポリシーのリストを検索するには、AUDIT_UNIFIED_POLICIES
データ・ディクショナリ・ビューを問い合せます。
監査ポリシーを削除する前に無効化する場合は、有効化に使用した設定と同じ設定を使用して無効化してください。たとえば、logon_pol
ポリシーを次のように有効化したとします。
AUDIT POLICY logon_pol BY HR, OE;
このポリシーを削除する前に、次のようにNOAUDIT
文にHR
およびOE
ユーザーが含まれている必要があります。
NOAUDIT POLICY logon_pol BY HR, OE;
共通監査ポリシーはルートからのみ、ローカル監査ポリシーはそれが適用されるPDBからのみ削除できます。
親トピック: 統合監査ポリシーの削除
31.7.4.2 統合監査ポリシーの削除
統合監査ポリシーを削除するには、最初に無効にし、DROP AUDIT POLICY
文を実行して削除します。
-
次の構文を使用して、統合監査ポリシーを削除します。
DROP AUDIT POLICY policy_name;
統合監査ポリシーの削除は、現在のPDBに適用されます。統合監査ポリシーが共通統合監査ポリシーとして削除された場合は、ローカルのPDBから削除することはできません。
親トピック: 統合監査ポリシーの削除
31.7.4.3 例: 統合監査ポリシーの無効化および削除
NOAUDIT POLICY
文およびDROP AUDIT POLICY
文で、統合監査ポリシーを無効化して削除できます。
例31-51に、共通統合監査ポリシーを無効化および削除する方法を示します。
例31-51統合監査ポリシーの無効化および削除
CONNECT c##sec_admin
Enter password: password
Connected.
NOAUDIT POLICY dv_admin_pol;
DROP AUDIT POLICY dv_admin_pol
親トピック: 統合監査ポリシーの削除
31.8 例: 非データベース・ユーザーの監査
このチュートリアルでは、非データベース・ユーザーのアクションをクライアント識別子を使用して監査する統合監査ポリシーの作成方法を示します。
- ステップ1: ユーザー・アカウントの作成とユーザーOEがアクティブであることの確認
ユーザーを作成し、ユーザーOE
がアクティブであることを確認する必要があります。 - ステップ2: 統合監査ポリシーの作成
ここでは、統合監査ポリシーを作成します。 - ステップ3: ポリシーのテスト
ポリシーをテストするため、ユーザーOE
はOE.ORDERS
表から選択します。 - ステップ4: このチュートリアルのコンポーネントの削除
このチュートリアルのコンポーネントが不要になった場合、それらを削除できます。
親トピック: カスタム統合監査ポリシーの作成
31.8.1 ステップ1: ユーザー・アカウントの作成とユーザーOEがアクティブであることの確認
ユーザーを作成し、ユーザーOE
がアクティブであることを確認する必要があります。
関連トピック
親トピック: 例: 非データベース・ユーザーの監査
31.8.3 ステップ3: ポリシーのテスト
ポリシーをテストするため、ユーザーOE
はOE.ORDERS
表から選択します。
親トピック: 例: 非データベース・ユーザーの監査
31.9 カスタム統合監査ポリシーのデータ・ディクショナリ・ビュー
データ・ディクショナリ・ビューおよび動的ビューを問い合せると、カスタム統合監査ポリシーについて詳細な監査情報を確認できます。
表31-20に、これらのビューを示します。
ヒント:
監査ポリシーに関するエラー情報を検索するには、トレース・ファイルを確認します。USER_DUMP_DEST
初期化パラメータは、トレース・ファイルの位置を示します。
表31-20 カスタム統合監査ポリシーで使用するビュー
ビュー | 説明 |
---|---|
|
すべてのファイングレイン監査ポリシーに関する情報が表示されます。 |
|
オブジェクトの作成時に適用されるデフォルトのオブジェクト監査オプションがリストされます。 |
|
監査証跡で取得されるように構成されているアプリケーション・コンテキスト値が表示されます。 |
|
データベースで有効なすべての統合監査ポリシーが表示されます。 |
|
データベースで作成されたすべての統合監査ポリシーが表示されます。 |
|
|
|
監査可能なシステム・アクション番号がアクション名にマップされます。 |
|
|
|
ユーザーによって実行される監査対象のOracle Label Securityイベントが表示され、ユーザーのアクションが成功したか失敗したかが示されます。 |
|
Oracle Database Real Application Securityに関連する監査証跡の情報が表示されます。 |
|
Oracle Database Vault管理者による構成変更が表示されます。 |
|
Oracle Database Vaultポリシーによって影響を受けるユーザー・アクティビティが表示されます。 |
|
権限(監査オプション)型コードが表示されます。この表を使用して、権限(監査オプション)の型番号を型名にマップできます。 |
|
すべての監査レコードが表示されます。 |
|
XML形式のファイルに書き込まれた標準監査、ファイングレイン監査、 |
関連トピック
親トピック: カスタム統合監査ポリシーの作成