MySQL | テスト環境用にユーザー情報を一括でダミー化するSQL【メール・名前・電話番号】

会員制のウェブサービスやアプリケーションを開発・運用する際、本番環境のデータを使ってテスト環境を構築することはよくあります。

しかし、実在するユーザーの情報(メールアドレス、氏名、電話番号など)をそのまま使ってしまうと、
誤送信や個人情報漏洩といったリスクが生じます。

そこで今回は、MySQLでユーザーの個人情報を一括でダミー化するためのSQLをご紹介します。


想定シナリオ

  • ユーザー情報を保持する users テーブルがある
  • 以下の3フィールドをダミー化したい
    • user_email(メールアドレス)
    • user_name(氏名)
    • user_tel(電話番号)
  • 管理者(ID = 1)は除外したい

ダミー化SQL:メールアドレス・名前・電話番号

UPDATE users
SET
  user_email = CONCAT('example+usr', ID, '@example.com'),
  user_name = CONCAT('テストユーザー', ID),
  user_tel = CONCAT('000-0000-', LPAD(ID, 4, '0'))
WHERE ID <> 1;

各フィールドのダミー化の内容

フィールドマスキング内容
user_emailexample+usr{ID}@example.com の形式に変換
user_nameテストユーザー{ID} の形式に変換
user_tel000-0000-xxxx の形式(IDをゼロ埋めで4桁に)

例:IDが「12」の場合

  • メール:example+usr12@example.com
  • 氏名:テストユーザー12
  • 電話番号:000-0000-0012

注意点

  • このSQLはあくまでテスト・ステージング環境用です。
  • 本番環境で実行しないよう十分に注意してください。
  • 実行前には必ずバックアップを取りましょう。
  • 他にも住所や生年月日などの個人情報がある場合は、同様にダミー化しておくと安全です。

応用:特定のユーザー範囲だけを対象に

WHERE ID BETWEEN 2 AND 1000;

上記のように WHERE 条件を変更すれば、特定の範囲だけを対象にマスキングすることも可能です。


まとめ

テスト環境におけるユーザーデータのダミー化は、開発の安全性を確保するための重要な手段です。
MySQLのシンプルな UPDATE 文を使うだけで、個人情報の保護と誤送信リスクの回避ができます。

これからテスト環境を構築するという方は、ぜひこの方法を活用してみてください。

コメント

タイトルとURLをコピーしました