SlideShare a Scribd company logo
第13回勉強会
The 13th Study Meetup
22th Dec. 2018
Japan SQL Server User Group
Microsoft
SQL Server 2019
®
Session
SQL Server 2019 Static Data Masking
(Preview)
SQL Server 2019 Static Data Masking
■該当セッションでの学習できること
①静的データマスキングの基礎
②SSMSで静的データマスキングの操作
■データマスキングは何?
データマスキングは、データベースにマスクを適用して機密情報を隠し、新しいデータまた
はスクラブされたデータに置き換えるプロセスである。
SQL Serverには、動的データマスキングと静的データマスキングがある。
■利用するシーン(データを隠して見せたくない)
①開発及びテスト
②アナリティクス(分析)とビジネスレポート
③トラブルシューティング
④コンサルタント、リサーチチーム、または第三者とデータベースを共有する
SQL Server 2019 Static Data Masking
■動的データマスキングとは
動的データマスク(DDM)は、特権のないユーザーに対してデリケートなデータをマスクし、
データの公開を制限する。
情報漏洩を防止できる機能である。
出典先:SQL Server 2017自習書
SQL Server 2019 Static Data Masking
■静的データマスキングとは
静的データマスキング(SDM)はSQL Server Management Studio 18 Preview
5の機能で、ユーザーはデータベースのマスクされたコピーを作成できる。
サポートしているSQL Serverバージョン:2012以降
ほかには、Azure Database、SQL Server 2012以降 on VM
SQL Server 2019 Static Data Masking
■静的データマスキング(SDM)と動的データマスキング(DDM)の比較
視点 静的データマスキング(SDM) 動的データマスキング(DDM)
データベース コピーされたデータベース オリジナルデータベース
検索 コピーされたデータベースのデータ
から元のデータを検索できない
元のデータのままなので、データ検索
できる
発生 ストレージレベルで発生する クエリを発行する時に発生する
アクセス すべてのユーザーは同じマスクされ
たデータをアクセスできる
マスク許可(権限)によって、ユーザー
からのアクセスの結果は変わる
SQL Server 2019 Static Data Masking
■静的データマスキング操作手順
SQL Server
Management
Studio 18 Preview 5
SQL Server 2019 Static Data Masking
■操作のステップ
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
①シャッフル(= ORDER BY NEWID())
効果:同じテーブル内の列で、ランダムに入れ替える。元の列データがランダムにシャッフ
ルされる。
Configure:NULLの値の処理を除外する。つまり、NULLの行を対象外とする。
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
②グループシャッフル(カラムセットでORDER BY NEWID())
効果:同じテーブル内で、指定した列をグルーピングし、グルーピングされた列をセットし
て、ランダムに入れ替える。
Configure:Group名を定義する
列カラム一つしか選択されていない場合、警告マークが出る。普通のシャッフルと同じ動作する。
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
②グループシャッフル(カラムセットでORDER BY NEWID())
SQL Serverのいけていないところ!
Oracleのグループシャッフルと違い!
Oracleでは、グループのメンバー間で関係がある個別のユニットまたはグループ内の
シャッフルを実行できる。
名前 役職 マスキング前の給与 マスキング後の給与
Aさん マネージャ 100 200
Bさん マネージャ 200 100
Cさん エンジニア 10 30
Dさん エンジニア 20 10
Eさん エンジニア 30 20
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
③Null(UPDATE カラム列 = null)
効果:指定したカラム列の値をすべてNullで置き換える。
Configure:なし
ただし、Null許可していないカラム列に対しては、エラーになる。
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
④シングルバリュー(UPDATE カラム=固定値)
効果:対象カラム列に、ユーザーの固定値ですべて置き換える。
Configure:固定値の設定。
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する)
効果:パターンに沿ってランダムな文字列を生成する。 これは、有効なエントリとして定義
済みのパターンに従わなければならない文字列用に設計されている。
Configure:さまざま(ID、電話番号、住所、メールアドレスなど)
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する)
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する)
フォーマット文法&ロジック
フォーマット 意味 例文 例文意味
¥d ランダム数字 (¥d){3} 3桁のランダム数字
¥w ランダム文字(アルファベッ
ト)(大文字、小文字無視)
(¥w){3} 3桁のランダム文字(大文
字、小文字無視)
¥l ランダム文字(小文字) (¥l){3} 3桁のランダム文字(小文
字のみ)
¥L ランダム文字(大文字) (¥L){3} 3桁のランダム文字(大文
字のみ)
¥? ランダム記号 (¥?){3} 3桁のランダム記号
. ランダム数字、文字、記号(大
文字、小文字無視)
(.){3} 3桁の数字+文字+記号
| 指定範囲内のランダム選択 (1|2|3) 範囲中の1、2、3どれか表
示
SQL Server 2019 Static Data Masking
■質問1:
日本の携帯番号のようなランダム数字を表すには?
(ハイフン入り、13桁)(ハイフンなし、11桁)
ハイフン入り: (¥d){3}-(¥d){4}-(¥d){4}
ハイフンなし: (¥d){11}
■質問2:
日本のリアルティな携帯番号のランダム数字を表すには?
ハイフン入り: (090|080|070)-(¥d){4}-(¥d){4}
ハイフンなし: (090|080|070)(¥d){8}
フォーマット 意味 例文 例文意味
¥d ランダム数字 (¥d){3} 3桁のランダム数字
| 指定範囲内のランダム選択 (1|2|3) 範囲中の1、2、3どれか表
示
SQL Server 2019 Static Data Masking
■ステップ1:対象テーブルやカラムをマスキング定義
■マスキングの種類
⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する)
既存の文字列をキープしながら、指定したフォーマットでマスキングの場合、ストリングコ
ンポジットのアドバンストメニューを利用する。
SQL Server 2019 Static Data Masking
■ステップ2:出力フォルダを指定する
一時的に書き出すBAKファイルの指定フォルダを指定する。
デフォルトでは、DATAフォルダになる。既存のユーザーでベースのmdf、ldfと同じフォ
ルダになる。
■ステップ3:出力データベース名を指定する
マスキングできあがったデータベースがこの名前でリストアされる。
<Demo>
SQL Server 2019 Static Data Masking
■サポートされていない一覧
①履歴テーブルはサポートしていない。
②メモリ最適化テーブルはサポートしていない。
③計算列やID列を持つテーブルはサポートしていない。
④Azure SQL Hyperscaleデータベースはサポートしていない。
⑤地理情報データ型のテーブルはサポートしていない。
SQL Server 2019 Static Data Masking
■いくつかの注意点
①データベースをバックアップしてリストするので、バックアップおよびリストアのディスク
の空き容量が必要。
②デフォルトのバックアップファイル(bak)は、BACKUPフォルダに入れていなく、
DATAフォルダに入っている。PATHの変更をお勧めする。
③StaticDataMasking-Clone-{GUID}.bakは作られた後に、削除されない。要注
意。削除されていないことは悪いことを言っているのではなく、だれかに渡すために、システム側は
残ってしまう。同じインスタンス内で、別のデータベース名として展開する場合、bakファイルは余計
なものになる。
⇒メンテナンスが必要
④Loggingのとテキストリンクをクリックすると、テキストを開くのではなく、そのテキス
トが入っているフォルダが開かれる。すでに開かれる場合でも、新規Windowとしてさらに開かれ
る。(いけていない)
⑤ マスキングしてから統計情報は更新されていないため、UPDATE STATISTICSを
更新するようにしてください。
⑥マスキング最中にエラーが発生してしまった場合、処理が中断され、コピーされたデー
タベースは削除されないため、機密情報の漏洩があるため、必ず、手動で削除してください。
⑦ (SQL Serverのみ)データファイルとログファイルには、静的データマスキングが完了
した後に未割り当てメモリに機密データのビットが含まれていることがある。この機密データは、
データファイルとログファイルへのアクセス権が与えられている場合は、16進エディタで取り出すこ
とができる。SQL Serverサービスをリセットすることも推奨している。
SQL Server 2019 Static Data Masking
■SDMの裏話
①スクリプト再生を押すと、スクリプトが作成されなく、実行されてしまう。
SQL Server 2019 Static Data Masking
■SDMの裏話
②シャフルのプロセスの流れ:
既存のデータベースのバックアップを取る。
SQL Serverなのか、SQL Azureなのか、処理を分ける。サーバーのプロパティ確認。
※SQL Azureの場合(確認していない)
オンプレミスのSQL Serverの場合、バックアップからリストアを行う。
リストアしてから、対象のテーブルのカラムを別名で、Tempカラムを作る。
変更対象カラムの値をORDER BY NEWID()でランダム並び替える。
CREATE TABLEで、Tempテーブル(替えられたカラムと変更しようとする元のカラ
ム)を作成する
対象のテーブル(Tempカラム)とTempテーブルと結合して、データを入れ替える。
Tempテーブルを削除する
対象のテーブルのTempカラムも削除する
⇒わかったのは、先に変換するのではなく、先にバックアップして、そのバックアップした
DBに対して、Tempカラムやら、Tempテーブルやら、入れ替える。
メールアドレス、電話番号のマスキングはMASK Functionを利用される。
一連の操作はマニュアルでも対応できるが、UIで設定して、裏で処理を組んでくれる。
SQL Server 2019 Static Data Masking
■SDMの裏話
③バックアップファイルには暗号化なし。
SQL Server 2019 Static Data Masking
■SDMの裏話
④TXTログのPathの指定は固定されている。フォルダ名の指定もできない。
SQL Server 2019 Static Data Masking
■SDMの裏話
④TXTログのPathの指定は固定されている。
public static string GenerateLoggingFilePath()
{
return
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Perso
nal), "Static Data Masking", "MaskingLog-" +
DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".txt");
}

