ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!
前回の「パスワード管理でOracleデータベースを守る」に引き続き、Oracleデータベースのセキュリティについて学びます。
Oracleサーバにおける認証関連のセキュリティと監査処理が対象となります。データベース監査、データベーストリガーを使用した監査、ファイングレイン監査で何ができるのかを確認しておきましょう。
Oracleサーバのセキュリティを向上させるためには、操作に必要な権限のみをユーザーに対して与える必要があります。関連する保護機能には次のものがあります。
現在、PUBLICに付与されている権限を確認するには、次のデータディクショナリを使用します。
オブジェクト権限 | BA_TAB_PRIVS |
---|---|
システム権限 | DBA_SYS_PRIVS |
ロール | DBA_ROLE_PRIVS |
現在、SYSDBA、SYSOPER権限がどのユーザーに付与されているかは、次の方法で確認します。
OS認証 | OSのOSDBAグループ(UNIXはdba、WindowsはORA_DBA)に属しているかどうか |
---|---|
パスワードファイル認証 | V$PWFILE_USERSで確認 |
SQL> SELECT * FROM v$pwfile_users; USERNAME SYSDB SYSOP ------------------------------ ----- ----- SYS TRUE TRUE
疑わしい操作が発生したかどうかを確認するためには、監査機能の組み込みが重要です。Oracleサーバで提供される監査機能には次のものがあります。
標準監査 | 値ベース監査 | ファイングレイン監査 | |
---|---|---|---|
監査対象 | 権限の使用 | DMLによる値変更 | 特定の列、行へのアクセス(SQL) |
監査証跡 | 集中監査証跡 (DBA_AUDIT_TRAIL) |
独自に定義 | 集中監査証跡 (DBA_FGA_AUDIT_TRAIL)オプションで独自に定義 |
次の初期化パラメータが設定されているときの動作を選択しなさい。
REMOTE_OS_AUTHENT=TRUE
a.リモートクライアントからのOS認証は拒否する
b.リモートクライアントからのOracleデータベースへの接続でOS認証が使用される
c.リモートクライアントに対し、OS認証で接続できる
d.リモートシステムのオペレーティングシステムの変更が許可される
正解:b
前回、宿題とした問題です。
REMOTE_OS_AUTHENT初期化パラメータは、リモートからの接続時にOS認証を使用できるかどうかを制御する初期化パラメータです(正解b)。この値がTRUEの場合、OS認証を使用した「connect /@ネットサービス名」のような接続が可能になります。
そのほかの選択肢の不正解の理由は次のとおりです。
●選択肢a:REMOTE_OS_AUTHENT初期化パラメータがFALSE(デフォルト値)の場合の動作です。
●選択肢c、d:Oracleサーバからのリモートクライアントへの接続やリモートサーバのOS変更は、OracleサーバではなくOS側で行うべき制御事項です。
DBA_OBJ_AUDIT_OPTSデータディクショナリビューを確認したところ、次のような結果が表示されました。
OBJECT_NAME INS UPD DEL --------------- ----- ----- ----- DEPARTMENTS -/- A/S -/- EMPLOYEES A/- -/- A/S
この設定に関する説明として正しいものを2つ選択しなさい。
a.DEPARTMENTS表では、UPDATE文が成功した場合はそのセッションで1度だけ監査レコードが収集され、失敗した場合はアクセス別に監査レコードが収集される
b.DEPARTMENTS表では、UPDATE文が失敗した場合はそのセッションで1度だけ監査レコードが収集され、成功した場合はアクセス別に監査レコードが収集される
c.EMPLOYEES表では、INSERT文が失敗した場合はアクセス別に監査レコードが収集され、成功した場合は監査しない。DELETE文が成功した場合はそのセッションで1度だけ監査レコードが収集され、失敗した場合はアクセス別に監査レコードが収集される
d.EMPLOYEES表では、INSERT文が成功した場合はアクセス別に監査レコードが収集され、失敗した場合は監査しない。DELETE文が失敗した場合はそのセッションで1度だけ監査レコードが収集され、成功した場合はアクセス別に監査レコードが収集される
正解:b、d
DBA_OBJ_AUDIT_OPTSデータディクショナリビューは、オブジェクト監査に関する設定を確認するビューです。各列は個別のオブジェクト権限を表し、-(監査なし)、A(アクセスごとに監査)、S(セッションで1度だけ監査)の値を成功時と失敗時の設定別に表しています。
DEPARTMENTSレコードはUPD列のみに値があるため、UPDATE時の監査であることが分かります。「A/S」ですから、成功時はアクセスごとに(A)、失敗時はセッションで1度だけ監査(S)します。
EMPLOYEESレコードは、INS列(INSERT時)が「A/-」のため、成功時はアクセスごと(A)、失敗時は監査なし(-)です。DEL列(DELETE時)は「A/S」のため、成功時はアクセスごと(A)、失敗時はセッションで1度だけ監査(S)します。これらを満たす正解の選択肢はbとdです。
そのほかの選択肢の不正解の理由は次のとおりです。
●選択肢a:DEPARTMENTSレコードのUPD列が「S/A」の場合の説明です。
●選択肢c:EMPLOYEESレコードのINS列が「-/A」、DEL列が「S/A」の場合の説明です。
表に対するSELECTを監視することのできる機能を選択しなさい。
a.ファイングレイン監査(FGA)
b.ファイングレインアクセスコントロール(FGAC)
c.データベーストリガー
d.ファンクション
正解:a
SELECT文を監視するには、標準監査(AUDIT)か、ファイングレイン監査(FGA)を使用します(正解a)。権限の使用に関して監査する場合は標準監査を使用し、指定した列と行へのアクセスを監査する場合はFGAを使用します。
Oracle Database 10gのFGAは、SELECT文だけでなく、DML文の監査を行うこともできます。
そのほかの選択肢の不正解の理由は次のとおりです。
●選択肢b:ファイングレインアクセスコントロールは、アクセスする行を制限するための機能です。ユーザーが処理を行うとき、自動的に述語(WHERE句)を追加することで行を制限します。結果的に、複数のユーザーが同じ表にアクセスしても、そのユーザーがアクセスできる行のみが処理の対象となります。
●選択肢c:データベーストリガーを使用した監査では、トリガーが起動するイベントで監査が行われます。DML文であればトリガーイベントになりますが、SELECT文はトリガーイベントにならないため、不正解です。
●選択肢d:ファンクションは、ユーザー定義の関数を作成するために使用するものです。明示的に呼び出す必要があるため、ファンクションだけでは監査設定にはなりません。
次回から2回にわたって、Oracle Netの構成方法を確認します。次の宿題を解いておいてください。
ホスト名とリスナー名が分かれば、どのユーザーもリスナーの停止やリスナー状態のチェックが可能です。この動作を制限する方法として適切なものを選択しなさい。
a.listener.oraファイルの保存場所を変更する
b.リスナーを隠す
c.リスナーにパスワードを設定する
d.デフォルトのリスナー名を使用しない
IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、「Silver DBA(Oracle10g)」をはじめOracle関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。
Copyright © ITmedia, Inc. All Rights Reserved.