{"id":26278,"date":"2016-06-06T16:50:06","date_gmt":"2016-06-06T16:50:06","guid":{"rendered":"https:\/\/test.simple-talk.com\/uncategorized\/unmasking-the-dynamic-data-masking\/"},"modified":"2016-09-20T11:48:42","modified_gmt":"2016-09-20T11:48:42","slug":"unmasking-the-dynamic-data-masking","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/blogs\/unmasking-the-dynamic-data-masking\/","title":{"rendered":"Unmasking the Dynamic Data Masking"},"content":{"rendered":"<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/*<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> Revised 27th June<\/span><span ><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> &nbsp;<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> Dynamic data masking is a great product and solves some niche problems that come  if you need to do certain testing with live data at the application level. You  should, however, beware of using it as a database-level security device.<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> I haven&#39;t yet used it in testing because I don&#39;t have the problem that it  solves.<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\" > <span style=\"color:darkgreen;\"> The problem that it solves is for people doing testing, especially  user-acceptance testing, of an application using live data. It is good at  masking data where the user is unable to make direct access to the database to  execute queries.<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> If you want to do user-acceptance testing, you simply use a database role for  whom the data is masked. Nothing else in the data or application needs to be  changed, though you need to be careful about some functions such as editing of  (potentially masked) data.<\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> Dynamic data masking isn&#39;t an effective database-level security device. A  determined person can still get at the data. The algorithm is greatly improved  over the earlier pre-release versions of SQL Server 2016, but it isn&#39;t yet  perfect. It can still be hacked. Let me demonstrate *\/<\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> USE<\/span><span> <span style=\"color:teal\">PhilFactor<\/span><span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span><span style=\"color:darkgreen\">\/*we&#39;ll use our sample SQL Server 2016 database<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> The first thing we do is to create a number table if it doesn&#39;t exist.<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* Drop table numbers (only execute this if you&#39;re making changes) *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> IF<\/span><span> <span style=\"color:gray\">NOT<\/span> <span style=\"color:gray\">EXISTS<\/span><span style=\"color:blue\"> <\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">SELECT<\/span> 1 <span style=\"color:blue\">FROM<\/span> <span style=\"color:darkgreen\"> information_schema<\/span><span style=\"color:gray\">.<\/span><span style=\"color:darkgreen\">tables<\/span> <span style=\"color:blue\">WHERE<\/span> <span style=\"color:teal\">Table_Name<\/span><span style=\"color:gray\">=<\/span><span style=\"color:red\">&#39;numbers&#39;<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">CREATE<\/span> <span style=\"color:blue\">TABLE<\/span> <span style=\"color:teal\">numbers<\/span><span style=\"color:blue\"> <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:teal\">number<\/span> <span style=\"color:blue\">INT<\/span> <span style=\"color:blue\">PRIMARY<\/span> <span style=\"color:blue\">KEY<\/span><span style=\"color:gray\">);<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> IF<\/span><span> <span style=\"color:gray\">NOT<\/span> <span style=\"color:gray\">EXISTS<\/span><span style=\"color:blue\"> <\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">SELECT<\/span> 1 <span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">numbers<\/span> <span style=\"color:blue\">WHERE<\/span> <span style=\"color:teal\">number<\/span><span style=\"color:gray\">=<\/span>10<span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">BEGIN<\/span><span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">DECLARE<\/span> <span style=\"color:teal\">@digits<\/span> <span style=\"color:blue\">TABLE <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:teal\">n<\/span> <span style=\"color:blue\">CHAR<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">INSERT<\/span> <span style=\"color:blue\">INTO<\/span> <span style=\"color:teal\">@Digits<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">n<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">SELECT<\/span> <span style=\"color:teal\">X<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">i<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">FROM <\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;1&#39;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;2&#39;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;3&#39;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;4&#39;<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;5&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;6&#39;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;7&#39;<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;8&#39;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT <\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;9&#39;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:blue\">UNION<\/span> <span style=\"color:blue\">SELECT<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;0&#39;<\/span><span style=\"color:gray\">))<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">X<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">i<\/span><span style=\"color:gray\">);<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">INSERT<\/span> <span style=\"color:blue\">INTO<\/span> <span style=\"color:teal\">Numbers<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">SELECT<\/span> <span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">INT<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">D1<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">n<\/span> <span style=\"color:gray\">+<\/span> <span style=\"color:teal\">D2<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">n<\/span> <span style=\"color:gray\">+<\/span> <span style=\"color:teal\">D3<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">n<\/span> <span style=\"color:gray\">+<\/span> <span style=\"color:teal\">D4<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">n<\/span> <span style=\"color:gray\">+<\/span> <span style=\"color:teal\">D5<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">n<\/span> <span style=\"color:gray\">+<\/span> <span style=\"color:teal\">D6<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">n<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">number<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">@Digits<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">D1<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">@Digits<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">D2<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">@Digits<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">D3<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">@Digits<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">D4<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">@Digits<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">D5<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">@Digits<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">D6<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">ORDER<\/span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">number<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">DELETE<\/span> <span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">numbers<\/span> <span style=\"color:blue\">WHERE<\/span> <span style=\"color:teal\">number<\/span><span style=\"color:gray\">=<\/span>0<span style=\"color:gray\">;<\/span><span style=\"mso-spacerun:yes\">&nbsp; <\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">END<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/*<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> Now we will set up a mock table with some credit card numbers in it and some  security digits. We will set up dynamic data masking<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">revert<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> IF <\/span> <span style=\"color:gray;mso-ansi-language: EN-US\">(<\/span><span style=\"color:fuchsia; \">object_id<\/span><span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;dbo.MyCreditCards&#39;<\/span><span style=\"color:gray;\">)<\/span><span> <span style=\"color:gray\">IS<\/span> <span style=\"color:gray\">NOT<\/span> <span style=\"color:gray\">NULL)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">DROP<\/span> <span style=\"color:blue\">TABLE<\/span> <span style=\"color:teal\">dbo<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> GO<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> CREATE<\/span><span> <span style=\"color:blue\">TABLE<\/span> <span style=\"color:teal\">dbo<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:blue\"> <\/span><span style=\"color:gray\">(<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\"> creditCard_ID<\/span> <span style=\"color:blue\">INT<\/span> <span style=\"color:blue\">IDENTITY<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">Provider<\/span> <span style=\"color:blue\">VARCHAR<\/span><span style=\"color:gray\">(<\/span>30<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">Number<\/span> <span style=\"color:blue\">VARCHAR<\/span><span style=\"color:gray\">(<\/span>100<span style=\"color:gray\">)<\/span> <span style=\"color:teal\">MASKED<\/span> <span style=\"color:blue\">WITH <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:blue\">FUNCTION<\/span> <span style=\"color:gray\">=<\/span> <span style=\"color:red\"> &#39;partial(1,&quot;XXXXXXX&quot;,0)&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:gray\">NULL,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">digits<\/span> <span style=\"color:blue\">int<\/span> <span style=\"color:teal\">MASKED<\/span> <span style=\"color:blue\">WITH <\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">FUNCTION<\/span> <span style=\"color:gray\">=<\/span> <span style=\"color:red\">&#39;default()&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:gray\">NULL,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">Balance<\/span> <span style=\"color:blue\">money<\/span> <span style=\"color:teal\">MASKED<\/span> <span style=\"color:blue\">WITH <\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">FUNCTION<\/span> <span style=\"color:gray\">=<\/span> <span style=\"color:red\">&#39;default()&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:gray\">NULL,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\"> Credit_index<\/span> <span style=\"color:blue\">float<\/span> <span style=\"color:teal\">MASKED<\/span> <span style=\"color:blue\">WITH <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:blue\">FUNCTION<\/span> <span style=\"color:gray\">=<\/span> <span style=\"color:red\">&#39;default()&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:gray\">NULL,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\"> Known_Default_Average<\/span> <span style=\"color:blue\">Decimal<\/span><span style=\"color:gray\">(<\/span>8<span style=\"color:gray\">,<\/span>2<span style=\"color:gray\">)<\/span> <span style=\"color:teal\">MASKED<\/span> <span style=\"color:blue\">WITH <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:blue\">FUNCTION<\/span> <span style=\"color:gray\">=<\/span> <span style=\"color:red\">&#39;default()&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:gray\">NULL<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* now we will set up the table with some mock data *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> INSERT<\/span><span> <span style=\"color:blue\">INTO<\/span> <span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:blue\"> <\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Provider<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">Number<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">digits<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">balance<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">Credit_index<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">Known_Default_Average<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">SELECT<\/span> <span style=\"color:teal\">provider<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">digits<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">balance<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">Credit_index<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">Known_Default_Average<\/span> <span style=\"color:blue\">FROM <\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">VALUES<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Airplus&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;122000000000003&#39;<\/span><span style=\"color:gray;\">,<\/span><span>  563<span style=\"color:gray\">,<\/span> 345.23<span style=\"color:gray\">,<\/span>2.444<span style=\"color:gray\">,<\/span>  23.23<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;American  Express&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;34343434343434&#39;<\/span><span style=\"color:gray;\">,<\/span><span>  143<span style=\"color:gray\">,<\/span> 56.44<span style=\"color:gray\">,<\/span>  1.45367<span style=\"color:gray\">,<\/span>87.34<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;American  Express&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;378282246310005&#39;<\/span><span style=\"color:gray;\">,<\/span><span>  541<span style=\"color:gray\">,<\/span> 234.98<span style=\"color:gray\">,<\/span>  1.455<span style=\"color:gray\">,<\/span>45.32<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;American  Express&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;371449635398431&#39;<\/span><span style=\"color:gray;\">,<\/span><span>  243<span style=\"color:gray\">,<\/span> 249.00<span style=\"color:gray\">,<\/span>  1.397<span style=\"color:gray\">,<\/span> 19.45<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;American  Express Corporate&#39;<\/span><span style=\" color:gray;\">,<\/span><span style=\" color:red;\">&#39;378734493671000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>576<span style=\"color:gray\">,<\/span>  45.78<span style=\"color:gray\">,<\/span> 4.00<span style=\"color:gray\">,<\/span>  83.20<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Australian  BankCard&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;5610591081018250&#39;<\/span><span style=\"color:gray;\">,<\/span><span>837<span style=\"color:gray\">,<\/span>  341.727<span style=\"color:gray\">,<\/span> 86.5510803384479<span style=\"color:gray\">,<\/span>  1.16<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Dankort  (PBS)&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;5019717010103742&#39;<\/span><span style=\"color:gray;\">,<\/span><span>717<span style=\"color:gray\">,<\/span>  979.6372<span style=\"color:gray\">,<\/span> 28.0325248353335<span style=\"color:gray\">,<\/span>  1.70<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Diners  Club&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;30569309025904&#39;<\/span><span style=\"color:gray;\">,<\/span><span>813<span style=\"color:gray\">,<\/span>  492.1039<span style=\"color:gray\">,<\/span> 19.9180960566355<span style=\"color:gray\">,<\/span>  2.67<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Diners  Club&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;38520000023237&#39;<\/span><span style=\"color:gray;\">,<\/span><span>595<span style=\"color:gray\">,<\/span>  764.2249<span style=\"color:gray\">,<\/span> 97.7891119833985<span style=\"color:gray\">,<\/span>  0.57<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Diners  Club&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;36700102000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>764<span style=\"color:gray\">,<\/span>  190.1438<span style=\"color:gray\">,<\/span> 64.5213314404345<span style=\"color:gray\">,<\/span>  0.28<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Diners  Club&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;36148900647913&#39;<\/span><span style=\"color:gray;\">,<\/span><span>557<span style=\"color:gray\">,<\/span>  382.0786<span style=\"color:gray\">,<\/span> 26.3416622622598<span style=\"color:gray\">,<\/span>  0.39<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Discover  card&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;6011000400000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>802<span style=\"color:gray\">,<\/span>  229.0121<span style=\"color:gray\">,<\/span> 68.0298162759421<span style=\"color:gray\">,<\/span>  0.37<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Discover  card&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;6011111111111117&#39;<\/span><span style=\"color:gray;\">,<\/span><span>433<span style=\"color:gray\">,<\/span>  871.6858<span style=\"color:gray\">,<\/span> 37.9636457995342<span style=\"color:gray\">,<\/span>  2.63<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Discover  card&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;6011000990139424&#39;<\/span><span style=\"color:gray;\">,<\/span><span>338<span style=\"color:gray\">,<\/span>  389.1325<span style=\"color:gray\">,<\/span> 51.7720675555859<span style=\"color:gray\">,<\/span>  1.91<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;JCB&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;3530111333300000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>275<span style=\"color:gray\">,<\/span>  563.3207<span style=\"color:gray\">,<\/span> 93.2751041740529<span style=\"color:gray\">,<\/span>  0.90<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;JCB&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;3566002020360505&#39;<\/span><span style=\"color:gray;\">,<\/span><span>872<span style=\"color:gray\">,<\/span>  595.6164<span style=\"color:gray\">,<\/span> 33.9023412614606<span style=\"color:gray\">,<\/span>  0.20<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;JCB&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;3528000700000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>712<span style=\"color:gray\">,<\/span>  460.8667<span style=\"color:gray\">,<\/span> 24.9165346314742<span style=\"color:gray\">,<\/span>  0.06<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Laser&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;630495060000000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>139<span style=\"color:gray\">,<\/span>  730.9588<span style=\"color:gray\">,<\/span> 42.4225722171471<span style=\"color:gray\">,<\/span>  0.31<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Laser&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;630490017740292441&#39;<\/span><span style=\"color:gray;\">,<\/span><span>701<span style=\"color:gray\">,<\/span>  188.6773<span style=\"color:gray\">,<\/span> 71.1843278921136<span style=\"color:gray\">,<\/span>  0.68<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Maestro&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;6759649826438453&#39;<\/span><span style=\"color:gray;\">,<\/span><span>196<span style=\"color:gray\">,<\/span>  807.5152<span style=\"color:gray\">,<\/span> 51.2412214103347<span style=\"color:gray\">,<\/span>  0.62<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Maestro&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;6799990100000000019&#39;<\/span><span style=\"color:gray;\">,<\/span><span>573<span style=\"color:gray\">,<\/span>  150.622<span style=\"color:gray\">,<\/span> 77.7391501500919<span style=\"color:gray\">,<\/span>  1.20<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Mastercard&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;5555555555554444&#39;<\/span><span style=\"color:gray;\">,<\/span><span>949<span style=\"color:gray\">,<\/span>  363.7482<span style=\"color:gray\">,<\/span> 78.6266174333294<span style=\"color:gray\">,<\/span>  0.61<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Mastercard&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;5454545454545454&#39;<\/span><span style=\"color:gray;\">,<\/span><span>357<span style=\"color:gray\">,<\/span>  906.3862<span style=\"color:gray\">,<\/span> 53.1121607996114<span style=\"color:gray\">,<\/span>  0.44<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;MasterCard&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;5105105105105100&#39;<\/span><span style=\"color:gray;\">,<\/span><span>207<span style=\"color:gray\">,<\/span>  146.4457<span style=\"color:gray\">,<\/span> 18.1780982223237<span style=\"color:gray\">,<\/span>  0.60<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Switch\/Solo  (Paymentech)&#39;<\/span><span style=\" color:gray;\">,<\/span><span style=\" color:red;\">&#39;6331101999990016&#39;<\/span><span style=\"color:gray;\">,<\/span><span>952<span style=\"color:gray\">,<\/span>  334.8059<span style=\"color:gray\">,<\/span> 72.4790652373242<span style=\"color:gray\">,<\/span>  0.32<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;4111111111111111&#39;<\/span><span style=\"color:gray;\">,<\/span><span>989<span style=\"color:gray\">,<\/span>  120.9948<span style=\"color:gray\">,<\/span> 26.132675796809<span style=\"color:gray\">,<\/span>1.16<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;4012888888881881&#39;<\/span><span style=\"color:gray;\">,<\/span><span>555<span style=\"color:gray\">,<\/span>  751.5164<span style=\"color:gray\">,<\/span> 99.6884540550823<span style=\"color:gray\">,<\/span>  0.72<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;4222222222222&#39;<\/span><span style=\"color:gray;\">,<\/span><span>364<span style=\"color:gray\">,<\/span>  462.6201<span style=\"color:gray\">,<\/span> 63.5308831811561<span style=\"color:gray\">,<\/span>  2.40<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;4444333322221111&#39;<\/span><span style=\"color:gray;\">,<\/span><span>615<span style=\"color:gray\">,<\/span>  922.3543<span style=\"color:gray\">,<\/span> 27.8983184452626<span style=\"color:gray\">,<\/span>  1.86<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;4911830000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>681<span style=\"color:gray\">,<\/span>  744.0226<span style=\"color:gray\">,<\/span> 84.3608046245579<span style=\"color:gray\">,<\/span>  2.82<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa&#39;<\/span><span style=\"color:gray;\">,<\/span><span style=\"color:red;\">&#39;4917610000000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>557<span style=\"color:gray\">,<\/span>  151.2514<span style=\"color:gray\">,<\/span> 79.6490148839769<span style=\"color:gray\">,<\/span>  1.31<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa  Debit&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;4462030000000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>734<span style=\"color:gray\">,<\/span>  564.2765<span style=\"color:gray\">,<\/span> 42.9801020044741<span style=\"color:gray\">,<\/span>  0.85<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa  Debit&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;4917610000000000003&#39;<\/span><span style=\"color:gray;\">,<\/span><span>790<span style=\"color:gray\">,<\/span>  387.2116<span style=\"color:gray\">,<\/span> 1.67513696647954<span style=\"color:gray\">,<\/span>  1.88<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa  Electron (UK only)&#39;<\/span><span style=\" color:gray;\">,<\/span><span style=\" color:red;\">&#39;4917300800000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>390<span style=\"color:gray\">,<\/span>  599.0702<span style=\"color:gray\">,<\/span> 87.6530341495075<span style=\"color:gray\">,<\/span>  0.45<span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><\/span> <span style=\" color:gray;\">(<\/span><span style=\"color:red;\">&#39;Visa  Purchasing&#39;<\/span><span style=\"color:gray; \">,<\/span><span style=\" color:red;\">&#39;4484070000000000&#39;<\/span><span style=\"color:gray;\">,<\/span><span>499<span style=\"color:gray\">,<\/span>  249.4198<span style=\"color:gray\">,<\/span> 6.42316139788514<span style=\"color:gray\">,<\/span>  2.58<span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:gray\">)<\/span><span style=\"color:teal\">CreditCards<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Provider<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">Number<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">digits<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">balance<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">credit_index<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">Known_Default_Average<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">Select<\/span> <span style=\"color:gray\">*<\/span> <span style=\"color:blue\">from<\/span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> GO<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">use<\/span> <span style=\"color:teal\">philFactor<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* we can, of course select all the columns because we have permission to do so  as dbo (or whatever) *\/<\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <a href=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/Unmasked.bmp\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-7743\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/Unmasked.bmp\" alt=\"Unmasked.bmp\" \/><\/a><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* now we set up the TestUser who shouldn&#39;t receive any sensitive data *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> CREATE<\/span><span> <span style=\"color:blue\">USER<\/span> <span style=\"color:teal\">TestUser<\/span> <span style=\"color:blue\">WITHOUT<\/span> <span style=\"color:blue\">LOGIN<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> GRANT<\/span><span> <span style=\"color:blue\">SELECT<\/span> <span style=\"color:blue\">ON<\/span> <span style=\"color:teal\">dbo<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">MyCreditCards<\/span> <span style=\"color:blue\">TO<\/span> <span style=\"color:teal\">TestUser<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> GRANT<\/span><span> <span style=\"color:blue\">SELECT<\/span> <span style=\"color:blue\">ON<\/span> <span style=\"color:teal\">dbo<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">numbers<\/span> <span style=\"color:blue\">TO<\/span> <span style=\"color:teal\">TestUser<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* now we can execute a query as the test user and confirm that we can&#39;t see the  sensitive data *\/<\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> EXECUTE<\/span><span> <span style=\"color:blue\">AS<\/span> <span style=\"color:blue\">USER<\/span> <span style=\"color:gray\">=<\/span> <span style=\"color:red\">&#39;TestUser&#39;<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:gray\">*<\/span> <span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p><a href=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/Masked.bmp\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-7744\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/Masked.bmp\" alt=\"Masked.bmp\" \/><\/a><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* REVERT; &#8211; we can use this to revert to our normal DBO role *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:fuchsia\">CURRENT_USER<\/span> <span style=\"color:darkgreen\">\/* to  make sure we are the correct Test User role *\/<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* However, those digits are as easy to get as taking candy from a baby. For a  start, one can get the integers just by joining to a number table *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:teal\">CreditCard_ID<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span> <span style=\"color:blue\">FROM<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:teal;\"> numbers<\/span><span> <span style=\"color:gray\">INNER<\/span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> ON<\/span><span> <span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">=<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">digits<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* and money values and approximate numbers can be easily be retrieved too  within a single query, but only as floats.<\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> Probably accurate enough for the villains *\/<\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> Select<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">Decimal<\/span><span style=\"color:gray\">(<\/span>18<span style=\"color:gray\">,<\/span>8<span style=\"color:gray\">),<\/span><span style=\"color:teal\">digits<\/span><span style=\"color:gray\">))),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Balance<\/span><span style=\"color:gray\">)),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">Decimal<\/span><span style=\"color:gray\">(<\/span>18<span style=\"color:gray\">,<\/span>8<span style=\"color:gray\">),<\/span><span style=\"color:teal\">credit_index<\/span><span style=\"color:gray\">))),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Known_Default_Average<\/span><span style=\"color:gray\">))<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">from<\/span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* you can do better if you can put up with a temporary table or table variable  *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> Create<\/span><span> <span style=\"color:blue\">table<\/span> <span style=\"color:teal\">#temp<\/span><span style=\"color:blue\"><span style=\"mso-spacerun:yes\">&nbsp; <\/span><\/span><span style=\"color:gray\">(<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">digits<\/span> <span style=\"color:blue\">float<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">Balance<\/span> <span style=\"color:blue\">float<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\"> Credit_index<\/span> <span style=\"color:blue\">float<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\"> Known_Default_Average<\/span> <span style=\"color:blue\">float<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> insert<\/span><span> <span style=\"color:blue\">into<\/span> <span style=\"color:teal\">#temp<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">Select<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">Decimal<\/span><span style=\"color:gray\">(<\/span>18<span style=\"color:gray\">,<\/span>8<span style=\"color:gray\">),<\/span><span style=\"color:teal\">digits<\/span><span style=\"color:gray\">))),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Balance<\/span><span style=\"color:gray\">)),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">Decimal<\/span><span style=\"color:gray\">(<\/span>18<span style=\"color:gray\">,<\/span>8<span style=\"color:gray\">),<\/span><span style=\"color:teal\">credit_index<\/span><span style=\"color:gray\">))),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:fuchsia\">square<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">sqrt<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Known_Default_Average<\/span><span style=\"color:gray\">))<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">from<\/span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> Select<\/span><span> <span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">int<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">digits<\/span><span style=\"color:gray\">),<\/span> <span style=\"color:fuchsia\">convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">money<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">Balance<\/span><span style=\"color:gray\">),<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:teal\">credit_index<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:fuchsia\">Convert<\/span><span style=\"color:gray\">(<\/span><span style=\"color:blue\">Decimal<\/span><span style=\"color:gray\">(<\/span>8<span style=\"color:gray\">,<\/span>2<span style=\"color:gray\">),<\/span><span style=\"color:teal\">Known_Default_Average<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">from<\/span> <span style=\"color:teal\">#temp<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/*<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><span style=\" \"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> What about the strings? Well, the masking algorithm is quite good at struggling  but eventually, you can trick it before breaking into a sweat. Firstly, we will  try to mislead it into revealing the string containing the credit card number.*\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> (<\/span><span style=\"color:blue;\">SELECT<\/span><span> <span style=\"color:blue\">char<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">TheASCIIValue<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">numbers<\/span> <span style=\"color:teal\">i<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp; <\/span><span style=\"color:gray\"> INNER<\/span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\"> numbers<\/span> <span style=\"color:teal\">TheASCIIValue<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp; <\/span> <span style=\"color:blue\">ON<\/span> <span style=\"color:fuchsia\">substring<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">i<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span>1<span style=\"color:gray\">)=<\/span><span style=\"color:blue\">char<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">TheASCIIValue<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:fuchsia\">COLLATE<\/span> <span style=\"color:teal\"> Latin1_General_CS_AS<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">WHERE<\/span> <span style=\"color:teal\">TheASCIIValue<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span> <span style=\"color:gray\">&lt;<\/span>255 <span style=\"color:gray\">AND<\/span> <span style=\"color:teal\">i<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">&lt;=<\/span><span style=\"color:fuchsia\">len<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">ORDER<\/span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">i<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">FOR<\/span> <span style=\"color:blue\">XML<\/span> <span style=\"color:blue\">PATH<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;&#39;<\/span><span style=\"color:gray\">),<\/span> <span style=\"color:blue\">TYPE<\/span><span style=\"color:gray\">).<\/span><span style=\"color:teal\">value<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;.&#39;<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:red\">&#39;varchar(max)&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:teal\">TRANSLATION<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> FROM<\/span><span><span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* neat, but it doesn&#39;t work. The algorithm can detect that you are working on  MyCreditCards which is supposed to be masked. It manages to put a mask on the  result *\/<\/span><span ><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p><a href=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/FirstFailure.bmp\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-7741\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/FirstFailure.bmp\" alt=\"FirstFailure.bmp\" \/><\/a><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* We need to try harder. Basically, this works*\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:teal\">CreditCard_ID<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:blue\">char<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:blue\">FROM<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:teal;\"> numbers<\/span><span> <span style=\"color:gray\">INNER<\/span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> ON<\/span><span> <span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">=<\/span><span style=\"color:fuchsia\">ascii<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">substring<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span>1<span style=\"color:gray\">,<\/span>1<span style=\"color:gray\">))<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* you can see the first digit in the credit card number! From then on in, it is  routine. Don&#39;t worry that this looks clunky. It is here just to demonstrate that  you can see the string *\/<\/span><span style=\"font-family: Consolas;\"><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> DECLARE<\/span><span> <span style=\"color:teal\">@TheCreditCardCharacters<\/span> <span style=\"color:blue\">TABLE<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">Creditcard_ID<\/span> <span style=\"color:blue\">INT<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">TheIndex<\/span> <span style=\"color:blue\">INT<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">TheCharacter<\/span> <span style=\"color:blue\">CHAR<\/span><span style=\"color:gray\">(<\/span>1<span style=\"color:gray\">))<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> INSERT<\/span><span> <span style=\"color:blue\">INTO<\/span> <span style=\"color:teal\"> @TheCreditCardCharacters<\/span><span style=\"color:blue\"> <\/span> <span style=\"color:gray\">(<\/span><span style=\"color:teal\">Creditcard_ID<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">TheIndex<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">TheCharacter<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">SELECT<\/span> <span style=\"color:teal\">creditcard_id<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">TheLength<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:blue\">char<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">)<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> FROM<\/span><span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> CROSS<\/span><span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\">numbers<\/span> <span style=\"color:teal\">Thelength<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> INNER<\/span><span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\">numbers<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> ON<\/span><span> <span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">=<\/span><span style=\"color:fuchsia\">ascii<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">substring<\/span><span style=\"color:blue\"> <\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">TheLength<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span>1<span style=\"color:gray\">));<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:teal\">creditcard_ID<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> (<\/span><span style=\"color:blue;\">SELECT<\/span><span> <span style=\"color:teal\">TheCharacter<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">@TheCreditCardCharacters<\/span> <span style=\"color:teal\">EachCharacter<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">WHERE<\/span> <span style=\"color:teal\">AllCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">creditcard_id<\/span><span style=\"color:gray\">=<\/span><span style=\"color:teal\">EachCharacter<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">CreditCard_ID<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">ORDER<\/span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">EachCharacter<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">TheIndex<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">FOR<\/span> <span style=\"color:blue\">XML<\/span> <span style=\"color:blue\">PATH<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;&#39;<\/span><span style=\"color:gray\">),<\/span> <span style=\"color:blue\">TYPE<\/span><span style=\"color:gray\">).<\/span><span style=\"color:teal\">value<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;.&#39;<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:red\">&#39;varchar(max)&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:teal\">TRANSLATION<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> FROM<\/span><span> <span style=\"color:teal\">@TheCreditCardCharacters<\/span> <span style=\"color:teal\">AllCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> GROUP<\/span><span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">creditcard_id<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> go<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p><a href=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/Translated.bmp\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-7740\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/Translated.bmp\" alt=\"Translated.bmp\" \/><\/a><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* Pretty soon, I guess, they&#39;ll plug this leak. The algorithm is cunning but  because I disguised the relationship with the<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> table a little bit, it was fooled. Drop your guard a bit and it will put the  mask back in. If you were to tidy things up a bit with a CTE (don&#39;t because it  performs badly), the mask would be reimposed *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> ;<\/span><span style=\"color:blue;\">WITH<\/span><span> <span style=\"color:teal\">TheCreditCardDetails<\/span> <span style=\"color:blue\">AS<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> <span style=\"mso-spacerun:yes\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span> <\/span> <span style=\" color:gray;\">(<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp; <\/span><span style=\"color:blue\">SELECT<\/span> <span style=\"color:teal\">creditcard_id<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:teal\">TheLength<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">TheIndex<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:blue\">char<\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:blue\">AS<\/span> <span style=\"color:teal\">TheCharacter<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> FROM<\/span><span> <span style=\"color:teal\">MyCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> CROSS<\/span><span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\">numbers<\/span> <span style=\"color:teal\">Thelength<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> INNER<\/span><span> <span style=\"color:gray\">JOIN<\/span> <span style=\"color:teal\">numbers<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> ON<\/span><span> <span style=\"color:teal\">numbers<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">=<\/span><span style=\"color:fuchsia\">ascii<\/span><span style=\"color:gray\">(<\/span><span style=\"color:fuchsia\">substring<\/span><span style=\"color:blue\"> <\/span><span style=\"color:gray\">(<\/span><span style=\"color:teal\">MyCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span><span style=\"color:teal\">TheLength<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">number<\/span><span style=\"color:gray\">,<\/span>1<span style=\"color:gray\">)))<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> SELECT<\/span><span> <span style=\"color:teal\">creditcard_ID<\/span><span style=\"color:gray\">,<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:gray;\"> (<\/span><span style=\"color:blue;\">SELECT<\/span><span> <span style=\"color:teal\">TheCharacter<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">FROM<\/span> <span style=\"color:teal\">TheCreditCardDetails<\/span> <span style=\"color:teal\"> EachCharacter<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">WHERE<\/span> <span style=\"color:teal\">AllCreditCards<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">creditcard_id<\/span><span style=\"color:gray\">=<\/span><span style=\"color:teal\">EachCharacter<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">CreditCard_ID<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">ORDER<\/span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">EachCharacter<\/span><span style=\"color:gray\">.<\/span><span style=\"color:teal\">TheIndex<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><span style=\"color:blue\">FOR<\/span> <span style=\"color:blue\">XML<\/span> <span style=\"color:blue\">PATH<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;&#39;<\/span><span style=\"color:gray\">),<\/span> <span style=\"color:blue\">TYPE<\/span><span style=\"color:gray\">).<\/span><span style=\"color:teal\">value<\/span><span style=\"color:gray\">(<\/span><span style=\"color:red\">&#39;.&#39;<\/span><span style=\"color:gray\">,<\/span> <span style=\"color:red\">&#39;varchar(max)&#39;<\/span><span style=\"color:gray\">)<\/span> <span style=\"color:teal\">TRANSLATION<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> FROM<\/span><span> <span style=\"color:teal\">TheCreditCardDetails<\/span> <span style=\"color:teal\"> AllCreditCards<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> GROUP<\/span><span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">creditcard_id<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:blue;\"> ORDER<\/span><span> <span style=\"color:blue\">BY<\/span> <span style=\"color:teal\">creditcard_id<\/span><span style=\"color:gray\">;<\/span><\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span> <span style=\"mso-spacerun:yes\">&nbsp;<\/span><\/span><\/p>\n<p><a href=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/SecondFailure.bmp\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-7739\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/2016\/06\/SecondFailure.bmp\" alt=\"SecondFailure.bmp\" \/><\/a><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* Yep, the mask is back even though the CTE returns the info. *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* Beware that I&#39;m not giving high-performance solutions, just showing you that  Dynamic Data Masking is great for application user-acceptance testing, and a  useful addition to SQL Server for a niche purpose, but you must not assume that  it provides any security at the database level.<span style=\"mso-spacerun:yes\">&nbsp; <\/span>If you&#39;re using DDM, and have SQL Compare, see Steve Jones&#39; article on  Using SQL Compare with Dynamic Data Masking.&quot; *\/<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> \/* Many thanks to Aaron Bertrand for getting me interested in this topic in the  course of his entertaining presentation at SQLBits, and especial thanks to  Gianluca Sartori (\u00e2@spaghettidba) for his help<\/span><\/p>\n<p style=\"margin:0; font-family:Consolas, Courier New, Courier, monospace\"> <span style=\"color:darkgreen;\"> .*\/<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/* Revised 27th June &nbsp; Dynamic data masking is a great product and solves some niche problems that come if you need to do certain testing with live data at the application level. You should, however, beware of using it as a database-level security device. I haven&#39;t yet used it in testing because I don&#39;t&#8230;&hellip;<\/p>\n","protected":false},"author":154613,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2],"tags":[],"coauthors":[6813],"class_list":["post-26278","post","type-post","status-publish","format-standard","hentry","category-blogs"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/26278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/154613"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=26278"}],"version-history":[{"count":19,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/26278\/revisions"}],"predecessor-version":[{"id":68418,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/26278\/revisions\/68418"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=26278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=26278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=26278"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=26278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}