More Related Content

What's hot

εμπειρισμος
εμπειρισμοςεμπειρισμος
εμπειρισμος
xkas
 
Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Web Services Japan
 
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報
Amazon Web Services Japan
 
Oδηγιες συγγραφής στο μάθημα της Έκθεσης
Oδηγιες συγγραφής στο μάθημα της Έκθεσης  Oδηγιες συγγραφής στο μάθημα της Έκθεσης
Oδηγιες συγγραφής στο μάθημα της Έκθεσης
Elena Georgiou
 
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたKinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
dcubeio
 
Αρχές φιλοσοφίας 2.1, 2.2
Αρχές φιλοσοφίας 2.1, 2.2Αρχές φιλοσοφίας 2.1, 2.2
Αρχές φιλοσοφίας 2.1, 2.2
Akis Ampelas
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
Hideo Takagi
 
CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門
CLUB DB2 第122回  DB2管理本の著者が教える 簡単運用管理入門CLUB DB2 第122回  DB2管理本の著者が教える 簡単運用管理入門
CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門
Akira Shimosako
 
Μεθοδολογία -2-ερωτηματολόγιο
Μεθοδολογία -2-ερωτηματολόγιοΜεθοδολογία -2-ερωτηματολόγιο
Μεθοδολογία -2-ερωτηματολόγιο
Nana Mimilidou
 
