情報処理安全確保支援士試験 令和5年春期午前Ⅱ GRANT ALL
出典:令和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につなげるために
科目Bでは、データベースのアクセス制御について、誰がどの表に何をできるのか、さらにその権限を他者へ付与できるのかが問われることがあります。GRANT文では、付与される操作権限と、付与権の有無を分けて読み取るようにしましょう。※DB関連試験向け
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権限なども付与されます。