本文へ移動
Develop Tools
← 使い方ガイドへ戻る

SQLのテーブル名・カラム名・値をマスキングする方法

SQLには顧客名などの値だけでなく、テーブル名やカラム名にも業務内容が現れます。構文と識別子の対応関係を残しつつ、どこまで隠すべきかを整理します。

SQLを切り出し、値と識別子をマスキングし、構文を確認する流れ
SQLを切り出し、値と識別子をマスキングし、構文を確認する流れ

SQLで漏れやすい情報

WHERE句の文字列やINSERT文の値は目立ちますが、customer_contractやemployee_salaryのような識別子からも業務内容を推測できます。接続先名、スキーマ名、コメント、ストアドプロシージャ名も確認対象です。

  • 顧客番号、氏名、住所、メールアドレスなどの値
  • 社内システム名を含むスキーマ名やテーブル名
  • 業務ルールが分かるカラム名、定数、コメント
  • 接続文字列、DBリンク、ホスト名、ファイルパス

構造を壊さずに置き換える手順

  1. 調査に必要なSQL文だけをコピーし、接続設定や実行ログを分離します。
  2. テーブル、カラム、値、コメントのうち、どの分類をマスキングするか決めます。
  3. 同じ識別子には同じ置換名を使い、JOINやサブクエリの対応関係を保ちます。
  4. 対象DBを選び、引用符、関数、ページング構文などのDB固有表現が残っているか確認します。

共有前に確認するポイント

確認項目見るポイント
構文括弧、引用符、終端記号が欠けていないか
対応関係別名、JOIN条件、CTE参照が同じ置換名になっているか
日付、ID、LIKE条件、IN句に実データが残っていないか
コメント担当者名、障害番号、顧客名が残っていないか

マスキング後のSQLは本番DBで実行せず、共有用コピーとして扱います。動作確認が必要な場合は、テストデータを使う隔離環境で行ってください。

具体例:顧客検索SQLを調査用に共有する

顧客検索SQLでは、テーブル名とカラム名だけで業務内容が推測され、WHERE句には顧客番号や期間、IN句には複数の実データが残ります。コメントやスキーマ名も含めて確認します。

文字列をすべて同じ値へ置換するとJOIN条件や重複値の関係が失われます。同じ元値には同じマスキング値を割り当て、異なる値は区別できる状態を保ちます。

  1. 対象DBを選び、SQL全文を入力します。
  2. テーブル、カラム、識別子、値、コメントの対象範囲を決めます。
  3. マスキングを実行し、引用符、プレースホルダー、DB固有関数が壊れていないか確認します。
  4. 結果をコピーする前に、メールアドレス、電話番号、日付、IDを再検索します。

実行計画の調査ではテーブル構造や値の分布が必要な場合があります。隠す範囲と再現性のバランスを調査担当者と決めてください。

よくある質問

SQLの値だけをマスキングすれば十分ですか?
案件名を含むスキーマ名、テーブル名、カラム名、コメントから機密情報が推測される場合があります。共有目的に応じて識別子も対象にします。
マスキング後のSQLをデータベースで実行できますか?
構文の保持を目的としますが、実在しないテーブル名や値へ置換されるため、そのままの実行は想定しないでください。

ブラウザで試す

入力内容はブラウザ内で処理されます。元データを残したうえで、結果を確認してから保存・共有してください。

SQLマスキングツールを開く