ホーム > データベーススペシャリスト試験 > 2009年
データベーススペシャリスト試験 2009年 午前2 問07
次の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」は「東京取引先」ビューを通じて所在地が「東京」の取引先情報を参照可能になります。
よくある誤解
ビュー作成者が自動的に権限を持たないと思い込む誤解や、ビューの権限が実表の削除に影響されないと誤解することがあります。
解法ステップ
- SQL文のCREATE VIEW部分で、どのようなビューが作成されているか確認する。
- WHERE句で抽出条件(所在地=東京)を理解する。
- GRANT文でどのユーザにどの権限が付与されているかを把握する。
- ビューに対するSELECT権限付与が、ユーザの参照可能範囲を決定することを理解する。
- 選択肢の内容とSQL文の動作を照合し、正しい説明を選ぶ。
選択肢別の誤答解説
- ア: 正解。ユーザ「8823」は「東京取引先」ビューのSELECT権限を得ているため、所在地が「東京」の行を参照可能。
- イ: ビューの作成者は通常、ビュー作成時に権限を持つため、この記述は誤り。
- ウ: 実表「取引先」が削除されるとビューも機能しなくなるため、権限が残るとは限らない。
- エ: ビューは行数制限を設けるものではなく、8823行まで記録できるという説明は誤り。
補足コラム
ビューは実表の特定条件に基づく仮想テーブルであり、実表のデータを直接保持しません。権限管理はビュー単位で行われ、実表の権限とは独立して設定可能です。ビューの利点は、ユーザに必要なデータだけを見せることでセキュリティを強化できる点にあります。
FAQ
Q: ビューに対する権限付与は実表の権限に影響しますか?
A: いいえ。ビューの権限は実表の権限とは独立して設定されますが、実表が削除されるとビューは機能しなくなります。
A: いいえ。ビューの権限は実表の権限とは独立して設定されますが、実表が削除されるとビューは機能しなくなります。
Q: ビュー作成者は自動的に権限を持ちますか?
A: 通常は持ちますが、権限は明示的に管理されるため、状況によって異なる場合があります。
A: 通常は持ちますが、権限は明示的に管理されるため、状況によって異なる場合があります。
関連キーワード: SQL, ビュー, GRANT, SELECT権限, データベースセキュリティ, 仮想テーブル, WHERE句, 権限管理