D Oracle Database Real Application Securityのトラブルシューティング
Real Application Securityの診断について
Real Application Securityは、バックエンド・データベース、アプリケーション・サーバーおよびアプリケーション・インスタンスをまたがる統合インフラストラクチャを使用します。Real Application Securityコンポーネントには、Real Application Securityシステムの問題を特定、診断および解決できる診断機能が含まれます。
Real Application Security診断は、Oracle Database 12cリリース1 (12.1)以降で使用可能なデータベース診断フレームワーク(DFW)を利用します。機能の診断では、機能障害を追跡、調査および解決できます。例外状態ダンプ、イベントベースのトレースまたはデフォルト・トレースを使用して、機能の問題を調査および解決できます。パフォーマンス診断では、パフォーマンスの問題を識別および解決できます。
検証APIの使用について
オブジェクトは、作成後に必ず検証する必要があります。これには、プリンシパル、セキュリティ・クラス、ACL、データ・セキュリティ・ポリシー、ネームスペースなどのオブジェクトが含まれます。ワークスペースに存在するこれらすべてのオブジェクトを単一の操作で検証することもできます。XS_DIAG
パッケージには、作成された任意のオブジェクトの潜在的な問題を診断するために使用できるサブプログラムが含まれます。詳細は、「XS_DIAGパッケージ」を参照してください。これらのパッケージについては、使用例を示す各検証サブプログラムへのリンクを記載した次の表で簡単に説明します。
表D-1 XS_DIAGサブプログラムの要約
サブプログラム | 説明 |
---|---|
プリンシパルを検証します。 |
|
セキュリティ・クラスを検証します。 |
|
ACLを検証します。 |
|
データ・セキュリティ・ポリシーを検証するか、特定の表に対してデータ・セキュリティ・ポリシーを検証します。 |
|
ネームスペース・テンプレートを検証します。 |
|
ワークスペース全体を検証します。 |
現在のユーザーの行に関連付けられているACLを確認する方法
現在のユーザーの特定の行に関連付けられているACLを調べるには、ORA_GET_ACLIDS
ファンクションを使用します。ORA_GET_ACLIDS
ファンクションは、現在のアプリケーション・ユーザーのデータ・セキュリティ・ポリシー対応の表の行インスタンスに関連付けられているACL IDのリストを戻します。現在の行へのアクセス権が付与されている場合、このファンクションは、一致するデータ・レルム制約に関連付けられているすべてのACL識別子を取得します。参照情報については「ORA_GET_ACLIDSファンクション」を、チュートリアル情報については「ACLの権限の確認について」を参照してください。
ACLでユーザーに権限が付与されているかどうかを調べる方法
ACLで権限が付与されているかどうかを調べるには、ORA_CHECK_ACL
ファンクションを使用します。ORA_CHECKACL
ファンクションは、アプリケーション・ユーザーがACLのリストに従って問い合せられたアプリケーション権限を持つかどうかを確認します。指定されたアプリケーション権限がアプリケーション・ユーザーに付与されている場合、ORA_CHECKACL
は1
を戻します。アプリケーション・ユーザーに付与されていない場合は、0
を戻します。参照情報については「ORA_CHECK_ACLファンクション」を、チュートリアル情報については「ACLの権限の確認について」を参照してください。
EMPLOYEE
表などの表の各行に関連付けられているACLIDをリストするために、ユーザーは次の問合せを使用できます。
select ORA_GET_ACLIDS(emp) from EMPLOYEE emp;
SELECT
などの権限がEMPLOYEE
表の各行に付与されている場合に結果をリストするために、ユーザーは次の問合せを実行できます。
select ORA_CHECK_ACL(ORA_GET_ACLIDS(emp), 'SELECT') from EMPLOYEE emp;
Real Application Securityコンポーネントのイベントベースのトレースについて
イベントベースのトレースを使用して、特定のReal Application Securityコンポーネントに関連するイベントを追跡できます。表D-2に、Real Application Securityコンポーネントに割り当てられているイベントをリストします。
表D-2 Real Application Securityコンポーネントおよびイベント
Real Application Securityのコンポーネント | イベント(Oracleエラー番号) |
---|---|
アプリケーション・セッション ( |
46148 |
アプリケーション・プリンシパル ( |
46150 |
セキュリティ・クラス ( |
46149 |
ACL
|
46110 |
データ・セキュリティ ( |
46049 |
中間層キャッシュ ( |
46151 |
データ・セキュリティVPDリライト ( |
10730 |
アプリケーション・セッション(XSSESSION)イベントベース・トレースについて
次のSQL
文を使用して、XSSESSION
コンポーネントに対してイベントベース・トレースを有効にします。
ALTER SESSION SET EVENTS '46148 trace name context forever, level="1", level="2", level="3"';
ここで、46148
はXSSESSION
イベントに関連付けられているOracleデータベース・エラー番号です。1
(low
)、2
(medium
)または3
(high
)のトレース・レベルを設定できます。表D-3で、トレース・レベルについて説明します。
または、次の文を使用できます。
ALTER SESSION SET EVENTS 'TRACE [XSSESSION] disk=[low, medium, high]'
次のSQL文を使用して、このトレースの場所を検索できます。
SHOW PARAMETER USER_DUMP_DEST;
表D-3に、各トレース・レベルのXSSESSION
トレースの内容を示します。
表D-3 XSSESSIONトレースの内容
イベント | トレース・レベル1 (低) | トレース・レベル2 (中) | トレース・レベル3 (高) |
---|---|---|---|
|
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
レベル2と同じ |
|
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
トレース・レベル1と2の項目に加えて次の情報が含まれます。
|
|
次の情報が含まれます。
|
レベル1と同じ |
レベル1および2と同じ |
|
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
トレース・レベル1と2の項目に加えて次の情報が含まれます。
|
|
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
トレース・レベル1と2の項目に加えて次の情報が含まれます。
|
|
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
トレース・レベル1と2の項目に加えて次の情報が含まれます。
|
|
次の情報が含まれます。
|
レベル1と同じ |
レベル1および2と同じ |
|
次の情報が含まれます。
|
レベル1と同じ |
レベル1および2と同じ |
前のイベントに加えて、名前付きイベントxs_session_state
を使用して、アプリケーション・セッションの現在の状態をダンプできます。次のSQL文を使用して、xs_session_state
イベントのトレースを有効にします。
ALTER SESSION SET EVENTS 'immediate eventdump(xs_session_state)';
イベント・ダンプには、セッションID、ユーザー名、作成時刻、最終認証時刻、グローバル変数ネームスペースなど、ユーザー・グローバル領域(UGA)メモリー内のすべてのセッション属性に関する情報が含まれます。ダンプには、パスワードなどのセキュアな項目に関する情報は含まれません。
アプリケーション・プリンシパル(XSPRINCIPAL)イベントベース・トレースについて
次のSQL
文を使用して、XSPRINCIPAL
コンポーネントに対してイベントベース・トレースを有効にします。
ALTER SESSION SET EVENTS '46150 trace name context forever, level="1", level="2", level="3"';
ここで、46150
はXSPRINCIPAL
イベントに関連付けられているOracleデータベース・エラー番号です。1
(low
)、2
(medium
)または3
(high
)のトレース・レベルを設定できます。表D-4で、トレース・レベルについて説明します。
または、次の文を使用できます。
ALTER SESSION SET EVENTS 'TRACE [XSPRINCIPAL] disk=[low, medium, high]';
次のSQL文を使用して、このトレースの場所を検索できます。
SHOW PARAMETER USER_DUMP_DEST;
表D-4に、各トレース・レベルのXSPRINCIPAL
トレースの内容を示します。
表D-4 XSPRINCIPALトレースの内容
イベント | トレース・レベル1 (低) | トレース・レベル2 (中) | トレース・レベル3 (高) |
---|---|---|---|
ロールの有効化 |
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
レベル1および2と同じ |
ロールの無効化 |
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
レベル1および2と同じ |
ロール・グラフ横断 |
次の情報が含まれます。
|
レベル1と同じ |
レベル1および2と同じ |
セキュリティ・クラス(XSSECCLASS)イベントベース・トレースについて
次のSQL
文を使用して、XSSECCLASS
コンポーネントに対してイベントベース・トレースを有効にします。
ALTER SESSION SET EVENTS '46149 trace name context forever, level="1", level="2", level="3"';
ここで、46149
はXSSECCLASS
イベントに関連付けられているOracleデータベース・エラー番号です。1
(low
)、2
(medium
)または3
(high
)のトレース・レベルを設定できます。
または、次の文を使用できます。
ALTER SESSION SET EVENTS 'TRACE [XSSECCLASS] disk=[low, medium, high]';
次のSQL文を使用して、このトレースの場所を検索できます。
SHOW PARAMETER USER_DUMP_DEST;
次のトレース情報が含まれます。
-
親クラス、子クラス、権限、集約権限など、セキュリティ・クラス・ドキュメントの内容
-
セキュリティ・クラスの削除の場合は、キャッシュからの無効化を必要とする親クラスに関する情報が含まれます
-
セキュリティ・クラス検証エラーなどの例外関連情報
ACL (XSACL)イベントベース・トレースについて
次のSQL
文を使用して、XSACL
コンポーネントに対してイベントベース・トレースを有効にします。
ALTER SESSION SET EVENTS '46110 trace name context forever, level="1", level="2", level="3"';
ここで、46110
はXSACL
イベントに関連付けられているOracleデータベース・エラー番号です。1
(low
)、2
(medium
)または3
(high
)のトレース・レベルを設定できます。
または、次の文を使用できます。
ALTER SESSION SET EVENTS 'TRACE [XSACL] disk=[low, medium, high]';
次のSQL文を使用して、このトレースの場所を検索できます。
SHOW PARAMETER USER_DUMP_DEST;
表D-5に、各トレース・レベルのXSACL
トレースの内容を示します。
表D-5 XSACLトレースの内容
イベント | トレース・レベル1 (低) | トレース・レベル2 (中) | トレース・レベル3 (高) |
---|---|---|---|
ACLに対する権限の確認 |
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
レベル1および2と同じ |
データ・セキュリティ(XSXDSおよびXSVPD)イベントベース・トレースについて
次のSQL
文を使用して、XSXDS
コンポーネントに対してイベントベース・トレースを有効にします。
ALTER SESSION SET EVENTS '46049 trace name context forever, level="1", level="2", level="3"';
ここで、46049
はXSXDS
イベントに関連付けられているOracleデータベース・エラー番号です。1
(low
)、2
(medium
)または3
(high
)のトレース・レベルを設定できます。表D-6で、トレース・レベルについて説明します。
または、次の文を使用できます。
ALTER SESSION SET EVENTS 'TRACE [XSXDS] disk=[low, medium, high]';
次のSQL文を使用して、このトレースの場所を検索できます。
SHOW PARAMETER USER_DUMP_DEST;
表D-6に、各トレース・レベルのXSXDS
トレースの内容を示します。
表D-6 XSXDSトレースの内容
イベント | トレース・レベル1 (低) | トレース・レベル2 (中) | トレース・レベル3 (高) |
---|---|---|---|
システム・グローバル領域(SGA)にロードされたデータ・セキュリティ・ドキュメント(DSD) |
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
レベル1および2と同じ |
次のSQL
文を使用して、XSVPD
コンポーネントに対してイベントベース・トレースを有効にします。
ALTER SESSION SET EVENTS '10730 trace name context forever level [1, 2, 3]';
ここで、10730はXSVPD
イベントに関連付けられているOracleデータベース・エラー番号です。1
(low
)、2
(medium
)または3
(high
)のトレース・レベルを設定できます。表D-6で、トレース・レベルについて説明します。
または、次の文を使用できます。
ALTER SESSION SET EVENTS 'TRACE [XSVPD] disk=[low, medium, high]';
表D-6に、各トレース・レベルのXSVPD
トレースの内容を示します。
表D-7 XSVPDトレースの内容
イベント | トレース・レベル1 (低) | トレース・レベル2 (中) | トレース・レベル3 (高) |
---|---|---|---|
|
次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
トレース・レベル1の項目に加えて次の情報が含まれます。
|
例外状態ダンプ情報について
例外が発生すると、Real Application Securityコンポーネントの状態情報がトレース・ファイルにダンプされます。表D-8で、個々のReal Application Securityコンポーネントについてダンプされる情報について説明します。
表D-8 Real Application Securityのコンポーネントと初回障害ダンプ情報
Real Application Securityコンポーネント | 例外関連情報 |
---|---|
|
|
|
|
セッション統計について
Real Application Securityコンポーネント統計は、Real Application Securityシステムのパフォーマンスの問題の識別に役立ちます。表D-9で、個々のReal Application Securityのコンポーネントについて収集される統計について説明します。
表D-9 Real Application Securityのコンポーネントとパフォーマンス統計
Real Application Securityコンポーネント | 収集されるパフォーマンス統計 |
---|---|
|
|
|
|
中間層キャッシュ |
|