■ はじめに
SQLで個人情報保護のためのマスキングを実装する 可能性がでてきたので、予習。 なお、実行環境は、PostgreSQL。
目次
【1】電話番号をマスキング 【2】Emailをマスキング
【1】電話番号をマスキング
-- 出力結果:01-2345-**** SELECT RPAD(SUBSTRING('01-2345-6789', 1, 8), LENGTH('01-2345-6789'), '*') ; -- <メモ> -- SUBSTRING('01-2345-6789', 1, 8) => '01-2345-' -- LENGTH('01-2345-6789') => 12 -- で、残りをRPADで「*」で埋める
※補足:使用した文字列関数
* 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2022/10/01/000000
【2】Emailをマスキング
-- 『【1】電話番号をマスキング』の応用でできる -- *********@gmail.com select LPAD(substring('test-test@gmail.com', strpos('test-test@gmail.com','@'), length('test-test@gmail.com')), LENGTH('test-test@gmail.com'), '*')
-- strpos => charindex select LPAD(substring('test-test@gmail.com', charindex('@', 'test-test@gmail.com'), length('test-test@gmail.com')), LENGTH('test-test@gmail.com'), '*')
https://docs.snowflake.com/ja/sql-reference/functions/charindex.html
参考文献
https://hit.hateblo.jp/entry/2016/04/30/020149
関連記事
Snowflake ~ 文字列操作関連 ~
https://dk521123.hatenablog.com/entry/2022/10/01/000000
Snowflake ~ Dynamic masking ~
https://dk521123.hatenablog.com/entry/2022/10/07/102337