PREPARATION
受験対策

Silverの例題解説
「S2.5 基本的な運用管理作業」

今回は、Silverの「S2 運用管理 - S2.5 基本的な運用管理作業」からの出題です。

例題

2.28

ユーザ foo が以下の操作を行った。

CREATE TABLE aaa (id INTEGER, val TEXT);
GRANT SELECT ON aaa TO public;
GRANT UPDATE,INSERT ON aaa TO user1;
REVOKE SELECT ON aaa FROM user2;

このとき、以下の記述から誤っているものを2つ選びなさい。
なお、user1, user2は既存の一般ユーザであり、ユーザ foo の作成するテーブルについてのデフォルトアクセス権限は、デフォルトのまま変更されていないものとする。


  1. ユーザ foo はテーブル aaa に対して DELETE 文を実行できる。
  2. ユーザ user1 はテーブル aaa に対して UPDATE 文を実行できる。

  3. ユーザ user1 はテーブル aaa に対して DELETE 文を実行できる。

  4. ユーザ user2 はテーブル aaa に対して SELECT 文を実行できる。

  5. ユーザ user2 はテーブル aaa に対して UPDATE 文を実行できる。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2013年3月21日

解答と解説

デフォルトの設定では、テーブルなど新規に作成されるオブジェクトについては、オブジェクトの作成者がその所有者となり、すべての権限を有します。一方で、所有者以外のユーザは、そのオブジェクトに対する権限を一切、持ちませんから、個別に権限を与える必要があります。
オブジェクト権限の付与はGRANT文で行います。付与した権限を剥奪するときはREVOKE文を使います。GRANT(あるいはREVOKE)の対象として個別のユーザを指定することもできますが、ユーザ名としてpublicを使うと、全ユーザに対して権限の付与(あるいはpublicに対して付与した権限の剥奪)を行うことができます。
例題の一連の操作では、ユーザfooがテーブルaaaを作成した後、publicに対してSELECT権限をGRANT(付与)し、user1に対してUPDATEとINSERTの権限をGRANTしています。最後にuser2からSELECTの権限をREVOKE(剥奪)しています。
ユーザfooはテーブルaaaを作成した時点で、すべての権限を持っています。REVOKE文を使って自分自身の権限を制限することも可能ですが、例題の操作では何も変更していないのでDELETEを実行することができます。
user1はUPDATEをGRANTされているので実行できますが、DELETEはGRANTされていませんから実行できません。
user2は個別には何の権限もGRANTされていませんが、publicに対してSELECTがGRANTされているので、SELECTは実行できます。例題ではuser2からSELECTをREVOKEされていますが、これはuser2に個別に付与されたGRANTに対するものなので、publicに対するGRANTには影響を及ぼしません。実際には、user2にSELECTがGRANTされていないので、このREVOKE文は何の効果もありません(エラーにもなりません)。UPDATEはGRANTされていないので実行できません。

間違っているものを選ぶ問題なので、正解はCとEです。

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

LPI-Japan
Platinum Sponsors