【TRY! ORACLE MASTER】Silver DBA11g 編
(第15回 セキュリティ)
|
問題(28) SQL*Plusから次のようにFGAポリシーを設定しました。 SQL> EXEC DBMS_FGA.ADD_POLICY( object_schema => 'hr', object_name=>'emp', policy_name=> 'audit_hr_emp', audit_condition=> 'dept_id=20', audit_column=>'salary', statement_type='select'); 次のSQL文のうち、監査が行われるものはどれですか。2つ選択してください。 1. SELECT salary FROM hr.emp; 2. UPDATE hr.emp SET salary=10000 WHERE dept_id=20; 3. SELECT * FROM hr.emp; 4. SELECT salary FROM hr.emp WHERE dept_id=10; なお、hr.emp表にはsalary列があり、またdept_id=20を満たす行が存在するものとする。 |
|
解答と解説: 正解は 1. 3. です。 ファイングレイン監査という監査機能についての出題でした。ファイングレイン監査機能は、このようにSELECTの監査を行うときに使います。ファ イングレイン監査の特徴として、細かい設定が可能です。DBMS_FGA.ADD_POLICYのパラメータを見てみましょう。 object_schema, object_nameは監査対象のオブジェクトの指定です。policy_nameは監査ポリシーの名前。audit_conditionは監査の条 件。この例では、dept_id=20という条件を満たしている行に関して監査する、という意味になります。audit_columnは監査対象列。そし てstatement_typeは監査対象のSQLの種類。この例ではSELECT文のみが監査の対象となっています。 1. は監査されます。 2. はUPDATEなので監査されません。 3.はSELECT*となっていますが、このような書き方であってもdept_id=20という条件を満たす行のsalary列の値は参照されますので監査されます。 4.はWHERE句でdept_id=10という条件を指定しているので監査されません。 監査を設定するときは、如何に必要な監査だけに絞り込むかが肝になってきます。ファイングレイン監査のパラメータをうまく使いこなすようにしてください。 |
|
問題(29) 次の接続文字列を使用してデータベースに接続します。 SQL> CONNECT hr/oracle@db.oracle.com:1521/mydb 接続文字列に関する記述で正しいものはどれですか。2つ選択してください。 1. db.oracle.comはネットサービス名である 2. oracleはデータベース名である 3. hrはユーザー名である 4. mydbはサービス名である |
|
解答と解説: 正解は、3. 4. です。 簡易接続ネーミングに関する出題でした。 CONNECT ユーザー名/パスワード@ホスト名:ポート番号/サービス名 さて、ネーミングメソッドには、簡易接続のほかに、ローカル・ネーミング、ディレクトリ・ネーミングなどもありますね。今一度、それらの特徴と使い分けを押さえておいてください。 簡易接続はクライアント側での設定が不要なので、ちょっとした動作確認の時に使用したりします。 ローカル・ネーミングはtnsnames.oraファイルに接続記述子を書いておくネーミングメソッドです。 ディレクトリ・ネーミングはディレクトリサーバーに接続記述子を管理してもらうネーミングメソッドです。 |
