基本情報技術者 2009年 秋期 午前(科目A) 問43
問題文
利用者情報を管理するデータベース(利用者データベース)がある。利用者データベースを検索し、検索結果を表示するアプリケーションに与えるデータベースのアクセス権限として、セキュリティ管理上適切なものはどれか。ここで、権限の範囲は次のとおりとする。
〔権限の範囲〕
参照権限:利用者データベースのレコードの参照が可能
更新権限:利用者データベースへのレコードの登録変更、削除が可能
管理者権限:利用者データベースのテーブルの参照、登録、変更、削除が可能
選択肢
ア:管理者権限
イ:更新権限
ウ:参照権限(正解)
エ:参照権限と更新権限
利用者データベースの検索・表示アプリへのアクセス権限の選択【午前2 解説】
要点まとめ
- 結論: 検索結果を表示するだけのアプリには参照権限のみを付与し、更新や管理の権限は与えず最小権限原則を守ることが重要です。
- 根拠: 参照権限はレコードの読み取りのみ可能であり、更新や削除、テーブル構造変更ができないため誤操作や悪用による被害リスクを抑制できます。
- 差がつくポイント: 実運用ではアプリ用の読み取り専用DBアカウントと接続ごとの権限制御、監査ログでアクセスを記録することが得点差につながります。
正解の理由
正解は ウ(参照権限)です。問題のアプリケーションの役割は「検索して検索結果を表示する」ことであり、データの登録・変更・削除やテーブル定義の変更を行わないため、最小権限原則に基づき読み取り専用の参照権限だけを与えるのが適切です。更新や管理の権限を与えてしまうと、誤操作や脆弱性を突かれた場合にデータ改ざんやテーブル消失といった重大な被害につながります。
よくある誤解
- 「表示なら更新権限も必要」という誤解:表示だけなら読み取りで十分で、更新は不要かつ危険です。
- 「管理者権限は便利だから付ける」はNG:便利さと安全は別であり管理者権限は極めて高リスクです。
解法ステップ
- 問題文でアプリの役割を正確に把握する(ここでは検索と表示のみ)。
- 権限の定義を確認する(参照=読み取り、更新=登録変更削除、管理者=テーブル操作含む)。
- 最小権限原則を適用し、アプリに必要な最小限の権限を決定する。
- 必要な操作が読み取りのみであれば参照権限を選択する。
- 運用面でさらに読み取り専用アカウント、ログ記録、監査を設定する。
選択肢別の誤答解説
- ア: 管理者権限
管理者権限はテーブルの参照・登録・変更・削除が可能で、今回の表示用途では過剰であり誤操作や内部不正、脆弱性悪用時の被害範囲が大きくなります。 - イ: 更新権限
更新権限はレコードの登録・変更・削除が可能で、表示のみのアプリには不要であり、データ改ざんや消失のリスクを高めます。 - ウ: 参照権限(正解)
表示目的に必要かつ十分な権限であり、最小権限原則に合致します。読み取りのみで更新や構造変更は不可のため安全性が高いです。 - エ: 参照権限と更新権限
参照に加えて更新権限を付与するのは過剰であり、不要な操作権限を与えることでリスクが増加します。表示だけなら更新権限は付けるべきではありません。
補足コラム
- 最小権限原則(Least Privilege)はセキュリティの基本で、各アプリやユーザには必要最小限の権限のみを付与します。
- 実装時は読み取り専用のDBユーザを作成し、アプリの接続文字列にはそのアカウントを使用します。権限付与はロールベースで管理すると運用が楽になります。
- さらに堅牢にするため、パラメタライズドクエリやプリペアドステートメントでSQLインジェクションを防ぎ、アクセスログや監査を有効化して不正利用の早期検出につなげます。
FAQ
Q: アプリが将来検索結果の一部を更新する機能を追加する可能性がある場合はどうするべきですか?
A: その場合でもまずは機能追加時に権限付与の設計を行い、可能なら機能ごとに別サービスや別アカウントを用意して最小権限を保つべきです。
A: その場合でもまずは機能追加時に権限付与の設計を行い、可能なら機能ごとに別サービスや別アカウントを用意して最小権限を保つべきです。
Q: 表示だけでも管理者権限が必要になる例はありますか?
A: ほとんどありません。管理者権限はテーブル定義変更など特殊な運用時のみ必要で、通常の表示用途に付与する理由はありません。
A: ほとんどありません。管理者権限はテーブル定義変更など特殊な運用時のみ必要で、通常の表示用途に付与する理由はありません。
関連キーワード: 最小権限原則、参照権限、更新権限、管理者権限、読み取り専用アカウント、ロールベースアクセス制御、監査ログ、SQLインジェクション対策、DB接続管理、権限設計

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

