2024年11月19日

マスキングするsql

<div> <div className="font-bold">名前、パスワード、メールのマスキング</div> <div className="text-gray-400"> UPDATE your_table SET name = &apos;masked_&apos; || id, email = CONCAT( md5(random()::text || id::text), &apos;@example.com&apos; ), password = md5(random()::text) </div> <div className="font-bold">ランダムなUUIDを利用する場合</div> <div className="text-gray-400"> UPDATE your_table SET name = &apos;masked_&apos; || id, email = gen_random_uuid()::text || &apos;@example.com&apos;, 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>