GRANTとは?ぐらんと
GRANT は、データベースの表やビュー(必要な列や行だけを見せる仮想的な表)に対する操作の権限を、利用者に与える SQL 文。基本の形は「GRANT 権限 ON 表名 TO 利用者」で、権限には SELECT(読む)・INSERT(行を追加する)・UPDATE(書き換える)・DELETE(行を消す)などを指定する。与えた権限を取り消すのは REVOKE 文(REVOKE 権限 ON 表名 FROM 利用者)。権限を受けた利用者が他の人にもその権限を渡せるようにするには、末尾に WITH GRANT OPTION を付ける。SQL の分類では、表を作る CREATE などの DDL(データ定義言語)や、行を操作する SELECT などの DML(データ操作言語)ではなく、DCL(データ制御言語)に入る。
最終更新:2026-10-10
基本情報を最短で暗記・合格する →背景
1 つのデータベースを、入力担当・集計担当・閲覧だけの人など立場の違う大勢が使うと、全員が何でもできる状態では、誤操作や不正で大事なデータが消されたり書き換えられたりする。そこで「誰が・どの表に・何をしてよいか」をデータベース自身に覚えさせ、許されていない操作を DBMS(データベース管理システム)が拒否する仕組みが必要になった。
具体例
研究室で PostgreSQL に「実験結果」表を作ったとする。データを集計するだけのゼミ生には「GRANT SELECT ON 実験結果 TO 集計係」(実験結果表を読む権限を集計係に与える)とすれば、読むことはできても、誤って行を消すことはできない。測定値を追記する担当には「GRANT SELECT, INSERT ON 実験結果 TO 測定係」(読む権限と行を追加する権限を与える)とする。担当を外れたら「REVOKE INSERT ON 実験結果 FROM 測定係」で追加の権限だけを取り消す。
試験での引っ掛け
GRANT は権限を与える文で、取り消すのは REVOKE。「GRANT で利用者を作成する」「GRANT で表をロックする」は誤り。また GRANT は DCL で、DDL・DML と取り違える選択肢が出やすい。表の一部の列だけを見せたいときは、その列だけのビューを作り、元の表ではなくビューに SELECT 権限を与えるのが定番の答え方になる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。