自分戦略研究所 | 自分戦略研究室 | キャリア実現研究室 | スキル創造研究室 | 生活向上研究室 | 組み込みキャリア研究室 | コミュニティ活動支援室 | エンジニアライフ |
スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
ORACLE MASTER Bronze DBA講座

ORACLE MASTER Bronze DBA講座(8)
Oracleユーザーの権限とロール

有限会社 G.F.インフィニティ (Project - ∞)
2005/12/16

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

 前回に引き続き、ユーザーとセキュリティの管理について学びます。前回「Oracleユーザーを管理する」で、ユーザーの作成と管理を紹介しました。今回はユーザーの権限とロールについて学びましょう。

ORACLE MASTER Bronze DBA講座 各回のインデックス
第1回 Oracleデータベース構造の基本
第2回 はじめてのOracleインストールとデータベース作成
第3回 Oracleデータベースの管理ツールを使う
第4回 Oracleのネットワークを構成する
第5回 Oracleインスタンスを管理する
第6回 Oracleのデータベース記憶域を探る
第7回 Oracleユーザーを管理する
第8回 Oracleユーザーの権限とロール
第9回 Oracleの表の作成とビューの利用
第10回 Oracleのスキーマオブジェクトを活用する
第11回 Oracleのデータを復元する
最終回 Oracleデータベースの自己診断と最適化

理解しておきたいこと

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

  • 権限とロールの付与
  • ロールの作成と管理

2.起動や停止が可能な管理者権限

 データベースの起動や停止を行うために、SYSDBA権限とSYSOPER権限という特別な権限があります。

権限 説明
SYSDBA 起動、停止、データベースの作成、リカバリなどとすべてのデータベース権限
SYSOPER 起動、停止、基本的なリカバリのみ。データディクショナリなどへのアクセスは不可

 どちらの権限もデータベースの起動ができるわけですから、データベースがオープンしていない状態(インスタンスが停止した状態など)でも接続できます。

  問題

問題1

データベースの起動や停止が可能な管理者権限を2つ選択しなさい。

    a.DBA
    b.SYSDBA
    c.SYSOPER
    d.Administrator
    e.SYSMAN

正解:b、c

解説

 データベースの起動や停止には特別な権限が必要です。SYSDBA(正解b)とSYSOPER(正解c)がそれです。

 権限は、Database Controlに接続するときの「接続モード」リストで選択できます(図1)。

図1 Database Controlへの接続リスト

 Database Controlに「Normal」で接続している場合、停止などを行うときには「ホスト資格証明」と「データベース資格証明」の入力が必要です(図2)。

図2 資格証明の入力(クリックで全体を表示します)

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

選択肢a:DBAロールはOracleデータベースに対するすべての権限を持っていますが、データベースの起動と停止は除かれます。DBAロールを持っているだけでは、起動や停止を行うことができません。

選択肢d:Administratorという権限は存在しません。

選択肢e:SYSMANはユーザー名です。権限の名称ではありません。SYSMANは、Enterprise Managerにてデータベースを管理するユーザーとして用意されています。


問題2

インスタンスが停止していても接続できるロールまたはシステム権限を2つ選択しなさい。

    a.CONNECT
    b.CREATE SESSION
    c.SYSDBA
    d.RESOURCE
    e.SYSOPER

正解:c、e

解説

 本質的には問題1と同じです。データベースの起動や停止を行うには、データベースの外部で認証されているユーザーである必要があります。データベースの外部で認証されているのが、SYSDBA(正解c)とSYSOPER(正解e)システム権限です。SYSDBAとSYSOPERの認証は、OSのグループを使って管理(OS認証)またはOracleユーザーにて認証(パスワードファイル認証)します。パスワードファイル認証を使用する場合はシステム権限として付与します(図3)。

図3 システム権限の付与(クリックで全体を表示します)

SQL> connect sys as sysdba
パスワードを入力してください:
アイドル・インスタンスに接続しました。

 「アイドル・インスタンスに接続しました」は、インスタンスが停止している状態を表します。このとき権限のないユーザーで接続すると、「ORA-01034: ORACLE not available」というエラーが発生します。

SQL> connect scott
パスワードを入力してください:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

警告: Oracleにはもう接続されていません。

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

選択肢a:エンドユーザー向けのロールです。セッションを確立したり表を作成したりする権限が含まれていますが、データベースがオープンしていなければ接続できません。

選択肢b:データベースにセッションを確立するためのシステム権限です。データベースがオープンしていなければ接続できません。

選択肢d:開発者向けのロールです。プロシージャと呼ばれるプログラムなどの作成はできますが、このロールだけではデータベース接続できません。