Amazon Glacierのご紹介(機能編)
Amazon Glacierのご紹介(機能編) Amazon Glacierのご紹介(機能編)
Amazon Glacierのご紹介(機能編)
Amazon Web Services Japan
 
AWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon RedshiftAWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon Redshift
Amazon Web Services Japan
 
Η Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημών
Η  Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημώνΗ  Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημών
Η Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημών
Nikos Papastamatiou
 
AWS セキュリティとコンプライアンス
AWS セキュリティとコンプライアンスAWS セキュリティとコンプライアンス
AWS セキュリティとコンプライアンス
Amazon Web Services Japan
 
openEHR入門(2017年3月14日資料)
openEHR入門(2017年3月14日資料)openEHR入門(2017年3月14日資料)
openEHR入門(2017年3月14日資料)
Shinji Kobayashi
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
Amazon Web Services Japan
 
DSM- V Αλλαγές σχετικές με τον Αυτισμό
DSM- V Αλλαγές σχετικές με τον ΑυτισμόDSM- V Αλλαγές σχετικές με τον Αυτισμό
DSM- V Αλλαγές σχετικές με τον Αυτισμό
Manina Kaouki
 
ΙΣΛΑΜ
ΙΣΛΑΜΙΣΛΑΜ
ΙΣΛΑΜ
katerina tsilili
 
AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...
AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...
AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...
Amazon Web Services
 

