アクセス権のSQL制御とは?あくせすけんのえすきゅーえるせいぎょ
アクセス権のSQL制御とは、データベース上の権限をSQLで与え、また外す仕組み。GRANTで表やビューへのSELECT・INSERT・UPDATE・DELETEなどを利用者やロールへ付与し、REVOKEで取り消す。ALL PRIVILEGESは対象への全権限を指し、WITH GRANT OPTIONを添えると、受け取った側がその権限をさらに他者へ配れるようになる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
利用者がアプリ1つだった時代と違い、いまは業務アプリ・バッチ・BIツール・保守要員が同じデータベースを触る。全員が管理者権限で入れる状態では、内部不正も誤操作も止められない。最小権限を「表と操作の単位」で機械的に強制するために、権限そのものをSQL文の対象に据えた。試験ではビューと組み合わせた列・行単位の制限まで含めて問われる。
具体例
PostgreSQLやOracle Databaseでは、担当者ごとに権限を書かずロールへ束ねて付与するのが定石で、異動時はロールの付け替えだけで済む。見せたい列だけを含むビューを作り、そのビューにSELECTを与えれば、給与表のうち氏名と所属だけを参照させて金額を隠す、といった制御ができる。
試験での引っ掛け
WITH GRANT OPTIONを「より強い操作まで許すもの」と読むのが誤り。増えるのは操作の種類ではなく、その権限を他者へ再付与する能力で、管理者が把握しない経路で権限が広がっていく。付与元をREVOKEすると連鎖して失われる実装がある点や、DBA向けのシステム権限と表単位のオブジェクト権限を混同しやすい点も出題される。
関連用語
出た過去問
出典:平成29年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
次のSQL文をA表の所有者が発行した場合を説明したものはどれか。 GRANT ALL PRIVILEGES ON A TO B WITH GRANT OPTIO…
正解:利用者Bに対して,A表に関するSELECT権限,UPDATE権限,INSERT権限,DELETE権限などの全ての権限,及びそれらの付与権を付与する。
要点:ALL PRIVILEGESと付与権をまとめて与えるSQL
ALL PRIVILEGESはその表に対する全ての権限をまとめて与える指定で、WITH GRANT OPTIONを付けると、受け取った利用者が同じ権限を他者へ再付与できるようになります。したがって全権限とその付与権の両方が与えられます。
出典:平成30年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
次のSQL文の実行結果の説明に関する記述のうち,適切なものはどれか。 CREATE VIEW 東京取引先 AS SELECT * FROM 取引先 WHERE …
正解:利用者“8823”は,実表“取引先”の所在地が‘東京’の行を参照できるようになる。
要点:ビューへの権限付与で参照範囲を限定できる
ビューは実表から条件で絞り込んだ仮想的な表で、そのビューに参照権限を与えれば、利用者は実表のうち条件に合う行だけを参照できます。実表全体の権限を与えずに公開範囲を限定できる点が、ビューを使ったアクセス制御の利点です。
出典:令和5年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
次のSQL文をA表の所有者が発行したときの,利用者BへのA表に関する権限の付与を説明したものはどれか。 GRANT ALL PRIVILEGES ON A TO…
正解:SELECT権限,UPDATE権限,INSERT権限,DELETE権限などの全ての権限,及びそれらの付与権を付与する。
要点:WITH GRANT OPTIONは受け取った権限を他者へ再付与する権限も与える
ALL PRIVILEGESはSELECT・UPDATE・INSERT・DELETEなど表に対する全ての権限をまとめて付与する指定で、WITH GRANT OPTIONを付けると、受け取った利用者がその権限をさらに第三者へ付与する権限(付与権)も併せて得る。よってアが正しい。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。