論理削除と個人情報保護

消費者向けのWebサイトの構築をしていると必ずといっていいほど会員管理機能が含まれているわけだが、この会員情報の取り扱いがなかなか厄介だなぁと思う今日この頃。


単純なケースでは次のような形の会員テーブルを作ることが多いと思われるが、この中の削除フラグというやつが問題の種となる。

会員ID*1, メールアドレス, 氏名, ..., 登録日時, 更新日時, 削除フラグ

削除フラグというのはいわゆる論理削除に利用するフラグで、例えば会員が退会した場合などに本当にデータを削除するのではなく、「このデータは削除されました」という印をつけて削除されたと見なすためのものだ。
物理削除しない理由は様々だと思うが、例えば何かあったときに問合せに利用するとか、再登録かどうかを判断するとか、あるいは折角収集したデータなので何かのために取っておきたいという邪な思惑もあるかもしれない。


で、何が問題なのかというと――もはや明らかだが――削除したはずなのに実際にはデータ残っているということが問題となる。
バグやセキュリティホールがなければその会員データはデータベースの奥底でひっそりと眠っていることになるわけだが、実際にはSQLインジェクションやサーバ侵入などによって露になってしまう可能性がある。
「退会してデータも削除されたはずなのに!」ということになってしまうわけだ。


この問題を考慮した会員情報の管理方法は、ざっと考えたところ三点ほどが頭に浮かんだ。

1.システム的に必要な情報のみを残して個人情報は削除する

例えば会員ID、年齢、性別、退会理由、入会日時、退会日時のみを残して氏名やメールアドレスなどは削除する。


この場合、個人情報は残らないが、いつどんな人が入会してどんな理由で退会したのかといった統計情報は保持することができる。

2.一定期間の経過後に物理削除する

例えば退会後1ヶ月間は論理削除としてデータを残しておくが、1ヶ月が経過した段階で物理削除を行い本当にデータを抹消する。


この場合、1ヶ月間は復帰や緊急連絡などの措置を取ることが出来る。デスクトップのゴミ箱と同じような感覚だ。
但し退会後も1ヶ月間はデータが残る旨をプライバシーポリシーや利用規約で明示する必要はある。

3.論理削除は考慮せず物理削除を行う

裏で残すということはせずに退会処理が完了した時点でデータを抹消してしまう。


再入会のチェックや統計などは行わず、特にデータを残しておく必要がないのであれば、すっぱりと削除してしまうのも一つの手だと思う。




以上がぱっと思い浮かんだ管理方法だが、今のご時勢に合ったもっといいパターンはないのだろうか。
特に今困っているというわけではないのだが、周りや過去を振り返ってみると、削除フラグつきで永久に残るようなケースが結構見受けられるので、このままじゃマズイよなぁと考えてしまうのであった。

*1:ここでいう会員IDはユーザが任意に指定できるものではなく、連番などの無意味な値とする