GRANT ALL|情報処理安全確保支援士 令和5年 春期午前Ⅱ試験 問21
出典:令和5年春期 午前Ⅱ 問21
分野:データベース / データ操作
次のSQL文をA表の所有者が発行したときの,利用者BへのA表に関する権限の付与を説明したものはどれか。
GRANT ALL PRIVILEGES ON A TO B WITH GRANT OPTION
GRANT ALL PRIVILEGES ON A TO B WITH GRANT OPTION
- ア:SELECT権限,UPDATE権限,INSERT権限,DELETE権限などの全ての権限,及びそれらの付与権を付与する。
- イ:SELECT権限,UPDATE権限,INSERT権限,DELETE権限などの全ての権限を付与するが,それらの付与権は付与しない。
- ウ:SELECT権限,UPDATE権限,INSERT権限,DELETE権限は付与しないが,それらの付与権だけを付与する。
- エ:SELECT権限及びSELECT権限の付与権を付与するが,UPDATE権限,INSERT権限,DELETE権限,及びそれらの付与権は付与しない。
TSUNAGARU-ADVICE
まず押さえたいこと
GRANT文は、表などのデータベースオブジェクトに対する権限を利用者に付与するためのSQLです。ALL PRIVILEGESは、SELECT、UPDATE、INSERT、DELETEなどの権限をまとめて付与する指定です。
迷ったときの判断軸
WITH GRANT OPTIONが付いている場合、付与された権限を利用者Bがさらに別の利用者へ付与できるようになります。したがって、このSQL文では、全ての権限と、それらを他者へ付与する権限がBに与えられると判断できます。
科目Bにつなげるために
GRANT文の構文そのものは、支援士試験の科目Bで中心的に問われる可能性は高くありません。科目Aでは、操作権限そのものと、その権限をさらに他者へ付与できる権限を区別しておきましょう。科目B対策では、最小権限・不要な権限の削除・データベースアカウントの権限管理・SQLインジェクション発生時の被害範囲など、アクセス制御をセキュリティの観点から扱う論点を優先しましょう。
GRANT文は、表などに対する権限を利用者に付与するSQL文です。
ALL PRIVILEGESは、対象の表に関するSELECT権限・UPDATE権限・INSERT権限・DELETE権限などの全ての権限を付与することを表します。
また、WITH GRANT OPTIONが付いているため、利用者Bは付与された権限を、さらに他の利用者へ付与することもできます。
したがって、アが適切です。
❌他選択肢が誤りの理由イ:SELECT権限,UPDATE権限,INSERT権限,DELETE権限などの全ての権限を付与するが,それらの付与権は付与しない。
⇒WITH GRANT OPTIONが指定されているため、利用者Bには付与された権限を他の利用者へ付与する権限も与えられます。付与権を付与しない説明ではありません。
ウ:SELECT権限,UPDATE権限,INSERT権限,DELETE権限は付与しないが,それらの付与権だけを付与する。
⇒ALL PRIVILEGESが指定されているため、表Aに関する各種権限そのものが付与されます。付与権だけを単独で与える指定ではありません。
エ:SELECT権限及びSELECT権限の付与権を付与するが,UPDATE権限,INSERT権限,DELETE権限,及びそれらの付与権は付与しない。
⇒SELECT権限だけを付与する場合は、GRANT SELECT ON A TO Bのように指定します。このSQL文ではALL PRIVILEGESが指定されているため、SELECT権限だけでなく、UPDATE権限・INSERT権限・DELETE権限なども付与されます。