仕事に効くコンピュータサイエンス
情報は一箇所に — データベース読了目安 10分

誰が今それを触っているか — ロックと編集権限

共有の見積書ファイルを開いたら、自分が数分前に直した内容が跡形もなく消えていた、という経験はないでしょうか。誰かが同時に開いて保存し、あなたの変更が上書きされてしまったのかもしれません。悪気がある人は誰もいないのに、書いた内容が跡形もなく消えるのは理不尽に感じるものです。このページでは、複数人が同じ情報を同時に触るときに事故を防ぐ、「ロックと編集権限」という考え方を見ていきます。

CS概念の直感

ロックとは、ある情報を誰かが編集している間、他の人が同時に書き換えられないようにする仕組みのことです。図書館の一冊しかない本を、二人が同時に借りようとしたら混乱が起きます。そこで、一人が借りている間は他の人が借りられないようにする貸出の仕組みがあります。データベースにおけるロックも同じ発想です。ある記録を誰かが更新している間は、他の人がその記録を同時に更新できないようにしておく。これにより、片方の変更がもう片方の変更で上書きされて消える、という事故を防ぎます。

ロックには大きく分けて二つの強さがあります。一つは「読むことだけを許し、書き換えは一人だけに限る」という緩やかなロックです。複数人が同時に内容を確認することはできますが、実際に書き換えられるのは、ロックを取得した一人だけです。もう一つは「読むことすら他の人にはさせない」という強いロックです。処理が終わるまで、他の誰にも中身を見せないという厳格な制御です。どちらを使うかは、情報の性質と、事故が起きたときの影響の大きさによって使い分けます。

編集権限は、ロックと似ていますが少し違う考え方です。ロックが「今この瞬間、誰が書き換え中か」を管理するのに対して、編集権限は「そもそも誰がこの情報を書き換えてよいか」を、役割に応じてあらかじめ決めておく仕組みです。誰でも書き換えられる状態にしておくと、悪意がなくても、権限のない人が誤って重要な情報を書き換えてしまう事故が起きます。権限を分けておけば、そもそも触れない領域が生まれるため、うっかりミスの入り込む余地そのものを減らせます。ロックが「時間軸での衝突」を防ぐ仕組みだとすれば、編集権限は「役割による衝突」を防ぐ仕組みだと整理できます。

この二つはしばしば組み合わせて使われます。編集権限によって「そもそも書き換えてよい人」を絞り込んだ上で、その絞り込まれた人たちの中でも、同時に一人しか書き換えられないようロックをかける。権限だけでは「同じ権限を持つ二人が同時に触る」事故は防げませんし、ロックだけでは「権限のない人がそもそも触れてしまう」事故は防げません。二つの仕組みは役割が異なるため、片方だけでは不十分な場面が多いのです。仕事の場面でも、この二段構えの発想はそのまま応用できます。

仕事の言葉に翻訳すると

仕事の場面でのロックとは、「今この資料を編集中です」ということを、他の人にも分かるようにしておくことです。共有ファイルを開いたときに「誰々が編集中」と表示される仕組みは、まさにロックの考え方を体現したものです。そうした機能がない環境でも、「編集する前に一声かける」「編集中はファイル名に印をつける」といった、簡易的な合図を運用ルールとして決めておくだけで、同時編集による上書き事故はかなり防げます。

編集権限の翻訳は、「誰が何を直せるかを役割で決めておく」ことです。経理の帳簿は経理担当だけが直せる、人事情報は人事担当だけが直せる、といった線引きを最初から決めておけば、誰かが善意で手を加えたつもりが、実は権限外の書き換えだった、という事故を防げます。

権限の線引きを考えるときに役立つのが、「見てよい」と「直してよい」を分けて考えるという整理です。帳簿を見ることは他部署の担当者にとっても有益な場合がありますが、直せる人は経理担当者だけに絞る、という設計はよく使われます。この整理は、部署をまたいだ資料ほど重要になります。「見る」と「直す」を同じ扱いにしてしまうと、情報を広く共有したいのに直せる人まで広げてしまったり、逆に直せる人を絞りたいのに見ることまで制限してしまったりと、本来は別々に考えるべき二つの要求がぶつかってしまいます。仕事の場面でも、共有の範囲と編集の範囲は別々に設計するとよいでしょう。

具体的な場面(1) 共有見積書の同時編集

複数の営業担当が同じ見積書のテンプレートを共有していると、二人が同時に別の案件用に書き換えてしまい、片方の変更がもう片方に上書きされて消えることがあります。案件ごとにファイルを複製してから編集する、あるいは編集中は「使用中」であることが分かるよう名前を変えておく、といった簡単な工夫だけで、この種の事故はほとんど防げます。「複製してから使う」というひと手間は、正規化の章で見た「事実の置き場所を一つにする」考え方と、一見矛盾するように見えるかもしれません。しかし、ここで複製しているのはテンプレートという「型」であり、案件ごとの見積内容という「事実」は複製後の一枚に一つずつ確定するため、矛盾はありません。

