mtsmfm blog

SQL マスキングツール Vanir を作った

本番データと同様の分量、分布のデータが欲しいことはよくあるが、 個人情報を含むとそのままコピってくるわけにもいかない。

そこで *** みたいにマスキングする必要があるが、なんかそれっぽいのが見つからなかったのでえいやで作った。

https://github.com/mtsmfm/vanir

名前は某見通す悪魔から。

マスクしたいテーブル名とカラム名の yaml に Go のテンプレート書けばおっけー。

ハッシュ化できるようにしたのは、メアドなどの個人情報を外部キーに使っているような設計がされてしまっている場合にも レコードの紐付けが切れないようにするため (つらい)。

bcrypt で一回限りのソルトを共通で使うような方式にしてみたけれど、ここまでする必要があったのだろうか。 bcrypt の内部メソッド使いたいがためにコピってきてるのがつらい。

Go はほとんど書いたことないので誰か添削を。。。

ほんとは mRuby にしたかったけれど SQL パーサが見あたらなかった。


来週の LT 資料が微塵もできてなくてやばい。