3.システム権限とオブジェクト権限

 ユーザーがデータベースで何の操作を行えるかは、システム権限で管理されます。表を作成する権限(CREATE TABLE権限)やユーザーを作成する権限(CREATE USER権限)などはシステム権限です。一方、ほかのスキーマ・オブジェクトへのアクセスを許可するのはオブジェクト権限です。スキーマ・オブジェクトの所有者はすべての権限を所有していますが、SELECTやDMLなどはオブジェクト権限を付与することで可能になります。


  問題

問題1

Database Controlを使用してオブジェクト権限を付与します。オブジェクトタイプとして「表」を選択してオブジェクト権限を付与する場合に必要な情報を選択しなさい。

    a.オブジェクト権限を付与されるユーザー
    b.表の名前
    c.表の名前とオブジェクト権限
    d.表の名前とオブジェクト権限を付与されるユーザー

正解:c

解説

 オブジェクト権限は、対象となるオブジェクトタイプによって付与される権限内容が変わります。例えばこの問題で使用している「表」タイプであれば、次のオブジェクト権限が使用できます。

  • SELECT:行の参照(SELECT文)を許可
  • INSERT:行の挿入(INSERT文)を許可
  • UPDATE:行の更新(UPDATE文)を許可
  • DELETE:行の削除(DELETE文)を許可
  • ALTER:表の変更(ALTER TABLE文)を許可
  • INDEX:索引の作成を許可
  • REFERENCES:この表の主キーまたは一意キーを参照する外部キーの作成を許可

 Database Controlを使用してオブジェクト権限を付与する場合、対象ユーザーの編集ページで「オブジェクト権限」タブを選択し、「オブジェクトタイプの選択」リストからオブジェクトタイプを選択します(図4)。

図4 オブジェクトタイプの選択(クリックで全体を表示します)

 続いて「表オブジェクトの選択」で表の名前を選択し、「使用可能な権限」リストからオブジェクト権限を選択します(図5)。

図5 オブジェクト権限の選択(クリックで全体を表示します)

 選択肢a選択肢dにある「オブジェクト権限を付与されるユーザー」は、最初に対象となるOracleユーザーを選択するので、画面内では選択できません。

 実際にDatabase Controlを使用してみれば、どのような情報が必要かが分かります。試験対策として、Database Controlでの操作をひととおり行っておくことをお勧めします。

4.ロール

 システム権限やオブジェクト権限を直接ユーザーに付与するのでは、管理が煩雑になってしまいます。そこで権限をグループ化することを検討します。権限をグループ化するためにはロールを作成し、ロールに権限を付与します。ロールをユーザーに付与することで、ロール単位での権限管理ができます。

 OEMでユーザーを作成すると、デフォルトで「CONNECT」ロールが付与されます。CONNECTロールには次の権限が含まれています(図6)。

図6 CONNECTロール(クリックで全体を表示します)

権限 説明
ALTER SESSION セッションのパラメータを変更できる
CREATE CLUSTER クラスタセグメントを作成できる
CREATE DATABASE LINK データベースリンクを作成できる
CREATE SEQUENCE 順序オブジェクトを作成できる
CREATE SESSION セッションを確立できる
CREATE SYNONYM シノニム(別名オブジェクト)を作成できる
CREATE TABLE 表を作成できる
CREATE VIEW ビューを作成できる

 なお、ロールを別のロールに付与することもできます。管理しやすい形のロールを作成するとよいでしょう。


  問題

問題1

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ロールから削除する

正解:c、e

解説

 前回、宿題とした問題です。ロールは権限をグループ化するための入れ物です。ロール内にはシステム権限、オブジェクト権限だけでなく、ほかのロールを入れることもできます。そのロールが付与されたユーザーは、それらすべての権限を使用した処理ができるようになります。

 今回の問題では、CONNECTロールとRESOURCEロールに含まれている権限を持つ別のロールCON_RESロールを作成します。

 一から作成するのであれば、(1)空のロール作成、(2)権限をロールに入れる(権限の付与)で完了します。しかし今回は「類似作成」を使用しているので、CONNECTロールに含まれていた権限はすでにCON_RESロールに含まれています。残るRESOURCEロール内の権限を含めればよいので、正解eのようにRESOURCEロールに含まれる権限をCON_RESロールに付与すれば完了します。

 もっと簡単な方法は、正解cのように、RESOURCEロール自体をCON_RESロールに付与することです。ロールにロールを含めることもできるということを覚えておきましょう。

 ほかの選択肢の不正解の理由を解説しましょう。

