2024年11月19日
マスキングするsql
<div>
<div className="font-bold">名前、パスワード、メールのマスキング</div>
<div className="text-gray-400">
UPDATE your_table SET name = 'masked_' || id, email =
CONCAT( md5(random()::text || id::text), '@example.com' ),
password = md5(random()::text)
</div>
<div className="font-bold">ランダムなUUIDを利用する場合</div>
<div className="text-gray-400">
UPDATE your_table SET name = 'masked_' || id, email =
gen_random_uuid()::text || '@example.com', password =
md5(random()::text) WHERE condition;
</div>
<div className="text-gray-400">
name:
元のidを利用して「masked_1」のような一意な文字列を作成しています。idがない場合はランダムな数値やUUIDを生成する方法も検討できます。
</div>
<div className="text-gray-400">
email:
md5()関数を用いて、一意性を保つハッシュ値を生成し、任意の固定ドメイン(例:
@example.com)と組み合わせてユニークなメールアドレスを生成しています。
</div>
<div className="text-gray-400">
password:
ランダムな値をハッシュ化することで、元の値と無関係なランダムな文字列に置き換えています。
</div>
<div className="text-gray-400">
gen_random_uuid(): 一意なUUIDを生成する関数(pgcrypto拡張が必要)。
CREATE EXTENSION IF NOT EXISTS pgcrypto;で有効化できます。
</div>
</div>