戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2009年 秋期 76


問題文

データベースの内容を、利用者の業務の機密性に応じて限定的に表示するようにしたい。その手法として、最も適切なものはどれか。

選択肢

アクセス権を、データと利用者の組合せに対して設定する。(正解)
利用者ごとに限定されたデータベースの複製を配布する。
利用者ごとに専用のデータ項目(列)を設ける。
レコードごとにパスワードを設定して保護する。

🔒 解説は解答すると表示されます

データベースの機密性を考慮した表示制限【ITパスポート 解説】

正解の理由

理由:利用者ごと、かつデータごとに表示・非表示を細かく制御できる方法だからです。これは「誰が(利用者)」「どれを(データ)」という組合せ単位で許可を決めます。実務ではアクセス制御(アクセス権)を用いて、最小権限の原則(必要最小限の権限だけ与える)を実現します。
用語補足:
  • アクセス権:ある利用者があるデータを「見る」「編集する」などの操作を行う許可のこと。
  • データベース:情報を整理して保存する仕組み。顧客リストや在庫表などを管理します。
  • レコード:データベースの一行分の情報(例:顧客1人分の情報)。
  • 列(データ項目):レコード内の項目(例:氏名、電話番号)。

解法ステップ

  1. 要件確認:どの利用者が、どのデータを見て良いかを明確にする。業務上の機密レベルで分類する(例:公開、社内秘、部署限定など)。
  2. アクセスモデル選定:ACL(アクセス制御リスト)、RBAC(役割に基づくアクセス制御)、ABAC(属性に基づくアクセス制御)などから適切な方式を選ぶ。
    • ACL(Access Control List:誰にどのデータを許可するかを個別に管理)
    • RBAC(Role-Based Access Control:役割ごとに権限を設定し、利用者に役割を割り当てる)
    • ABAC(Attribute-Based Access Control:利用者属性や環境条件で柔軟に制御)
  3. 実装方法の決定:データベース側での行レベル制御(Row-Level Security)やビュー(表示専用の仮想テーブル)を使うか、アプリケーション層で制御するか決める。
  4. 実装・テスト:権限設定を反映して、利用者ごとに期待どおり見える/見えないを確認する。
  5. 運用・監査:権限変更の手順を作り、アクセスログを記録して不正アクセスを検出する。

選択肢別の誤答解説

  • ア: アクセス権を、データと利用者の組合せに対して設定する。
    → 正解。細かい組合せでの制御が可能で、現実の業務要件に合う。ACLや行レベル制御で実装できる。
  • イ: 利用者ごとに限定されたデータベースの複製を配布する。
    → 不適切。複製を多数配布すると、データの整合性(最新状態を保つこと)が難しくなり、管理負荷と漏洩リスクが増える。業務での運用コストが非常に高くなる。
  • ウ: 利用者ごとに専用のデータ項目(列)を設ける。
    → 不適切。利用者数が多い場合、列が膨大になりデータ設計として破綻します。列は項目(氏名や住所)を表すもので、利用者ごとの可視性管理には向きません。
  • エ: レコードごとにパスワードを設定して保護する。
    → 不適切で非現実的。レコード単位でパスワード管理をすると運用が煩雑になり、ユーザー体験も悪くなります。パスワードは人に紐づく認証手段であり、アクセス制御(権限)とは別に考えるのが一般的です。

よくある誤解

  1. 「データを別々に分ければ安全」
    • 誤解点:データを物理的に分割・複製する(選択肢イ)は一見安全だが、更新漏れや複製先での漏洩リスクが増える。通常は単一の信頼できるデータ保存とアクセス制御で管理する方が安全で効率的です。
  2. 「パスワードで守れば十分」
    • 誤解点:認証(誰がアクセスするかの確認)と認可(何ができるかの許可)は別の仕組みです。パスワードだけでは、認可の細かい制御(例えば同じユーザでも特定の部署データだけ見せない)はできません。
  3. 「列を作れば利用者ごとに分けられる」
    • 誤解点:列は属性(氏名、年齢など)を表すためのもので、利用者ごとに列を増やす設計はスケーラビリティも保守性も悪くなります。

補足コラム

  • 行レベル制御(Row-Level Security:RLS)
    RLSはデータベースの機能で、クエリ実行時に「その利用者が行(レコード)を見てよいか」を自動で判定します。たとえば「部署が一致するレコードだけ表示する」といったポリシーを簡潔に実装できます。主要なDB(PostgreSQL、SQL Server、Oracleなど)でサポートされています。
  • ログと監査の重要性
    アクセス権を設定しても、誰がいつどのデータにアクセスしたかのログを残しておくことが重要です。不正アクセスの検出や権限誤設定の発見に役立ちます。
  • 権限設計のコツ(実務で覚えておくこと)
    1. まず業務単位で役割(ロール)を定め、RBACで基本の権限を付与する。
    2. 特殊ケースはACLやABACで例外的に対応する。
    3. 変更申請フロー、定期的な権限見直しを必ず設ける。

FAQ

Q1: ACLとRBAC、どちらを選べばよいですか?
A1: 小規模で個別に細かく管理したいならACL、大企業や人数が多く役割が明確ならRBACがおすすめです。実際はRBACを基本にし、必要に応じてACL/ABACで細かい例外を処理することが多いです。
Q2: データベースだけでなくアプリ側で制御するべきですか?
A2: 両方が望ましいです。データベース側で行レベルや列レベルの制御を入れ、アプリ側でもユーザーインターフェースやビジネスロジックで二重チェックすると安全性が高まります。
Q3: 「最小権限の原則」って何ですか?
A3: 必要最小限の権限だけを与える考え方です。誤用や内部不正のリスクを減らす基本的なセキュリティ方針です。
Q4: レコードにパスワードを付けるのは完全にダメですか?
A4: 完全に無意味ではありませんが、実務では管理負荷とセキュリティ上の問題が大きく、推奨されません。認証と認可を適切に分けて設計する方が現実的です。

関連キーワード: データベース、アクセス制御、アクセス権、最小権限、行レベルセキュリティ、ACL、RBAC、ABAC、データ分類、権限設計
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について