{"id":9860,"date":"2017-03-14T11:14:06","date_gmt":"2017-03-14T10:14:06","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/"},"modified":"2017-03-14T11:14:06","modified_gmt":"2017-03-14T10:14:06","slug":"sql-server-2016-does-dynamic-data-masking-work-with-temporal-table","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/","title":{"rendered":"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?"},"content":{"rendered":"<p>In the last IT Tagen 2016, I presented the Dynamic Data Masking (DDM) and how it worked.<br \/>\nTo add a little fun, I applied the DDM to a temporal table to see if the history table inherits also from DDM\u2019s rules.<br \/>\nIn this blog, I explain all the different steps to reproduce my last demo.<\/p>\n<h3>Step 1: Create the table and the temporal table in the database DDM_TEST<\/h3>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">USE [DDM_TEST]\nGO\n\nCREATE TABLE [dbo].[Confidential](\n[ID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,\n[Name] [nvarchar](70)NULL,\n[CreditCard] [nvarchar](16)NULL,\n[Salary] [int] NULL,\n[Email] [nvarchar](60)NULL,\n  [StartDate] datetime2 GENERATED ALWAYS AS ROW START NOT NULL,\n  [EndDate] datetime2 GENERATED ALWAYS AS ROW END NOT NULL  \n   , PERIOD FOR SYSTEM_TIME (StartDate,EndDate)\n)  WITH (SYSTEM_VERSIONING=ON(HISTORY_TABLE = [dbo].[ConfidentialHistory]))<\/pre>\n<p>The table has sensitive data like the Salary and the Credit Card number.<br \/>\nAs you can see, I add a history table [dbo].[ConfidentialHistory].<br \/>\nI insert 6 rows into my table and select both tables.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">insert into [dbo].[Confidential]([Name],[CreditCard],[Salary],[Email]) values (N'Stephane',N'3546748598467584',113459,N'sts@dbi-services.com')\ninsert into [dbo].[Confidential]([Name],[CreditCard],[Salary],[Email]) values (N'David',N'3546746598450989',143576,'dab@dbi-services.com')\ninsert into [dbo].[Confidential]([Name],[CreditCard],[Salary],[Email])  values (N'Nathan',N'3890098321457893',118900,'nac@dbi-services.com')\ninsert into [dbo].[Confidential]([Name],[CreditCard],[Salary],[Email])  values (N'Olivier',N'3564890234785612',98000,'olt@dbi-services.com')\ninsert into [dbo].[Confidential]([Name],[CreditCard],[Salary],[Email])  values (N'Alain',N'9897436900989342',85900,'ala@dbi-services.com')\ninsert into [dbo].[Confidential]([Name],[CreditCard],[Salary],[Email])  values (N'Fabrice',N'908323468902134',102345,'fad@dbi-services.com')\n\nselect * from [dbo].[Confidential]\nselect * from [dbo].[ConfidentialHistory]\n<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable01.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-15272 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable01.png\" alt=\"DDM_TemporalTable01\" width=\"300\" height=\"116\" \/><\/a><br \/>\nWith just inserts, you have no entries in the history table.<br \/>\nAfter an update for the Salary of Stephane, you can see now the old value in the history table.<br \/>\nTo see both tables I use the new option in the SELECT \u201cFOR SYSTEM_TIME ALL\u201d.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable02.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-15271 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable02.png\" alt=\"DDM_TemporalTable02\" width=\"300\" height=\"149\" \/><\/a><br \/>\nThe context is in place. Now I will apply the DDM<\/p>\n<h3>Step 2: create the DDM rules<\/h3>\n<p>I apply masks on all columns from my table with different function like default, partial or email.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">Use DDM_TEST\nALTER Table Confidential\nALTER COLUMN NAME ADD MASKED WITH (FUNCTION='default()')\nALTER Table Confidential\nALTER COLUMN SALARY ADD MASKED WITH (FUNCTION='default()')\nALTER Table Confidential\nALTER COLUMN creditcard ADD MASKED WITH (FUNCTION='partial(1,\"XXXX\",2)')\nALTER Table Confidential\nALTER COLUMN email ADD MASKED WITH (FUNCTION='email()')\n<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable03.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-15270 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable03.png\" alt=\"DDM_TemporalTable03\" width=\"300\" height=\"159\" \/><\/a><br \/>\nAs you can see if I read the table, nothing appends because I\u2019m sysadmin of course!<br \/>\nNow, I begin the tests with a user who can just read the table.<\/p>\n<h3>Step 3: Test the case<\/h3>\n<p>The user that I create needs to have SELECT permissions on both tables (System-Versioned and History)<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">USE DDM_TEST;\nCREATE USER TestDemo WITHOUT LOGIN\nGRANT SELECT ON Confidential TO TestDemo\nGRANT SELECT ON ConfidentialHistory TO TestDemo\nI execute all SELECT queries as this user:\nEXECUTE AS USER='TestDemo'\nSELECT * FROM [dbo].[Confidential] \nREVERT\nEXECUTE AS USER='TestDemo'\nSELECT * FROM [dbo].[ConfidentialHistory]\nREVERT\nEXECUTE AS USER='TestDemo'\nselect * from [dbo].[Confidential]  FOR SYSTEM_TIME ALL\nREVERT\n<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png\"><img loading=\"lazy\" decoding=\"async\" class=\" size-medium wp-image-15269 aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png\" alt=\"DDM_TemporalTable04\" width=\"300\" height=\"160\" \/><\/a><br \/>\nAs you can see, the 3 selects mask data for this user. Nice, isn\u2019t it?<br \/>\nFinally, the Dynamic Data Masking works with Temporal Tables very well and they can be used to mask all data including historic data from users.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the last IT Tagen 2016, I presented the Dynamic Data Masking (DDM) and how it worked. To add a little fun, I applied the DDM to a temporal table to see if the history table inherits also from DDM\u2019s rules. In this blog, I explain all the different steps to reproduce my last demo. [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":9864,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[49,25,566],"type_dbi":[],"class_list":["post-9860","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-microsoft","tag-security","tag-sql-server-2016"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server 2016: Does Dynamic Data Masking work with Temporal Table? - dbi Blog<\/title>\n<meta name=\"description\" content=\"How to use Dynamic Data Masking with Temporal Table in SQL Server 2016\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?\" \/>\n<meta property=\"og:description\" content=\"How to use Dynamic Data Masking with Temporal Table in SQL Server 2016\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-14T10:14:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1063\" \/>\n\t<meta property=\"og:image:height\" content=\"568\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Haby\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Haby\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/\"},\"author\":{\"name\":\"St\u00e9phane Haby\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0bfb7484ae81c8980fc2b11334f803b\"},\"headline\":\"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?\",\"datePublished\":\"2017-03-14T10:14:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/\"},\"wordCount\":282,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/DDM_TemporalTable04.png\",\"keywords\":[\"Microsoft\",\"Security\",\"SQL Server 2016\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/\",\"name\":\"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/DDM_TemporalTable04.png\",\"datePublished\":\"2017-03-14T10:14:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0bfb7484ae81c8980fc2b11334f803b\"},\"description\":\"How to use Dynamic Data Masking with Temporal Table in SQL Server 2016\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/DDM_TemporalTable04.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/DDM_TemporalTable04.png\",\"width\":1063,\"height\":568},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0bfb7484ae81c8980fc2b11334f803b\",\"name\":\"St\u00e9phane Haby\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g\",\"caption\":\"St\u00e9phane Haby\"},\"description\":\"St\u00e9phane Haby has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies such as installation, migration, best practices, and performance analysis etc. He is also an expert in Microsoft Business Intelligence solutions such as SharePoint, SQL Server and Office. Futhermore, he has many years of .NET development experience in the banking sector and other industries. In France, he was one of the first people to have worked with Microsoft Team System. He has written several technical articles on this subject. St\u00e9phane Haby is Microsoft Most Valuable Professional (MVP) as well as Microsoft Certified Solutions Associate (MCSA) and\u00a0Microsoft Certified Solutions Expert (MCSE) for SQL Server 2012. He is also Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified IT Professional (MCITP) for SQL Server 2008 as well as ITIL Foundation V3 certified. He holds a Engineer diploma in industrial computing and automation from France. His branch-related experience covers Chemicals &amp; Pharmaceuticals, Banking \\\/ Financial Services, and many other industries.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/stephane-haby\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table? - dbi Blog","description":"How to use Dynamic Data Masking with Temporal Table in SQL Server 2016","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?","og_description":"How to use Dynamic Data Masking with Temporal Table in SQL Server 2016","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/","og_site_name":"dbi Blog","article_published_time":"2017-03-14T10:14:06+00:00","og_image":[{"width":1063,"height":568,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png","type":"image\/png"}],"author":"St\u00e9phane Haby","twitter_card":"summary_large_image","twitter_misc":{"Written by":"St\u00e9phane Haby","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/"},"author":{"name":"St\u00e9phane Haby","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b"},"headline":"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?","datePublished":"2017-03-14T10:14:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/"},"wordCount":282,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png","keywords":["Microsoft","Security","SQL Server 2016"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/","name":"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png","datePublished":"2017-03-14T10:14:06+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b"},"description":"How to use Dynamic Data Masking with Temporal Table in SQL Server 2016","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/DDM_TemporalTable04.png","width":1063,"height":568},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-does-dynamic-data-masking-work-with-temporal-table\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2016: Does Dynamic Data Masking work with Temporal Table?"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/d0bfb7484ae81c8980fc2b11334f803b","name":"St\u00e9phane Haby","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1123227ca39a5dca608c0f72d23cd1904fee29979749bbb3a485b9438436c553?s=96&d=mm&r=g","caption":"St\u00e9phane Haby"},"description":"St\u00e9phane Haby has more than ten years of experience in Microsoft solutions. He is specialized in SQL Server technologies such as installation, migration, best practices, and performance analysis etc. He is also an expert in Microsoft Business Intelligence solutions such as SharePoint, SQL Server and Office. Futhermore, he has many years of .NET development experience in the banking sector and other industries. In France, he was one of the first people to have worked with Microsoft Team System. He has written several technical articles on this subject. St\u00e9phane Haby is Microsoft Most Valuable Professional (MVP) as well as Microsoft Certified Solutions Associate (MCSA) and\u00a0Microsoft Certified Solutions Expert (MCSE) for SQL Server 2012. He is also Microsoft Certified Technology Specialist (MCTS) and Microsoft Certified IT Professional (MCITP) for SQL Server 2008 as well as ITIL Foundation V3 certified. He holds a Engineer diploma in industrial computing and automation from France. His branch-related experience covers Chemicals &amp; Pharmaceuticals, Banking \/ Financial Services, and many other industries.","url":"https:\/\/www.dbi-services.com\/blog\/author\/stephane-haby\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9860","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=9860"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9860\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/9864"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9860"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}