データベーススペシャリスト試験 2009年 午前207


次のSQL文の実行結果の説明として, 適切なものはどれか。  
 CREATE VIEW 東京取引先 AS
  SELECT * FROM 取引先
  WHERE 取引先.所在地 = '東京'
 GRANT SELECT
  ON 東京取引先 TO “8823”
8823 のユーザは、所在地が “東京” の行を参照できるようになる。(正解)
このビューの作成者は, このビューに対する SELECT 権限をもたない。
実表“取引先” が削除されても、このビューに対するユーザの権限は残る。
導出表“東京取引先”には, 8823行までを記録できる。

解説

次のSQL文の実行結果の説明 +【午前2 解説】

要点まとめ

  • 結論:ユーザ「8823」は、所在地が「東京」の取引先データを参照可能になる。
  • 根拠:ビュー「東京取引先」は「取引先」テーブルの所在地が「東京」の行を抽出し、SELECT権限を「8823」に付与しているため。
  • 差がつくポイント:ビューの役割とGRANT文の対象範囲を正確に理解し、実表ではなくビューに対する権限付与である点を押さえること。

正解の理由

選択肢アが正解です。SQL文は「取引先」テーブルから所在地が「東京」の行だけを抽出するビュー「東京取引先」を作成し、そのビューに対してユーザ「8823」にSELECT権限を付与しています。これにより、「8823」は「東京取引先」ビューを通じて所在地が「東京」の取引先情報を参照可能になります。

よくある誤解

ビュー作成者が自動的に権限を持たないと思い込む誤解や、ビューの権限が実表の削除に影響されないと誤解することがあります。

解法ステップ

  1. SQL文のCREATE VIEW部分で、どのようなビューが作成されているか確認する。
  2. WHERE句で抽出条件(所在地=東京)を理解する。
  3. GRANT文でどのユーザにどの権限が付与されているかを把握する。
  4. ビューに対するSELECT権限付与が、ユーザの参照可能範囲を決定することを理解する。
  5. 選択肢の内容とSQL文の動作を照合し、正しい説明を選ぶ。

選択肢別の誤答解説

  • ア: 正解。ユーザ「8823」は「東京取引先」ビューのSELECT権限を得ているため、所在地が「東京」の行を参照可能。
  • イ: ビューの作成者は通常、ビュー作成時に権限を持つため、この記述は誤り。
  • ウ: 実表「取引先」が削除されるとビューも機能しなくなるため、権限が残るとは限らない。
  • エ: ビューは行数制限を設けるものではなく、8823行まで記録できるという説明は誤り。

補足コラム

ビューは実表の特定条件に基づく仮想テーブルであり、実表のデータを直接保持しません。権限管理はビュー単位で行われ、実表の権限とは独立して設定可能です。ビューの利点は、ユーザに必要なデータだけを見せることでセキュリティを強化できる点にあります。

FAQ

Q: ビューに対する権限付与は実表の権限に影響しますか?
A: いいえ。ビューの権限は実表の権限とは独立して設定されますが、実表が削除されるとビューは機能しなくなります。
Q: ビュー作成者は自動的に権限を持ちますか?
A: 通常は持ちますが、権限は明示的に管理されるため、状況によって異なる場合があります。

関連キーワード: SQL, ビュー, GRANT, SELECT権限, データベースセキュリティ, 仮想テーブル, WHERE句, 権限管理
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