What's hot (20)

εμπειρισμος
εμπειρισμοςεμπειρισμος
εμπειρισμος
 
Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)Amazon Aurora Deep Dive (db tech showcase 2016)
Amazon Aurora Deep Dive (db tech showcase 2016)
 
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報
 
Oδηγιες συγγραφής στο μάθημα της Έκθεσης
Oδηγιες συγγραφής στο μάθημα της Έκθεσης  Oδηγιες συγγραφής στο μάθημα της Έκθεσης
Oδηγιες συγγραφής στο μάθημα της Έκθεσης
 
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみたKinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた
 
Αρχές φιλοσοφίας 2.1, 2.2
Αρχές φιλοσοφίας 2.1, 2.2Αρχές φιλοσοφίας 2.1, 2.2
Αρχές φιλοσοφίας 2.1, 2.2
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門
CLUB DB2 第122回  DB2管理本の著者が教える 簡単運用管理入門CLUB DB2 第122回  DB2管理本の著者が教える 簡単運用管理入門
CLUB DB2 第122回 DB2管理本の著者が教える 簡単運用管理入門
 
Μεθοδολογία -2-ερωτηματολόγιο
Μεθοδολογία -2-ερωτηματολόγιοΜεθοδολογία -2-ερωτηματολόγιο
Μεθοδολογία -2-ερωτηματολόγιο
 
Amazon Glacierのご紹介(機能編)
Amazon Glacierのご紹介(機能編) Amazon Glacierのご紹介(機能編)
Amazon Glacierのご紹介(機能編)
 
AWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon RedshiftAWS Black Belt Online Seminar Amazon Redshift
AWS Black Belt Online Seminar Amazon Redshift
 
Ο ΚΟΜΦΟΥΚΙΑΝΙΣΜΟΣ
Ο ΚΟΜΦΟΥΚΙΑΝΙΣΜΟΣΟ ΚΟΜΦΟΥΚΙΑΝΙΣΜΟΣ
Ο ΚΟΜΦΟΥΚΙΑΝΙΣΜΟΣ
 
Η Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημών
Η  Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημώνΗ  Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημών
Η Διερευνητική Μέθοδος στη διδασκαλία των μαθημάτων των φυσικών επιστημών
 
AWS セキュリティとコンプライアンス
AWS セキュリティとコンプライアンスAWS セキュリティとコンプライアンス
AWS セキュリティとコンプライアンス
 
openEHR入門(2017年3月14日資料)
openEHR入門(2017年3月14日資料)openEHR入門(2017年3月14日資料)
openEHR入門(2017年3月14日資料)
 
Συζητώντας για την εργασία και το επάγγελμα, 5 ενότητα Νεοελληνικής Γλώσσας Β...
Συζητώντας για την εργασία και το επάγγελμα, 5 ενότητα Νεοελληνικής Γλώσσας Β...Συζητώντας για την εργασία και το επάγγελμα, 5 ενότητα Νεοελληνικής Γλώσσας Β...
Συζητώντας για την εργασία και το επάγγελμα, 5 ενότητα Νεοελληνικής Γλώσσας Β...
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
 
DSM- V Αλλαγές σχετικές με τον Αυτισμό
DSM- V Αλλαγές σχετικές με τον ΑυτισμόDSM- V Αλλαγές σχετικές με τον Αυτισμό
DSM- V Αλλαγές σχετικές με τον Αυτισμό
 
ΙΣΛΑΜ
ΙΣΛΑΜΙΣΛΑΜ
ΙΣΛΑΜ
 
AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...
AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...
AWS, I Choose You: Pokemon's Battle against the Bots (SEC402-R1) - AWS re:Inv...
 

Similar to Sql serve2019 staticdatamaskting

クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
Ryoma Nagata
 
Microsoft Ignite Fall 2021 Data Platform Update Topics
Microsoft Ignite Fall 2021 Data Platform Update TopicsMicrosoft Ignite Fall 2021 Data Platform Update Topics
Microsoft Ignite Fall 2021 Data Platform Update Topics
Microsoft
 
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
IBM Analytics Japan
 
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺めるMicrosoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
Daiyu Hatakeyama
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
Insight Technology, Inc.
 
