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

ITパスポート 2009年 春期 62


問題文

所属するグループ及び個人の属性情報によって、人事ファイルへのアクセスをコントロールするシステムがある。人事部グループの属性情報と、そこに所属する4人の個人の属性情報が次の条件の場合、人事ファイルを参照又は更新可能な人数の組合せはどれか。
〔条件〕 (1) 属性情報は3ビットで表される。 (2) 各ビットは、左から順に参照、更新、追加・削除に対応し、1が許可、0が禁止を意味する。 (3) グループの属性情報は、個人の属性情報が登録されていない場合にだけ適用される。 (4) グループと個人の属性情報は次のとおりとする。  人事部グループ:110  Aさん:100 Bさん:110 Cさん:001 Dさん:未登録
ITパスポート 2009年 春期  問62の選択肢の画像

選択肢

(正解)

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

属性情報による人事ファイルのアクセス制御【ITパスポート 解説】

正解の理由

属性情報は3ビットで、左から順に「参照(読む)」「更新(内容を書き換える)」「追加・削除(レコードの追加や削除)」を表します。ビットは 1 が許可、0 が禁止です。条件(3)より、個人の属性情報が登録されている場合はその個人の属性が優先し、未登録の人にはグループの属性が適用されます。
個人ごとの権限を確認すると、
  • Aさん:100 → 参照のみ許可(参照=1、更新=0)
  • Bさん:110 → 参照・更新とも許可(参照=1、更新=1)
  • Cさん:001 → 追加・削除のみ許可(参照=0、更新=0)
  • Dさん:未登録 → グループ(人事部)110 が適用 → 参照・更新とも許可
これより「参照可能な人数」は A,B,D の3人、「更新可能な人数」は B,D の2人です。したがって表の中では (参照3、更新2)が正しい組合せです。

解法ステップ

  1. 「3ビット」の意味を確認する。左から順に参照・更新・追加・削除で、1=許可、0=禁止。
  2. 各人の属性ビットを個別に読み取る。個人が登録されていればその人の属性を使う。未登録ならグループ属性を使う(条件(3))。
  3. 「参照ビット(左端)」が1の人を数える。これが参照可能な人数。
  4. 「更新ビット(中央)」が1の人を数える。これが更新可能な人数。
  5. 出た数と選択肢を照合する。
実際に数えると参照=3、更新=2 になり、選択肢は
簡単なプログラムで確認する場合(参考):
people = {'A':'100','B':'110','C':'001','D':None}
group = '110'
read = update = 0
for v in people.values():
    bits = v if v else group
    if bits[0]=='1': read += 1
    if bits[1]=='1': update += 1
print(read, update)  # 出力: 3 2

選択肢別の誤答解説

  • ア(参照2、更新1):
    参照を2としているのは、Dさんにグループ属性を適用していないか、Cさんを誤って参照可能と見なした誤りです。実際は A,B,D が参照可能で3人になります。
  • イ(参照2、更新2):
    参照が2とされている点が誤りです。参照は A,B,D の3人です。更新だけは B,D の2人で一致しますが、参照人数が合いません。
  • ウ(参照3、更新1):
    参照は正しく3ですが、更新を1としているのは Dさんのグループ属性(更新許可)を見落としているか、Bさんだけを更新可能と誤認している場合です。Dは未登録なのでグループの110が適用され、更新も許可されます。
  • (参照3、更新2):
    上の理由の通り、正しい組合せです。

よくある誤解

  • ビットの順序を逆に読むミス
    「左が参照、中央が更新、右が追加・削除」の順序を取り違えると全ての判定が逆になります。問題文で順序を必ず確認してください。
  • 個人登録とグループ属性の優先関係を誤る
    「グループ属性が常に適用される」と考える人がいますが、条件(3)は「個人が未登録の場合にだけグループが適用」と明確にしています。個人が登録されていれば個人側を使います。
  • 追加・削除(右端のビット)を「更新」と混同する
    追加・削除はレコードの新規作成や削除を指します。更新(既存内容の変更)とは別の権限です。001 を見て「更新できる」と勘違いすることがあります。

補足コラム

この問題は「ビットによる権限表現(ビットマスク)」の基本を問う問題です。実務でもファイルやデータベースの権限をビットやフラグで管理することがあります。ポイントは「どのビットが何を意味するか」と「優先順位(個人とグループなど)」です。
参考として、UNIX系のファイル権限表現(rwx=読み取り・書き込み・実行)も似た考え方です。違いは表現方法や権限の詳細ですが、考え方は共通しています。

FAQ

Q. グループと個人の両方に属性がある場合はどちらを使う?
A. 個人の属性が優先されます。今回の問題でも個人登録がある人は個人属性を使います。
Q. 追加・削除の権限があれば更新もできる?
A. 問題文の定義では別々のビットで管理されています。追加・削除(右端)は「新規作成や削除」であり、更新(中央)が別に必要です。実装によっては別扱いになります。
Q. 未登録とは具体的に?
A. 個人に属性情報が「登録されていない」ことを示します。そういう場合に限り、グループの属性情報が適用されます。

関連キーワード: 属性ビット、アクセス制御、権限管理、ビットマスク、参照権限、更新権限
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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