連載
» 2005年11月17日 00時00分 公開

ORACLE MASTER Bronze DBA講座(7):Oracleユーザーを管理する

Oracleデータベースエンジニアとしての実力を証明するORACLE MASTER資格。その入り口であるBronze資格の取得は難しくない。本連載と、同時掲載中の連載「Bronze SQL基礎I 講座」で合格を目指そう!(参考記事:「Oracle 10g対応のORACLE MASTERとは?」)

[有限会社 G.F.インフィニティ (Project - ∞)]

 前回「Oracleのデータベース記憶域を探る」で、Oracleのデータベース記憶域の管理方法を学びました。今回と次回の2回にわたって、ユーザーとセキュリティの管理について紹介しましょう。

ユーザーとセキュリティの管理

理解しておきたいこと

1.確認しておきたい内容

  • 自動作成されるユーザー
  • ユーザーの作成と管理

2.定義済みのユーザー

 Oracleデータベースでは、次のユーザーが自動作成されます。

ユーザー名 説明
SYS データベースの管理ユーザー。データディクショナリの実表やビューを所有する
SYSTEM データベースの管理ユーザー。ツールや製品で使用される内部表などを所有する
SYSMAN OEM(Oracle Enterprise Manager)の管理ユーザー。OEMに接続して管理作業を行う
DBSNMP OEMの内部ユーザー。データベースを管理する際、内部的に接続して操作を行う
サンプルスキーマ サンプルスキーマをインストールした場合に作成される。HR(Human Resources)による人事データ(EMPLOYEES表、DEPARTMENTS表など)、OE(Order Entry)による受注データ(CUSTOMERS表、ORDERS表など)、SH(Sales History)によるデータウェアハウスデータ(SALES表、PRODUCTS表など)が該当する

問題

問題1

データディクショナリの所有者とされているOracle定義ユーザーを選択しなさい。

a.SYSTEM
b.SYSMAN
c.SYS
d.DBSNMP

正解:c

解説

 データディクショナリの所有者は、「SYS」ですね。SYSTEM表領域内には、データディクショナリなど各種データベース情報に関する表が格納されています。この所有者はSYSとなっています。

 不正解となる選択肢を解説しましょう。

選択肢a:ツールや製品で使用される内部表などを所有します。

選択肢b:OEMに接続して管理作業を行うときに使用されます。

選択肢d:OEMを使用してデータベースを管理する際、内部的に接続して操作を行うために使用されます。

問題2

Enterprise Manager Database Controlの管理エージェントとしてデータベース接続に使用されるユーザーを選択しなさい。

a.SYS
b.DBSNMP
c.SYSTEM
d.OE
e.OUTLN
f.WKSYS

正解:b

解説

 Enterprise Manager関連のユーザーとしては、SYSMANとDBSNMPが存在します。このうち、データベースに接続して内部的な作業を行う、つまり代理人(エージェント)としての処理をするのは「DBSNMP」です。

 不正解となる選択肢を解説しましょう。

選択肢a:データディクショナリを所有しているOracleデータベース管理者です。

選択肢c:ツールや製品で使用される内部表を所有しているOracleデータベース管理者です。

選択肢d:注文関連のサンプル表を所有しているユーザーです。Order Entryの略でOEと呼ばれます。

選択肢e:ストアドアウトラインの情報を所有しているユーザーです。データベースにおける各種操作をどのように実行するか(索引を使う、使わないなど)は、「実行計画」を作成して決定されます。ストアドアウトラインを使用することで実行計画を保存することができ、次回同じSQLが実行されたときに使用されます。

選択肢f:Ultra Searchという機能に関するデータを所有しているユーザーです。Ultra Searchは、さまざまなリポジトリに点在しているデータを高速に検索するためのメカニズムを提供する機能です。

3.ユーザーの作成

 OEMを使用して新規ユーザーを作成するには、「管理」タブ→「セキュリティ」リージョンの「ユーザー」ページを使用します。完全な新規作成だけでなく、既存のユーザーを使用した類似作成も可能です。ユーザーの作成時に設定できる情報には次のものがあります(図1)。

図1 ユーザーの作成(クリックで全体を表示します) 図1 ユーザーの作成(クリックで全体を表示します)
設定項目 説明
ユーザー名 必須情報。後から変更できない。ほかのユーザー名やロール名と競合しない名前にする
プロファイル リソース制限やパスワード管理に使用するオブジェクトであるプロファイルを指定できる。特に使用しない場合、「DEFAULT」を選択
認証タイプとパスワード 認証タイプに「パスワード」を指定する場合、パスワードの入力は必須
デフォルト表領域 セグメント作成時に表領域を指定されない場合、使用する表領域を設定
一時表領域 ディスクソートなどを行うときに使用する表領域を設定

 デフォルト表領域を設定しても、その表領域に「割り当て制限」が設定されていなければ、領域の割り当てが許可されないため、ユーザーはセグメントを作成できません。

 既存のユーザーがセッションを確立できないようにするには、ユーザー自体を削除するほか、「アカウントのロック」を使用する方法があります。アカウントのロックを使用することで、ユーザーとしては存在しますが、そのユーザーでセッションを確立しようとするとエラーとなります。サンプルスキーマなどはほとんどがアカウントロックされています。

問題

問題1

シードデータベース上のサンプルスキーマの初期状態として正しい説明を選択しなさい。

a.パスワードは設定されておらず、アカウントがロックされている
b.すべてのユーザーで接続が可能
c.アカウントのロック解除すればすぐに接続可能となる
d.アカウントのパスワードを変更すればすぐに接続可能となる

正解:a