Snowflake Elastic Data Warehouse as a Service
Snowflake Elastic Data Warehouse as a ServiceSnowflake Elastic Data Warehouse as a Service
Snowflake Elastic Data Warehouse as a Service
Mineaki Motohashi
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
DAISUKE INAGAKI
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep diveMasayuki Ozawa
 
データベース09 - データベース設計
データベース09 - データベース設計データベース09 - データベース設計
データベース09 - データベース設計
Kenta Oku
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
YusukeKuramata
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
Hideo Takagi
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
yoyamasaki
 
SQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data PlatformSQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data Platform
Daiyu Hatakeyama
 
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
Masayuki Ozawa
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
 
MySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdf
Machiko Ikoma
 
Microsoft Azure ADLSのターゲットエンドポイントとしての利用
Microsoft Azure ADLSのターゲットエンドポイントとしての利用Microsoft Azure ADLSのターゲットエンドポイントとしての利用
Microsoft Azure ADLSのターゲットエンドポイントとしての利用
QlikPresalesJapan
 
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
Insight Technology, Inc.
 

Similar to Sql serve2019 staticdatamaskting (20)

クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応クラウドDWHにおける観点とAzure Synapse Analyticsの対応
クラウドDWHにおける観点とAzure Synapse Analyticsの対応
 
Microsoft Ignite Fall 2021 Data Platform Update Topics
Microsoft Ignite Fall 2021 Data Platform Update TopicsMicrosoft Ignite Fall 2021 Data Platform Update Topics
Microsoft Ignite Fall 2021 Data Platform Update Topics
 
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
 
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺めるMicrosoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
Microsoft Ignite 2019 最新アップデート - Azure Big Data Services を俯瞰的に眺める
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
 
Snowflake Elastic Data Warehouse as a Service
Snowflake Elastic Data Warehouse as a ServiceSnowflake Elastic Data Warehouse as a Service
Snowflake Elastic Data Warehouse as a Service
 
20190530 osc hokkaido_public
20190530 osc hokkaido_public20190530 osc hokkaido_public
20190530 osc hokkaido_public
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep dive
 
CSA Japan Chapter Big Data User WG Workshop #1 on February 18, 2014
CSA Japan Chapter Big Data User WG Workshop #1 on February 18, 2014CSA Japan Chapter Big Data User WG Workshop #1 on February 18, 2014
CSA Japan Chapter Big Data User WG Workshop #1 on February 18, 2014
 
データベース09 - データベース設計
データベース09 - データベース設計データベース09 - データベース設計
データベース09 - データベース設計
 
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fallビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
ビッグデータ活用を加速する!分散SQLエンジン Spark SQL のご紹介 20161105 OSC Tokyo Fall
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [概要編]
 
MySQL最新情報
MySQL最新情報MySQL最新情報
MySQL最新情報
 
SQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data PlatformSQL Server 2019 とともに知る Microsoft Data Platform
SQL Server 2019 とともに知る Microsoft Data Platform
 
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
db tech showcase 2019 SQL Server 2019 最新情報 - SQL Serverの進化をまとめてお届け!
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
 
MySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdfMySQLで学ぶ機械学習ことはじめ.pdf
MySQLで学ぶ機械学習ことはじめ.pdf
 
Microsoft Azure ADLSのターゲットエンドポイントとしての利用
Microsoft Azure ADLSのターゲットエンドポイントとしての利用Microsoft Azure ADLSのターゲットエンドポイントとしての利用
Microsoft Azure ADLSのターゲットエンドポイントとしての利用
 
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
 

More from Microsoft

Azure SQL Database Ledger & SQL Server 2022 Ledger
Azure SQL Database Ledger & SQL Server 2022 LedgerAzure SQL Database Ledger & SQL Server 2022 Ledger
Azure SQL Database Ledger & SQL Server 2022 Ledger
Microsoft
 
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain Japanese
Microsoft
 
Synapse Link for SQL
Synapse Link for SQLSynapse Link for SQL
Synapse Link for SQL
Microsoft
 
DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介
DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介
DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介
Microsoft
 
SQL Server チューニング基礎
SQL Server チューニング基礎SQL Server チューニング基礎
SQL Server チューニング基礎
Microsoft
 