具体的な場面(2) 議事録の編集権限

会議の議事録を、参加者全員が自由に書き換えられる状態にしていると、発言していない内容が書き加えられたり、重要な決定事項が誤って削除されたりする事故が起こり得ます。議事録の確定版を書き換えられるのは、議事進行役か記録担当者だけに限定し、他の参加者はコメントや指摘を別の欄に書く、という役割分担にしておけば、確定した内容がいつの間にか書き換わっているという不安を減らせます。

具体的な場面(3) 人事・給与情報へのアクセス

人事評価や給与に関わる情報は、誰でも閲覧・編集できる状態にしておくと、機密性の面でも正確性の面でも問題が生じます。閲覧できる人と編集できる人を役割ごとに分け、編集できるのは直属の上長と人事担当者に限る、といった線引きが必要です。これは単なる情報漏えい対策ではなく、誤って他人の評価欄を書き換えてしまうといった、単純な事故を防ぐ意味も持っています。

具体的な場面(4) 予算管理表の一斉編集

部署ごとの予算申請を一枚の共有表にまとめて管理していると、月末や期末など特定の時期に複数部署が一斉に書き込みに来て、互いの入力が上書きされたり、集計式が壊れたりすることがあります。これは編集権限の問題というより、ロックの発想が欠けていることが原因です。部署ごとに入力できる範囲を分け、自分の部署の欄だけを編集できるようにしておけば、他部署の入力を誤って上書きする事故は起きません。表全体をひとまとめの一枚として扱うのではなく、「誰がどの範囲を触ってよいか」を欄単位で分けておくことが、この場面での実務的な解決になります。

落とし穴

ロックのいちばんの落とし穴は、「ロックしたまま放置される」ことです。誰かが編集中の印をつけたまま離席し、そのまま長時間放置されると、他の人はいつまでも編集に取りかかれません。図書館の本を借りたまま返却を忘れているのと同じ状態です。編集が終わったら速やかに印を外す、あるいは一定時間操作がなければ自動的に編集中の状態を解除する、といった工夫がなければ、ロックはかえって仕事を止める原因になります。特に、システムの機能に頼らず「編集中」の付箋やファイル名の変更といった人手による合図に頼っている場合、外し忘れは起きやすくなります。編集が終わったら合図を外すことまでを、ひとまとまりの作業として習慣にしておく必要があります。

編集権限についての落とし穴は、権限を絞りすぎて、必要な人まで動けなくしてしまうことです。すべての変更に上長の承認を必須にすると、承認待ちの案件が積み上がり、業務全体の動きが遅くなります。権限は「事故を防ぐために必要な最小限」に絞るべきであり、「念のため厳しくしておく」という発想で広げすぎると、本来の目的である安全性よりも、停滞のコストの方が大きくなることがあります。どの操作にどれだけの慎重さが必要かを見極め、影響の小さい変更まで一律に厳格な承認を求めない、という調整が実務では求められます。例えば、金額に関わる変更は上長の承認を必須にする一方で、連絡先の誤字修正のような影響の小さい変更は、気づいた人がその場で直せるようにしておく、といった強弱のつけ方が考えられます。すべてを同じ重さで扱おうとせず、影響の大きさに応じて慎重さの度合いを変える、という視点が権限設計の基本になります。

もう一つ見落とされがちなのが、「誰が編集できるか」を決めても、それが実際に運用されているかを定期的に確認しない、という落とし穴です。異動や退職があった後も古い権限が残ったままになっていると、本来アクセスできないはずの人が情報を触れる状態が続いてしまいます。権限の設定は一度決めて終わりではなく、人の異動に合わせて見直し続けることで初めて機能し続けます。

見直しのタイミングを個別に覚えておくのは負担が大きいため、「異動や退職の手続きの中に、権限の見直しを組み込んでおく」のが現実的な対策です。人事異動の手続き自体をひとまとまりとして扱う、というのは前のページで見た考え方ですが、そのまとまりの中に「関係するシステムやファイルの権限確認」という一項目を加えておけば、見直し漏れそのものが起きにくくなります。個人の注意力に頼るのではなく、手続きの型の中に組み込んでしまうことが、長く運用を続けるための工夫です。

持ち帰り

  • ロックは「時間軸での衝突」、編集権限は「役割による衝突」を防ぐ仕組み
  • 編集中の合図を決めるだけでも、同時編集による上書き事故は防げる
  • 権限は絞りすぎても緩めすぎても問題が起き、異動のたびに見直す必要がある
  • 「見てよい」と「直してよい」は別々に設計する
  • ロックと編集権限は組み合わせて初めて衝突を防ぎ切れる

やってみる

複数人で共有しているファイルを一つ選び、「今誰が編集していいのか」が一目で分かる工夫を一つ、その場で決めてみてください。決めたルールは口頭だけで済ませず、ファイルの説明欄などに一言残しておくと、後から加わる人にも伝わります。小さな合図一つで防げる事故は多く、仕組みを大きくしなくても効果はすぐに表れます。