★『postgre用データベースのマスクSQL作成.xls』つくってる。
★『postgre用データベースのマスクSQL作成.xls』つくってる。
postgre用データベースのマスキングツール(個人情報保護法対応)です。
Pマーク、ISMSのためのセキュリティ強化対策として作成しました。DBデータにマスクをかけて、重要な情報は表示させないようにします。
■マスク方法:文字の種類は変えない(チェックエラーにならない)ということを主眼にしてます。
項目内要を2文字めから1文字おきに置換する ・' '、'ー'、' 'は変換しない。 ・全角数字項目は"9" ・全角"A"から"Z"は"X" ・全角"a"から"z"は"x" ・全角カタカナ項目は"ア" ・全角ひらがな項目は"あ" ・半角カタカナ項目は"ア" ・上記以外の全角は"X" ・半角数字項目は"9" ・半角"A"から"Z"は"X" ・半角"a"から"z"は"x" ・半角"-",".","@"は変換しない ・上記以外の半角は"X" nullはnullを戻す
■SQL例:(zz_mask4item()関数作成済み
update t_usr set tanknjsei = zz_mask4item(tanknjsei) ,tanknjmei = zz_mask4item(tanknjmei) ,tansei = zz_mask4item(tansei) ,tanmei = zz_mask4item(tanmei) ,mailadrs = zz_mask4item(mailadrs);
■結果例:
網坂 一太郎 アミザカ イチタロウ i-amizaka@kazpgm.xxx.jp ★=>こんな風にマスク 網X 一X郎 アアザア イアタアウ i-axixaxa@kxzxgx.xxx.xp
■zz_mask4item()関数 <−postgre用です。<=EUC_JP用です。UTF-8用とかSJIS用とかはまだ作っていません。
-- Function: zz_mask4item(text) -- For EUC-JP !! http://kazpgm.ddo.jp/ NewBSD -- DROP FUNCTION zz_mask4item(text); CREATE OR REPLACE FUNCTION zz_mask4item(text) RETURNS text AS $BODY$ DECLARE strItem ALIAS FOR $1; str TEXT; strsub TEXT; i integer; BEGIN if strItem is null then return null; end if; str := ''; strsub := ''; for i in 1..length(strItem) loop if mod(i,2) = 1 then str := str || substr(strItem,i,1); else strsub = substr(strItem,i,1); if strsub >= '0' AND strsub <= '9' then str := str || '9'; elseif strsub >= 'A' AND strsub <= 'Z' then str := str || 'X'; elseif strsub >= 'a' AND strsub <= 'z' then str := str || 'x'; elseif strsub >= 'ァ' AND strsub <= 'ヶ' then str := str || 'ア'; elseif strsub >= 'ぁ' AND strsub <= 'ん' then str := str || 'あ'; elseif strsub = ' ' OR strsub = 'ー' then str := str || strsub; elseif strsub >= 'ヲ' AND strsub <= '゚' then str := str || 'ア'; elseif strsub > ' ' then str := str || 'X'; elseif strsub >= '0' AND strsub <= '9' then str := str || '9'; elseif strsub >= 'A' AND strsub <= 'Z' then str := str || 'X'; elseif strsub >= 'a' AND strsub <= 'z' then str := str || 'x'; elseif ascii(strsub) < 255 then if strsub = '-' OR strsub = '.' OR strsub = '@' OR strsub = ' ' then str := str || strsub; else str := str || 'X'; end if; else end if; end if; end loop; return str; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION zz_mask4item(text) OWNER TO postgres;
■Vectorに載せた「postgre用データベースのマスクSQL作成.xls」ツールの画像
■Vectorに載せたReadme.txt
============================================================================= postgre用データベースのマスクSQL作成 はじめにお読み下さい。 Copyright(C) By http://kazpgm.ddo.jp/ ============================================================================= 目次 1 postgre用データベースのマスクSQL作成とは 2 主な機能 3 セットアップ方法 4 動作環境 5 使用方法 6 著作権その他 7 サポート等 ============================================================================= 1 postgre用データベースのマスクSQL作成とは、 データベースのマスキングツール(個人情報保護法対応)です。 a.解析する「テーブル項目一覧.xls」からpostgre用データベースのマスクSQL文を作成します。 b.Pマークまたは、ISMSのためのセキュリティ強化対策として作成しました。 DBデータにマスクをかけて、重要な情報は表示させないようにします。 注意:作成したSQLを実行する前に必ずDBのバックアップを取って置いてください。 2 主な機能 a.解析する「テーブル項目一覧.xls」の情報を設定して 「postgre用データベースのマスクSQL文作成」ボタン押下すると、指定のフォルダに ”テーブルのマスクSQL文.txt”及び、”テーブルのマスク項目一覧.txt”ができます。 b.実際に作成したものを「サンプル」フォルダに載せました。 3 セットアップ方法 ・圧縮ファイルを解凍 a.「postgre用データベースのマスクSQL作成.xls」 b.「zz_mask4item.sql」<=EUC_JP用です。UTF-8用とかSJIS用とかはまだ作っていません。 4 動作環境 エクセル 対応OS Windows2000 WindowsXP WindowsVista postgreはOSを問いません 5 使用方法 前準備.「zz_mask4item.sql」を実行してpostgreに関数を登録して置いてください。 手順1.解析する「テーブル項目一覧.xls」のエクセル名を ドライブからFULLで(例:c:\XXX.xls)指定する。 手順2.データベースのマスクSQL文作成先フォルダ名(存在すること)を ドライブからFULLで(例:C:\作成SQL文)指定する。 手順3.解析する「テーブル項目一覧.xls」の情報(日本語項目名のカラム位置など)を設定する。 手順4. 「postgre用データベースのマスクSQL作成」ボタン押下すると、指定のフォルダに ”テーブルのマスクSQL文.txt”及び、”テーブルのマスク項目一覧.txt”ができろ。 手順5. ”テーブルのマスク項目一覧.txt”の内容が間違っていないことを確認してください。 手順6. ”テーブルのマスクSQL文.txt”をpostgreで実行してください。 6 著作権その他 ・このソフトウェアはフリーウェアですが、著作権は作者が保持します。 ・このソフトウェアによるいかなる損害に対しても、作者は保障致しません。 ・使用方法や著作権などは「postgre用データベースのマスクSQL作成.xls」に記載しました。 7 サポート等 ご意見ご要望などがありましたら、電子メールでお寄せください。 URL:http://kazpgm.ddo.jp/ メールアドレス:kazpgm@gmail.com 以 上
■Vectorのプレビュー画面(http://www.vector.co.jp/soft/win95/business/se489024.html)
■2011/02/28に以下の修正を行いました。
201102280101の修正内容.txt 1、『postgre用データベースのマスクSQL作成』に以下の修正を行いました。 ■Readme.txt 修正 <<44行目:修正前>> b.「zz_mask4item.sql」 <<44行目:修正後>> b.「zz_mask4item.sql」<=EUC_JP用です。UTF-8用とかSJIS用とかはまだ作っていません。 ■postgre用データベースのマスクSQL作成.xls 修正 <<91行目:修正前>> b.「zz_mask4item.sql」 <<91行目:修正後>> b.「zz_mask4item.sql」<=EUC_JP用です。UTF-8用とかSJIS用とかはまだ作っていません。 ■zz_mask4item.sql 修正 (1)当関数は文字コードEUC_JP用であること、NewBSDライセンスであることを追記した。 (2)' '、'ー'、' 'は変換するのをやめた。(カタカナとして入っていてもエラーにならないように) (3)>= 'ヲ' かつ <= '゚'を入れて半角カタカナにも対応した。 <<2行目:追加>> -- For EUC-JP !! http://kazpgm.ddo.jp/ NewBSD <<28行目から54行目:修正前>> strsub = substr(strItem,i,1); if strsub >= '0' AND strsub <= '9' then str := str || '9'; elseif strsub >= 'A' AND strsub <= 'Z' then str := str || 'X'; elseif strsub >= 'a' AND strsub <= 'z' then str := str || 'x'; elseif strsub >= 'ァ' AND strsub <= 'ヶ' then str := str || 'ア'; elseif strsub >= 'ぁ' AND strsub <= 'ん' then str := str || 'あ'; elseif strsub >= ' ' then str := str || 'X'; elseif strsub >= '0' AND strsub <= '9' then str := str || '9'; elseif strsub >= 'A' AND strsub <= 'Z' then str := str || 'X'; elseif strsub >= 'a' AND strsub <= 'z' then str := str || 'x'; elseif ascii(strsub) < 255 then if strsub = '-' OR strsub = '.' OR strsub = '@' then str := str || strsub; else str := str || 'X'; end if; else end if; <<29行目から59行目:修正後>> strsub = substr(strItem,i,1); if strsub >= '0' AND strsub <= '9' then str := str || '9'; elseif strsub >= 'A' AND strsub <= 'Z' then str := str || 'X'; elseif strsub >= 'a' AND strsub <= 'z' then str := str || 'x'; elseif strsub >= 'ァ' AND strsub <= 'ヶ' then str := str || 'ア'; elseif strsub >= 'ぁ' AND strsub <= 'ん' then str := str || 'あ'; elseif strsub = ' ' OR strsub = 'ー' then str := str || strsub; elseif strsub >= 'ヲ' AND strsub <= '゚' then str := str || 'ア'; elseif strsub > ' ' then str := str || 'X'; elseif strsub >= '0' AND strsub <= '9' then str := str || '9'; elseif strsub >= 'A' AND strsub <= 'Z' then str := str || 'X'; elseif strsub >= 'a' AND strsub <= 'z' then str := str || 'x'; elseif ascii(strsub) < 255 then if strsub = '-' OR strsub = '.' OR strsub = '@' OR strsub = ' ' then str := str || strsub; else str := str || 'X'; end if; else end if;
2011/02/08 01:30-04:40 zz_mask4item()関数はかなり前にお勉強のために作ったもの。今日はこれを汎用ツールにしてVectorに載せようという思い立ったのでちょっとやってみている。まだ載せるまでにはいたっていない。
2011/02/09 22:00-01:30 ■Vectorに載せる「postgre用データベースのマスクSQL作成.xls」ツールの画像と ■Vectorに載せるReadme.txtを追記した。、、、これからVectorに登録依頼する。、、、このブログのタイトルを「postgre用データベースのマスキングツール(個人情報保護法対応)つくってる。」から「★『postgre用データベースのマスクSQL作成.xls』つくってる。」に変更した。
2011/02/16 4:00-4:10 Vectorに載った。http://www.vector.co.jp/soft/win95/business/se489024.html。自WEBのTOPページを書き換えた。
2011/02/28 (1)当関数は文字コードEUC_JP用であること、NewBSDライセンスであることを追記した。(2)' '、'ー'、' 'は変換するのをやめた。(カタカナとして入っていてもエラーにならないように)(3)>= 'ヲ' かつ <= '゚'を入れて半角カタカナにも対応した。 本日Vectorの登録依頼(バージョン201102280101)しました。<=2011/03/04 VectorからOKがきました新バージョンを使ってください。