【TRY! ORACLE MASTER】Silver DBA11g 編
(第15回 セキュリティ)

みなさん、こんにちは。TRY! ORACLE MASTER シリーズ第15回。ORACLE MASTERの勉強は順調に進んでいますか?さて、今回は「セキュリティ」と「Oracle Net Services」から出題します。

問題(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という条件を指定しているので監査されません。

監査を設定するときは、如何に必要な監査だけに絞り込むかが肝になってきます。ファイングレイン監査のパラメータをうまく使いこなすようにしてください。

 


 次は、「Oracle Net Services」からの出題です。
 

 

問題(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ファイルに接続記述子を書いておくネーミングメソッドです。

ディレクトリ・ネーミングはディレクトリサーバーに接続記述子を管理してもらうネーミングメソッドです。



 
今回は如何でしたでしょうか?
さて、次回のテーマは「パフォーマンスの監視」です。お楽しみに!



前週のTRY!<<  >>次週