Azure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスAzure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL Poolベストプラクティス
Microsoft
 
Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4
Microsoft
 
Azure Data Studio
Azure Data StudioAzure Data Studio
Azure Data Studio
Microsoft
 
SQLServer 2019 on Linux Replication StepbyStep Using AzureVM
SQLServer 2019 on Linux Replication StepbyStep Using AzureVMSQLServer 2019 on Linux Replication StepbyStep Using AzureVM
SQLServer 2019 on Linux Replication StepbyStep Using AzureVM
Microsoft
 
Index tuning
Index tuningIndex tuning
Index tuning
Microsoft
 
Polybase scale outgroups
Polybase scale outgroupsPolybase scale outgroups
Polybase scale outgroups
Microsoft
 

More from Microsoft (11)

Azure SQL Database Ledger & SQL Server 2022 Ledger
Azure SQL Database Ledger & SQL Server 2022 LedgerAzure SQL Database Ledger & SQL Server 2022 Ledger
Azure SQL Database Ledger & SQL Server 2022 Ledger
 
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain Japanese
 
Synapse Link for SQL
Synapse Link for SQLSynapse Link for SQL
Synapse Link for SQL
 
DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介
DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介
DXの加速化に力を与えるSQL Serverのモダナイズのオプションを一挙にご紹介
 
SQL Server チューニング基礎
SQL Server チューニング基礎SQL Server チューニング基礎
SQL Server チューニング基礎
 
Azure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL PoolベストプラクティスAzure Synapse Analytics 専用SQL Poolベストプラクティス
Azure Synapse Analytics 専用SQL Poolベストプラクティス
 
Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4Microsoft Build 2021 前夜祭 LT#4
Microsoft Build 2021 前夜祭 LT#4
 
Azure Data Studio
Azure Data StudioAzure Data Studio
Azure Data Studio
 
SQLServer 2019 on Linux Replication StepbyStep Using AzureVM
SQLServer 2019 on Linux Replication StepbyStep Using AzureVMSQLServer 2019 on Linux Replication StepbyStep Using AzureVM
SQLServer 2019 on Linux Replication StepbyStep Using AzureVM
 
Index tuning
Index tuningIndex tuning
Index tuning
 
Polybase scale outgroups
Polybase scale outgroupsPolybase scale outgroups
Polybase scale outgroups
 

