【TRY! ORACLE MASTER】Bronze DBA11g 編
(第10回 ユーザーおよびセキュリティの管理)

みなさん、こんにちは。TRY! ORACLE MASTER シリーズ第10回です。今回は「ユーザーおよびセキュリティの管理」と「スキーマ・オブジェクトの管理」から出題します。

問題(19)

データベース・インスタンスを起動および停止できるユーザーの説明として、正しいものは次のうちどれですか。2つ選択してください。

  1. SYSユーザーのみである。
  2. DBAロールを付与されたユーザーである。
  3. SYSTEMユーザーのみである。
  4. SYSDBA権限を付与されたユーザーである。
  5. SYSOPER権限を付与されたユーザーである。

 

 


 

正解は4. 5. です。

データベース・インスタンスを起動および停止できるユーザーは、SYSDBA権限またはSYSOPER権限を与えられたユーザーに限られます。この2つの権限は特別なシステム権限で、DBAロールには含まれません。

何故、DBAロールに含まれないのでしょうか?

SYSDBAやSYSOPERはデータベース・インスタンスを起動/停止する権限なので、データベースの外側で制御する必要があるのです。

SYSユーザーには通常SYSDBA権限が付与されています。一方、SYSTEMユーザーには通常SYSDBA権限やSYSOPER権限は付与されていません。

ところでSYSDBA権限とSYSOPER権限、この二つの相違は?

起動停止のみならず、リカバリなど、すべての操作が可能なのが、SYSDBA権限です。一方、SYSOPERのOPERはOperationの略。起動停止などの日常管理で必要な操作しか行えないようになっています。


 
次は、「スキーマ・オブジェクトの管理」からの出題です。
 

 

問題(20)

PL/SQLオブジェクトについての説明で誤っているものを1つ選択してください。

  1. ファンクションは、特定のアクションを実行するPL/SQLブロックであり、値を返す必要はない
  2. パッケージ本体には、パッケージで定義されたプロシージャとファンクション用のPL/SQLコード含む
  3. パッケージの仕様部には、PL/SQLコードの定義を宣言する
  4. トリガーは、データベースの表またはビューに関連付けられたストアド・サブプログラムである
 
 

 

回答と解説:

正解は、1. です。

ファンクションは、RETURN句を使ってコール側に値を返す必要があります。値を返さない場合はプロシージャを使います。

パッケージの仕様部には、パッケージの外からコールしたいPL/SQLコードの定義を宣言します。そして、パッケージ本体には、パッケージで定義されたプロシージャとファンクションのPL/SQLコードを記述します。

トリガーは、特定のイベントがデータベース内に発生した時に自動的に実行されるPL/SQLブロックです。たとえば、ある表にデータがINSERTされたら何らかの操作を、というようなケースでトリガーを使用します。



今回は如何でしたでしょうか?
さて、次回でBronze DBAも最終回となります。テーマは「バックアップリカバリの管理」と「データベースの監視およびアドバイザの使用」です。お楽しみに!