最終更新日:2026年7月18日
fe fe-technology security database access-control
まず結論
最小権限の原則とは、利用者やプログラムに、処理に必要な最低限の権限だけを与える考え方です。
データベースを検索して結果を表示するだけのアプリケーションなら、必要なのは参照権限だけです。
| アプリケーションの処理 | 必要な権限 |
|---|---|
| 検索・表示 | 参照権限 |
| 登録・変更・削除 | 更新権限 |
| テーブル全体の管理 | 管理者権限 |
試験では、次の一文を判断軸にします。
検索・表示だけなら参照権限。使わない更新・削除権限は与えない。
直感的な説明
最小権限の原則は、仕事に必要な鍵だけを渡す考え方です。
資料を読むだけの担当者に、書き換えや廃棄までできる鍵を渡す必要はありません。
資料を読む
→ 閲覧用の鍵だけ
資料を追加・変更する
→ 編集用の鍵も必要
すべて管理する
→ 管理者用の鍵が必要
データベースでも同じです。
検索アプリケーションの目的が、利用者情報を検索して画面へ表示することだけなら、データを変更する権限は不要です。
検索する
+
表示する
↓
データを読むだけ
↓
参照権限
定義・仕組み
最小権限の原則は、英語で Principle of Least Privilege といいます。
利用者、アプリケーション、プロセスなどに対し、業務や処理を実行するために必要な範囲だけ権限を与えます。
参照権限
データベースのレコードを読み出すための権限です。
SQLでは、主に SELECT に対応します。
SELECT 利用者名, メールアドレス
FROM 利用者
WHERE 利用者ID = 'A001';
この処理はデータを検索するだけで、内容を書き換えません。
読む
検索する
表示する
→ 参照権限
更新権限
レコードの登録、変更、削除を行う権限です。
SQLでは、主に次の命令に対応します。
INSERT
→ 登録
UPDATE
→ 変更
DELETE
→ 削除
例えば、利用者情報を変更するアプリケーションでは更新権限が必要です。
UPDATE 利用者
SET メールアドレス = 'new@example.com'
WHERE 利用者ID = 'A001';
管理者権限
参照や更新に加え、テーブルの作成・変更・削除、権限設定など、より広い操作を行える権限です。
データを読む
データを書き換える
テーブルを管理する
権限を設定する
→ 管理者権限
管理者権限は便利ですが、通常のアプリケーションへ安易に与えると、事故や攻撃が起きたときの被害が大きくなります。
科目Aでどう出る?
科目Aでは、アプリケーションの目的を読んで、どの権限を与えるべきか選ぶ問題が出ます。
判断するときは、問題文に書かれた動詞を確認します。
検索する・表示する
→ 参照権限
登録する・追加する
→ 更新権限
変更する・修正する
→ 更新権限
削除する
→ 更新権限
テーブルや権限を管理する
→ 管理者権限
典型的な切り分け
検索結果を表示するだけのアプリケーションについて考えます。
| 選択肢 | 判断 |
|---|---|
| 管理者権限 | 権限が強すぎる |
| 更新権限 | 登録・変更・削除は不要 |
| 参照権限 | 必要な操作と一致する |
| 参照権限と更新権限 | 不要な更新権限を含む |
正しいのは、参照権限だけです。
「できる」ではなく「必要最小限」で選ぶ
管理者権限を与えても、検索処理自体は実行できます。
しかし、問題で問われているのは、単に動作するかではなく、セキュリティ管理上適切かです。
処理できる
≠
セキュリティ上適切
試験では、必要な権限を含む選択肢ではなく、不要な権限を含まない選択肢を選びます。
どんな場面で使う?
検索専用アプリケーション
利用者情報や商品情報を検索して表示するアプリケーションには、参照権限だけを与えます。
検索画面
↓
SELECTだけ実行
↓
参照権限だけ付与
登録・変更機能を持つアプリケーション
利用者登録や住所変更などを行うアプリケーションでは、必要なテーブルと操作に限って更新権限を付与します。
利用者登録
→ INSERT
住所変更
→ UPDATE
更新できる対象も、必要なテーブルや列へ絞ることが重要です。
バッチ処理
定期的にデータを集計するバッチ処理は、集計結果を読み出すだけなら参照権限で足ります。
結果を別のテーブルへ保存する場合は、保存先に対する登録権限が必要です。
集計だけ
→ 参照権限
集計結果を保存
→ 参照権限+必要な登録権限
管理ツール
テーブルの構造変更や権限設定を行う管理ツールには、管理者権限が必要になる場合があります。
ただし、通常利用するアプリケーションとはアカウントを分けるのが基本です。
通常アプリ
→ 必要最小限の権限
管理ツール
→ 管理作業に必要な権限
よくある誤解・混同
参照権限と更新権限を両方与えた方が便利?
便利に見えても、不要な権限を与えることになります。
現在必要な操作
→ 検索・表示だけ
将来必要になるかもしれない操作
→ 今は付与しない
将来、更新機能が追加された時点で、必要な権限を追加します。
画面に表示するのは「更新」ではない?
画面への表示は、データベースの内容を書き換える操作ではありません。
データベースから読み出す
→ 参照
画面に表示する
→ アプリケーション側の処理
したがって、検索結果を表示するだけなら参照権限で十分です。
管理者権限ならすべてできるので正しい?
実行できるかどうかだけなら、管理者権限でも処理できます。
しかし、権限が強すぎるため、最小権限の原則に反します。
必要な権限
→ 参照だけ
付与した権限
→ 参照・登録・変更・削除・管理
結論
→ 過剰な権限
権限が強いと何が危険?
アプリケーションに脆弱性があった場合、攻撃者はそのアプリケーションが持つ権限を悪用できる可能性があります。
参照権限だけ
→ 情報を読まれる危険
更新権限もある
→ 情報を書き換えられる危険
削除権限もある
→ 情報を消される危険
権限を絞ることで、問題が起きたときの影響範囲を小さくできます。
認証と認可の違い
権限の問題では、認証と認可も混同しやすいです。
認証
→ 誰なのかを確認する
認可
→ 何をしてよいか決める
データベースの参照権限や更新権限を設定することは、認可に当たります。
まとめ(試験直前用)
- 最小権限の原則は、必要最低限の権限だけを与える考え方
- 検索・表示だけなら参照権限
- 登録・変更・削除を行う場合に更新権限が必要
- 管理者権限は通常のアプリケーションには強すぎる
- 必要な権限が含まれるだけでなく、不要な権限を含まないことを確認する
試験直前には、次の順で考えます。
何をするアプリか確認
↓
必要な操作を特定
↓
不要な権限を除外
↓
最小の権限を選ぶ
検索・表示だけなら参照権限。使わない更新・削除権限は与えない。