SQLの実行結果|情報処理安全確保支援士 平成30年 秋期午前Ⅱ試験 問21

出典:平成30年秋期 午前Ⅱ 問21 分野:データベース / データ操作
次のSQL文の実行結果の説明に関する記述のうち,適切なものはどれか。 SQLの実行結果
  • ア:このビューには,8823行までを記録できる。
  • イ:このビューの作成者は,このビューに対するSELECT権限をもたない。
  • ウ:実表"取引先"が削除されても,このビューに対する利用者の権限は残る。
  • エ:利用者"8823"は,実表"取引先"の所在地が'東京'の行を参照できるようになる。
解説

このSQL文では、実表「取引先」から所在地が「東京」である行だけを抽出するビュー「東京取引先」を作成しています。

続くGRANT文によって、利用者「8823」に対し、このビューを参照するSELECT権限を付与しています。そのため、利用者「8823」は、実表「取引先」のうち所在地が「東京」である行を、ビューを通じて参照できます。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:このビューには,8823行までを記録できる。
⇒「8823」は行数ではなく、SELECT権限を付与する利用者の識別子です。また、ビューは通常、実表から抽出した結果を仮想的な表として示すものであり、独自に行を記録するものではありません。
イ:このビューの作成者は,このビューに対するSELECT権限をもたない。
⇒ビューの作成者は、ビューを作成するために実表への必要な権限をもち、通常は作成したビューを利用できます。GRANT文は、作成者の権限を失わせるものではなく、利用者「8823」に権限を追加するものです。
ウ:実表"取引先"が削除されても,このビューに対する利用者の権限は残る。
⇒ビューは実表「取引先」を参照して定義されています。実表が削除されるとビューは参照先を失い、正常に利用できなくなります。そのため、利用可能なビューに対する権限がそのまま有効に残るとはいえません。
TSUNAGARU-ADVICE

まず押さえたいこと

このSQLでは、実表「取引先」から所在地が「東京」の行だけを取り出すビュー「東京取引先」を作成し、そのビューに対するSELECT権限を利用者「8823」に付与しています。したがって、利用者「8823」は、所在地が「東京」の取引先だけを参照できるようになります。

迷ったときの判断軸

「8823」は行数ではなく利用者名です。また、ビューの作成者は通常そのビューに対する権限をもちます。実表が削除されれば、その実表に依存するビューは利用できなくなるため、権限だけが意味をもって残るとは考えません。この問題では、CREATE VIEWで参照範囲を絞り、GRANT SELECTで参照権限を与えていると判断しましょう。

科目Bにつなげるために

科目Bでは、ビューを使ったアクセス制御、実表とビューの関係、GRANTによる権限付与が問われることがあります。実表全体を直接見せるのではなく、必要な行や列だけを含むビューを作成して権限を与えることで、最小権限の原則に沿ったデータ参照制御を実現できる点を押さえましょう。

※DB関連試験向け。