Sql serve2019 staticdatamaskting

  • 1. 第13回勉強会 The 13th Study Meetup 22th Dec. 2018 Japan SQL Server User Group Microsoft SQL Server 2019 ®
  • 2. Session SQL Server 2019 Static Data Masking (Preview)
  • 3. SQL Server 2019 Static Data Masking ■該当セッションでの学習できること ①静的データマスキングの基礎 ②SSMSで静的データマスキングの操作 ■データマスキングは何? データマスキングは、データベースにマスクを適用して機密情報を隠し、新しいデータまた はスクラブされたデータに置き換えるプロセスである。 SQL Serverには、動的データマスキングと静的データマスキングがある。 ■利用するシーン(データを隠して見せたくない) ①開発及びテスト ②アナリティクス(分析)とビジネスレポート ③トラブルシューティング ④コンサルタント、リサーチチーム、または第三者とデータベースを共有する
  • 4. SQL Server 2019 Static Data Masking ■動的データマスキングとは 動的データマスク(DDM)は、特権のないユーザーに対してデリケートなデータをマスクし、 データの公開を制限する。 情報漏洩を防止できる機能である。 出典先:SQL Server 2017自習書
  • 5. SQL Server 2019 Static Data Masking ■静的データマスキングとは 静的データマスキング(SDM)はSQL Server Management Studio 18 Preview 5の機能で、ユーザーはデータベースのマスクされたコピーを作成できる。 サポートしているSQL Serverバージョン:2012以降 ほかには、Azure Database、SQL Server 2012以降 on VM
  • 6. SQL Server 2019 Static Data Masking ■静的データマスキング(SDM)と動的データマスキング(DDM)の比較 視点 静的データマスキング(SDM) 動的データマスキング(DDM) データベース コピーされたデータベース オリジナルデータベース 検索 コピーされたデータベースのデータ から元のデータを検索できない 元のデータのままなので、データ検索 できる 発生 ストレージレベルで発生する クエリを発行する時に発生する アクセス すべてのユーザーは同じマスクされ たデータをアクセスできる マスク許可(権限)によって、ユーザー からのアクセスの結果は変わる
  • 7. SQL Server 2019 Static Data Masking ■静的データマスキング操作手順 SQL Server Management Studio 18 Preview 5
  • 8. SQL Server 2019 Static Data Masking ■操作のステップ
  • 9. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ①シャッフル(= ORDER BY NEWID()) 効果:同じテーブル内の列で、ランダムに入れ替える。元の列データがランダムにシャッフ ルされる。 Configure:NULLの値の処理を除外する。つまり、NULLの行を対象外とする。
  • 10. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ②グループシャッフル(カラムセットでORDER BY NEWID()) 効果:同じテーブル内で、指定した列をグルーピングし、グルーピングされた列をセットし て、ランダムに入れ替える。 Configure:Group名を定義する 列カラム一つしか選択されていない場合、警告マークが出る。普通のシャッフルと同じ動作する。
  • 11. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ②グループシャッフル(カラムセットでORDER BY NEWID()) SQL Serverのいけていないところ! Oracleのグループシャッフルと違い! Oracleでは、グループのメンバー間で関係がある個別のユニットまたはグループ内の シャッフルを実行できる。 名前 役職 マスキング前の給与 マスキング後の給与 Aさん マネージャ 100 200 Bさん マネージャ 200 100 Cさん エンジニア 10 30 Dさん エンジニア 20 10 Eさん エンジニア 30 20
  • 12. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ③Null(UPDATE カラム列 = null) 効果:指定したカラム列の値をすべてNullで置き換える。 Configure:なし ただし、Null許可していないカラム列に対しては、エラーになる。
  • 13. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ④シングルバリュー(UPDATE カラム=固定値) 効果:対象カラム列に、ユーザーの固定値ですべて置き換える。 Configure:固定値の設定。
  • 14. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する) 効果:パターンに沿ってランダムな文字列を生成する。 これは、有効なエントリとして定義 済みのパターンに従わなければならない文字列用に設計されている。 Configure:さまざま(ID、電話番号、住所、メールアドレスなど)
  • 15. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する)
  • 16. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する) フォーマット文法&ロジック フォーマット 意味 例文 例文意味 ¥d ランダム数字 (¥d){3} 3桁のランダム数字 ¥w ランダム文字(アルファベッ ト)(大文字、小文字無視) (¥w){3} 3桁のランダム文字(大文 字、小文字無視) ¥l ランダム文字(小文字) (¥l){3} 3桁のランダム文字(小文 字のみ) ¥L ランダム文字(大文字) (¥L){3} 3桁のランダム文字(大文 字のみ) ¥? ランダム記号 (¥?){3} 3桁のランダム記号 . ランダム数字、文字、記号(大 文字、小文字無視) (.){3} 3桁の数字+文字+記号 | 指定範囲内のランダム選択 (1|2|3) 範囲中の1、2、3どれか表 示
  • 17. SQL Server 2019 Static Data Masking ■質問1: 日本の携帯番号のようなランダム数字を表すには? (ハイフン入り、13桁)(ハイフンなし、11桁) ハイフン入り: (¥d){3}-(¥d){4}-(¥d){4} ハイフンなし: (¥d){11} ■質問2: 日本のリアルティな携帯番号のランダム数字を表すには? ハイフン入り: (090|080|070)-(¥d){4}-(¥d){4} ハイフンなし: (090|080|070)(¥d){8} フォーマット 意味 例文 例文意味 ¥d ランダム数字 (¥d){3} 3桁のランダム数字 | 指定範囲内のランダム選択 (1|2|3) 範囲中の1、2、3どれか表 示
  • 18. SQL Server 2019 Static Data Masking ■ステップ1:対象テーブルやカラムをマスキング定義 ■マスキングの種類 ⑤ストリングコンポジット(UPDATE カラム=指定したフォーマットで値を生成する) 既存の文字列をキープしながら、指定したフォーマットでマスキングの場合、ストリングコ ンポジットのアドバンストメニューを利用する。
  • 19. SQL Server 2019 Static Data Masking ■ステップ2:出力フォルダを指定する 一時的に書き出すBAKファイルの指定フォルダを指定する。 デフォルトでは、DATAフォルダになる。既存のユーザーでベースのmdf、ldfと同じフォ ルダになる。 ■ステップ3:出力データベース名を指定する マスキングできあがったデータベースがこの名前でリストアされる。 <Demo>
  • 20. SQL Server 2019 Static Data Masking ■サポートされていない一覧 ①履歴テーブルはサポートしていない。 ②メモリ最適化テーブルはサポートしていない。 ③計算列やID列を持つテーブルはサポートしていない。 ④Azure SQL Hyperscaleデータベースはサポートしていない。 ⑤地理情報データ型のテーブルはサポートしていない。
  • 21. SQL Server 2019 Static Data Masking ■いくつかの注意点 ①データベースをバックアップしてリストするので、バックアップおよびリストアのディスク の空き容量が必要。 ②デフォルトのバックアップファイル(bak)は、BACKUPフォルダに入れていなく、 DATAフォルダに入っている。PATHの変更をお勧めする。 ③StaticDataMasking-Clone-{GUID}.bakは作られた後に、削除されない。要注 意。削除されていないことは悪いことを言っているのではなく、だれかに渡すために、システム側は 残ってしまう。同じインスタンス内で、別のデータベース名として展開する場合、bakファイルは余計 なものになる。 ⇒メンテナンスが必要 ④Loggingのとテキストリンクをクリックすると、テキストを開くのではなく、そのテキス トが入っているフォルダが開かれる。すでに開かれる場合でも、新規Windowとしてさらに開かれ る。(いけていない) ⑤ マスキングしてから統計情報は更新されていないため、UPDATE STATISTICSを 更新するようにしてください。 ⑥マスキング最中にエラーが発生してしまった場合、処理が中断され、コピーされたデー タベースは削除されないため、機密情報の漏洩があるため、必ず、手動で削除してください。 ⑦ (SQL Serverのみ)データファイルとログファイルには、静的データマスキングが完了 した後に未割り当てメモリに機密データのビットが含まれていることがある。この機密データは、 データファイルとログファイルへのアクセス権が与えられている場合は、16進エディタで取り出すこ とができる。SQL Serverサービスをリセットすることも推奨している。
  • 22. SQL Server 2019 Static Data Masking ■SDMの裏話 ①スクリプト再生を押すと、スクリプトが作成されなく、実行されてしまう。
  • 23. SQL Server 2019 Static Data Masking ■SDMの裏話 ②シャフルのプロセスの流れ: 既存のデータベースのバックアップを取る。 SQL Serverなのか、SQL Azureなのか、処理を分ける。サーバーのプロパティ確認。 ※SQL Azureの場合(確認していない) オンプレミスのSQL Serverの場合、バックアップからリストアを行う。 リストアしてから、対象のテーブルのカラムを別名で、Tempカラムを作る。 変更対象カラムの値をORDER BY NEWID()でランダム並び替える。 CREATE TABLEで、Tempテーブル(替えられたカラムと変更しようとする元のカラ ム)を作成する 対象のテーブル(Tempカラム)とTempテーブルと結合して、データを入れ替える。 Tempテーブルを削除する 対象のテーブルのTempカラムも削除する ⇒わかったのは、先に変換するのではなく、先にバックアップして、そのバックアップした DBに対して、Tempカラムやら、Tempテーブルやら、入れ替える。 メールアドレス、電話番号のマスキングはMASK Functionを利用される。 一連の操作はマニュアルでも対応できるが、UIで設定して、裏で処理を組んでくれる。
  • 24. SQL Server 2019 Static Data Masking ■SDMの裏話 ③バックアップファイルには暗号化なし。
  • 25. SQL Server 2019 Static Data Masking ■SDMの裏話 ④TXTログのPathの指定は固定されている。フォルダ名の指定もできない。
  • 26. SQL Server 2019 Static Data Masking ■SDMの裏話 ④TXTログのPathの指定は固定されている。 public static string GenerateLoggingFilePath() { return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Perso nal), "Static Data Masking", "MaskingLog-" + DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".txt"); }