解説

 シードデータベースは、DBCA(Database Configuration Assistant)に用意されているデータファイルも含めたテンプレートです。詳細は本連載第2回「はじめてのOracleインストールとデータベース作成」を見直しておいてください。

 シードデータベースで「サンプルスキーマ」をチェックすると、HRユーザーやOEユーザーといったサンプルユーザーが自動作成されます(図2)。

図2 サンプルスキーマの追加(クリックで全体を表示します) 図2 サンプルスキーマの追加(クリックで全体を表示します)

 このユーザーは、デフォルトでは正解aのように、パスワードは設定なし(期限切れ)でアカウントがロックされた状態になっています。

 OEMのDatabase Controlでユーザーを編集するには、「管理」タブ→「セキュリティ」リージョンの「ユーザー」ページを使用します。正解aは、ユーザーページで「アカウントステータス」が「EXPIRED&LOCKED」となっている状態です(図3)。

図3 ユーザーの編集(クリックで全体を表示します) 図3 ユーザーの編集(クリックで全体を表示します)

 選択肢bのように接続可能な状態にするには、データベース作成の最後に表示されるページを使用するか、作成後にアカウントロックを解除してパスワードを設定します。

 選択肢cのようにロック解除だけで接続可能になるのは、アカウントステータスが「LOCKED」だけの状態です。デフォルトではパスワードが期限切れになっているので、ロックを解除しただけでは接続できません。

 選択肢dのようにパスワード設定だけで接続可能になるのは、アカウントステータスが「EXPIRED」だけの状態です。デフォルトではアカウントがロックされているので、パスワードを再設定しただけでは接続できません。

問題2

新規ユーザーを作成するにあたり、必須な属性を2つ選択しなさい。

a.一時表領域
b.ユーザー名
c.デフォルト表領域
d.パスワード
e.プロファイル

正解:b、d

解説

 前回、宿題とした問題です。Database Controlのユーザー作成ページを見ていただくと分かりますが、正解のとおり、ユーザー名とパスワードに「*」が付いていますね。これが必須の属性を表します。

 不正解となる選択肢はデフォルト値があり、任意属性になっています。

選択肢a:ディスクソートなどのときに使用される一時表領域は、データベースレベルでデフォルト一時表領域が設定できます。ユーザー作成時に省略すると、データベースレベルの設定が使用されます。

選択肢c:ユーザーがセグメントを作成するときに表領域を指定しない場合に使用されるデフォルト表領域も、データベースレベルでデフォルト永続表領域が設定できます。ユーザー作成時に省略すると、データベースレベルの設定が使用されます。

選択肢e:サーバのリソース制限やパスワード管理が行えます。ユーザー作成時に省略すると、「DEFAULT」というプロファイルが設定されます。

問題3

次の資料を確認してください。

(クリックで全体を表示します) (クリックで全体を表示します)

このユーザーをOracleデータベース上で処理するときの動作として正しいものを2つ選択してください。

a.このユーザーのパスワードはディレクトリサーバにて認証される
b.このユーザーが表を作成するとき、表領域を指定しなければUSERS表領域に表が作成される
c.DEFAULTプロファイルによってCONNECTロールとRESOURCEロールが付与される
d.最初の接続時にパスワード変更を行う必要がある
e.このユーザーにてデータベースに接続することはできない
f.このユーザーにてディスクが必要なソート処理が行われるとき、TEMP01表領域が使用される

正解:b、f

解説

 資料から分かるのは、正解となる選択肢の内容のみです。

正解b:「デフォルト表領域」フィールドに設定されている表領域は、ユーザーがセグメントを作成するときに表領域を指定しない場合に使用されます。資料の画面から、USERS表領域が設定されていることが確認できます。

正解f:「一時表領域」フィールドに設定されている表領域は、ディスクソートなどのときに使用される表領域を指定します。資料の画面から、TEMP01表領域が設定されていることが確認できます。

 不正解の選択肢の内容も確認してみましょう。

選択肢a:「認証」リストが「パスワード」になっていますので、データベース側でパスワードを設定します。ディレクトリサーバで認証させたい場合は、「グローバル」が選択されている必要があります。

選択肢c:プロファイルは、サーバリソース制限やパスワード管理を行うオブジェクトです。ロールの管理は、「ユーザーの編集」ページの「ロール」タブにて行います。

選択肢d:「期限切れパスワード」にチェックがされていれば、このユーザーの最初の接続時にパスワード変更が必要です。この画面ではチェックがされていませんので、パスワードは有効です。変更の必要はありません。

選択肢e:「ステータス」ラジオボタンが「ロック」になっていれば、このユーザーでの接続はできません。この画面では「ロック解除」が選択されていますので、接続は有効です。

 このような資料を提示された場合は、資料から分かる情報を基に問題を解くようにしましょう。ただし、デフォルト設定があるものはデータベースレベルのデフォルト値などを考える必要があります。注意してくださいね。

宿題

 次回は、今回に引き続きユーザーとセキュリティの管理について確認します。次の宿題を解いておいてください。

問題

CONNECTロールとRESOURCEロールと同じ権限を管理するCON_RESロールを作成します。まずは、CONNECTロールから類似作成を使用してCON_RESロールを作成しました。この後実施するべきことを2つ選択しなさい。

a.CON_RESロールをCONNECTロールに付与する
b.CON_RESロールをRESOURCEロールに付与する
c.RESOURCEロールをCON_RESロールに付与する
d.CONNECTロールに含まれる権限をCON_RESロールに付与する
e.RESOURCEロールに含まれる権限をCON_RESロールに付与する
f.CONNECTロールとRESOURCEロールに含まれていない権限をCON_RESロールから削除する

IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、Oracle関連の資格をテーマとして取り上げています。Bronze SQL 基礎 I、Bronze DBA 10gも近日中に追加予定です。「無料お試し版」もありますので、記事と併せてご覧ください。



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。