選択肢a選択肢b:CON_RESロールを作成するのですから、CON_RESロールをほかのロールに付与するというのはおかしいですね。

選択肢d選択肢f:CONNECTロールを基に類似作成を使用したので、CON_RESロールには、CONNECTロールに含まれていた権限が入っています。選択肢dの作業は必要ありませんね。正解cか正解dを行ったのであれば余計な権限は含まれていませんから、選択肢fの作業も不要です。

まとめ

 前回と今回の2回にわたって、ユーザーとセキュリティの管理について解説しました。次の内容をチェックしておきましょう。

  • システムユーザーの位置付け(SYS、SYSTEM、SYSMAN、DBSNMPなど)
  • アカウントロックとパスワード期限切れ
  • Database Controlによるユーザー作成ページの各種情報(必須属性はユーザー名とパスワードなど)
  • データベースの起動や停止ができるのは、SYSDBAとSYSOPER権限
  • Database Controlによるシステム権限、オブジェクト権限、ロールの付与方法

宿題

 次回は、「スキーマ・オブジェクトの管理」を確認します。次の宿題を解いておいてください。

問題

列に一意な値のみが格納されるように制限できる制約を2つ選択しなさい。

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


【10月1日】 Windows Server 2008対応資格、MCTSの問題を配信開始

↓↓↓以下の試験の模擬問題を出題↓↓↓
「Windows Server 2008 Active Directory, Configuring」(70-640)
「Windows Server 2008 Network Infrastructure, Configuring」(70-642)

@IT Special 注目企業
10年後、コンサルタントとして生き残る道が『ここ』にあった!  
『経験=価値』を確立するための、将来が見えるキャリアパス“3つのポイント”
メーカー系企業とはまた違う面白さがココにある!   ――今、組み込みソフトウェア
専業ベンダがものづくりエンジニアの“腕磨きの場”として注目される理由とは?
本当の意味での「工事進行基準」を満たせ!   次世代プロジェクトマネージャの
必須スキルとは? 〜第11回:エンジニア・キャリア進化論〜マイナビ転職
@IT Special ラーニング
ありそうでなかった新資格が満を持して登場! UNIXになかなか手を出せなかった
エンジニアに打ってつけの入門資格“サン認定UNIX(R)(Solaris)アソシエイツ”
Javaプログラミング、新人研修でどう教える? ――『研修内容に妥協はしません』
“ドリル演習”と“ワークショップ”を取り入れた、独自カリキュラムに自信があります!
現役ビジネスパーソンが語る『社会人と大学院生の兼業生活』
“将来は独立も視野に入れ、総合力を生かした企画プロデュースをしていきたい!”
エンジニア向け簡単お仕事検索 必見!
以下の条件を設定するだけで、希望のお仕事を簡単に探すことができます。
ご希望地域
職種 IT・技術系
詳細
このボタンを押した後はマイナビ派遣の検索結果ページへリンクします  
関連キーワード

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード


スキルアップに役立つサービス
ITトレメ 1日1問、模擬試験問題をメールで届けます
ラーニングカレンダー ITスキル研修4000件、最新情報の検索できます

キャリアアップに役立つサービス

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)

ゼネラルスポンサー

・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ

- PR -

@IT Special 注目企業
将来へのヒントと実現できる採用企業紹介
『経験=価値』の確立と“3つのポイント”


組み込みソフトウェア専業ベンダが
“腕磨きの場”として今、注目される理由


本当の意味での工事進行基準を満たせ!
〜エンジニア・キャリア進化論(第11回)〜



COMPANY CLIP -PR-
「デザイン」をキーワードに企業のコミュニケ
ーションを促進 (株)ビジネス・アーキテクツ


企業選びで後悔したくない人の
IT業界「転職眼ヂカラ」養成講座


→ インデックス

お勧め求人情報

キャリアアップ 〜JOB@IT

@IT Special ラーニング
広がる!エンジニアとしての可能性――
ありそうでなかった待望の新資格が登場

2009年度の新人研修では、Javaがトレンド!
『でも、Javaってどう教えたらいいの?』

@IT自分戦略研究所に掲載された、
大学院の記事を見て入学を決意しました。



【ITトレメ・今日の問題】
基本情報技術者試験
16進数0.75と等しいものはどれか。<14年秋FE問1>

<a href="/scenter/ittrain/fe2009/105-002/105-002c.html" target="FE2009">選択肢の式を見る</a>

@IT自分戦略研究所会議室
OSI参照モデル第六層について
ネットでのモラルや道徳について
IT トレメのテーマについての要望
sqliteについて(初心者です)
SaaSエンジニア?

→ 会議室トップ