PREPARATION
受験対策

Silverの例題解説「運用管理 - 基本的な運用管理作業(テーブル単位の権限)」

今回は、Silverの「運用管理 - 基本的な運用管理作業(テーブル単位の権限)」からの出題です。

例題

1.90

GRANT/REVOKEによる権限付与について正しい説明を2つ選びなさい。

  1. テーブルの所有者は、SELECT権限をREVOKEされてもテーブルからデータをSELECTすることができる。

  2. スーパーユーザは、SELECT権限をREVOKEされてもテーブルからデータをSELECTすることができる。

  3. SELECTとUPDATEなど複数の権限を付与するときに、1つのGRANT文で複数の権限をまとめて指定することができる。

  4. テーブルを更新するにはテーブルのデータを読む必要があるので、UPDATE権限をGRANTするだけで、自動的にSELECT権限もGRANTされる。

  5. あるテーブルについてINSERT権限がGRANTされているが、SELECT権限がGRANTされていないという場合、他のユーザがINSERTしたデータはSELECTできないが、自分がINSERTしたデータはSELECTできる。

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

解答と解説

データベースでは、テーブルあるいはテーブルの列についてのSELECT、INSERT、UPDATE、DELETEなどの権限をユーザごとに細かく制御することができますが、デフォルトではテーブルの作成者(所有者)のみがすべての権限を所持しており、他のユーザは一切の権限を所持していません。
アクセスを許可するにはGRANT、許可したアクセス権限を取り消すにはREVOKEを使います。
PostgreSQLでは、テーブルの所有者からアクセス権限をREVOKEすることができます(データベースの種類によっては、所有者の権限はREVOKEできません)。SELECT権限をREVOKEされたら、所有者でもそのテーブルのデータをSELECTすることはできません。ただし、所有者はGRANTコマンドを実行することができるので、自分に対して GRANT SELECT を実行すれば、再び SELECT できるようになります。
スーパーユーザは特殊なユーザで、アクセス権限がなくても、テーブルにアクセスすることができます。スーパーユーザから SELECT 権限を REVOKE するコマンド自体は成功しますが、スーパーユーザはそれでもそのテーブルから SELECT を実行することができます。
複数の権限をまとめて付与するには、権限をカンマで区切って 
GRANT SELECT, UPDATE ON table_name TO user_name;
のようにします。GRANT可能なすべての権限を一括して付与するには、
GRANT ALL ON table_name TO user_name;
のようにすることも可能です。
データを更新する典型的なSQL文は
UPDATE table_name SET column_name1 = value1 WHERE column_name2 = value2;
のような形式ですが、この場合、単にテーブル(あるいは更新対象列)に対するUPDATE権限だけでなく、WHERE句で参照する列についてのSELECT権限も必要となります。しかし、GRANTでUPDATEを許可しても、自動的に他の権限が付与されることはなく、SELECT権限も明示的に付与しなければなりません。なお、テーブルの全行を更新するのであれば、WHERE句を付けずに、
UPDATE table_name SET column_name1 = value;
のようにすると、UPDATE権限だけあればテーブルを更新できます。もちろん、valueとして、テーブルの列を参照するような式を記述するなら、SELECT権限が必要になります。
GRANT/REVOKEで付与する、あるいは取り消す権限はテーブル、あるいはテーブルの列が対象で、行単位の権限はありません。また、各行についてどのユーザが作成したか、という情報は存在しません。自分がINSERTした行であっても、テーブルのSELECT権限がなければSELECTすることはできません。

したがって正解はBとCです。

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

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

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

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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

LPI-Japan
Platinum Sponsors