GRANT・REVOKE(権限管理)とは?ぐらんと・りぼーく
GRANT・REVOKE(権限管理)とは、SQLのデータ制御言語(DCL)に属し、利用者やロールへ操作権限を与えるのがGRANT、取り上げるのがREVOKEである。表・列・ビューの単位でSELECTやUPDATEなどを個別に指定でき、WITH GRANT OPTIONを付けて与えると、受け取った側がさらに第三者へ同じ権限を渡せる。最小権限の原則をデータベース上で実装する手段になる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
データベースは多数の利用者と業務アプリが同じ実体を共有するため、全員に同じ権限を配ると、アプリの不具合や一つの認証情報の漏えいがそのまま全件の閲覧・破壊につながる。誰が何をできるかをアプリ側の実装ではなくデータベース側に宣言として持たせれば、経路によらず制限が効く。SQLインジェクションが成立したときに被害がどこまで広がるかも、接続に使っているアカウントの権限で決まる。
具体例
PostgreSQLでは参照専用のロールを作ってSELECTだけを与え、分析担当をそのロールに所属させる運用が一般的である。氏名やメールアドレスを伏せたビューを別に用意してそちらにだけ権限を出せば、実表を触らせずに集計ができる。Webアプリの接続アカウントにはDROPやALTERを付けず、注入攻撃が通っても表の破壊までは至らない構成にする。
試験での引っ掛け
WITH GRANT OPTIONで転々と渡った権限は、大元をREVOKEすると連鎖して失われるため、想定していない利用者が突然アクセスできなくなる。ビュー経由で与えた権限は、ビューの所有者が実表への権限を持っていることが前提になる点も見落としやすい。GRANTが決めるのは認可であって、本人確認である認証とは層が違う。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。