<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>security &#8211; SQLpowered.com</title>
	<atom:link href="https://sqlpowered.com/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>https://sqlpowered.com</link>
	<description>SQL Server + BI</description>
	<lastBuildDate>Sun, 07 Mar 2021 10:29:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://sqlpowered.com/wp-content/uploads/2020/07/FavIcon-e1594067873682-99x100.png</url>
	<title>security &#8211; SQLpowered.com</title>
	<link>https://sqlpowered.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Dynamic Data Masking in Azure SQL</title>
		<link>https://sqlpowered.com/dynamic-data-masking-in-azure-sql/</link>
					<comments>https://sqlpowered.com/dynamic-data-masking-in-azure-sql/#respond</comments>
		
		<dc:creator><![CDATA[Jan Dvořák]]></dc:creator>
		<pubDate>Thu, 31 Oct 2019 22:49:03 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://sqlpowered.com/?p=3400</guid>

					<description><![CDATA[Dynamic Data Masking is available for Azure SQL Database as one of the main security features. There is more on Data Masking on Microsoft Docs. I don&#8217;t want to repeat all these technical details, but rather provide you with a simple tutorial on how to set up Dynamic Data Masking...]]></description>
										<content:encoded><![CDATA[<p>Dynamic Data Masking is available for Azure SQL Database as one of the main security features. There is more on Data Masking on <a href="https://docs.microsoft.com/en-us/sql/relational-databases/security/dynamic-data-masking?view=sql-server-ver15" target="_blank" rel="noopener noreferrer">Microsoft Docs</a>. I don&#8217;t want to repeat all these technical details, but rather provide you with a simple tutorial on how to set up Dynamic Data Masking for Azure SQL Database. Free <a href="https://azure.microsoft.com/en-us/free/" target="_blank" rel="noopener noreferrer">Azure subscription</a> is the only thing you will need to try. Please create one Azure SQL Database for testing or use an existing one.</p>
<h3>Creating a masking rule</h3>
<p>1. Navigate to your database in Azure Portal and choose the Dynamic Data Masking item from the Security menu:</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-3402" src="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01.png" alt="" width="626" height="299" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01.png 1299w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-150x72.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-300x143.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-768x367.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-1024x490.png 1024w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-160x76.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-320x153.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-512x245.png 512w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-711x340.png 711w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-941x450.png 941w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-1046x500.png 1046w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_01-520x249.png 520w" sizes="(max-width: 626px) 100vw, 626px" /></p>
<p>2. Click <em>Add mask</em> button to create a new masking rule. I&#8217;m using AdwentureWorkLT as a sample database for this tutorial. There is table <em>SalesLT.Customer</em> table with column <em>EmailAddress</em> which I would like to mask to hide email addresses from low privileged users.</p>
<p>There are few predefined masking functions and one of them is created exactly for simple masking of email addresses. Please choose it in the field <em><strong>Masking field format:</strong></em></p>
<p><img decoding="async" class="alignnone wp-image-3403" src="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02.png" alt="" width="272" height="410" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02.png 439w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-66x100.png 66w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-199x300.png 199w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-106x160.png 106w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-212x320.png 212w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-162x245.png 162w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-225x340.png 225w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-298x450.png 298w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_02-332x500.png 332w" sizes="(max-width: 272px) 100vw, 272px" /></p>
<p>3. Save the rule and you will see it listed in the Masking rules overview:</p>
<p><img decoding="async" class="alignnone wp-image-3404" src="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03.png" alt="" width="478" height="269" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03.png 907w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-150x85.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-300x169.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-768x433.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-160x90.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-320x180.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-435x245.png 435w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-603x340.png 603w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-799x450.png 799w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-887x500.png 887w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_03-520x293.png 520w" sizes="(max-width: 478px) 100vw, 478px" /></p>
<p>We have successfully created a masking rule to hide email addresses and we will test it now.</p>
<h3>Testing masking rule</h3>
<p>Connect to Azure SQL Database for which we have created masking rule and run following script from SSMS, Azure Data Studio, or Query Editor in Azure Portal:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="sql">-- run as admin user
SELECT CustomerID, EmailAddress FROM SalesLT.Customer
GO

-- create user with low permissions
CREATE USER LowPermUser WITHOUT LOGIN
GO

-- grant SELECT to LowPermUser
GRANT SELECT ON SalesLT.Customer TO LowPermUser
GO

-- execute as LowPermUser
EXECUTE AS USER = 'LowPermUser'

SELECT CustomerID, EmailAddress FROM SalesLT.Customer
GO</pre>
<p>Result set 1:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3405" src="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04.png" alt="" width="254" height="181" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04.png 356w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04-140x100.png 140w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04-300x214.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04-160x114.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04-320x228.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_04-343x245.png 343w" sizes="auto, (max-width: 254px) 100vw, 254px" /></p>
<p>Result set 2:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3406" src="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_05.png" alt="" width="247" height="162" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_05.png 318w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_05-150x98.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_05-300x196.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_05-160x105.png 160w" sizes="auto, (max-width: 247px) 100vw, 247px" /></p>
<p>The query will return two result sets you can see above. How that works?</p>
<p>1. The first result set is coming from a simple select to source table which we have executed against the database under the admin account which has by default all data unmasked.</p>
<p>2. We have created low privileged database user <em>LowPermUser </em>and granted only SELECT permission on our sample table.</p>
<p>3. We switched execution context to the <em>LowPermUser</em> and executed again SELECT query which returned Result set 2 containing email addresses masked with the predefined Email masking function.</p>
<p>That&#8217;s it. Easy.</p>
<p>if you would like to review existing masking rules configured for the database then it can be done with this simple query:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="sql">SELECT 
	s.name SchemaName, t.name TableName, c.name ColumnName, 
	c.is_masked, c.masking_function
FROM sys.masked_columns c
	INNER JOIN sys.tables t ON t.object_id = c.object_id 
	INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
GO</pre>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3407" src="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06.png" alt="" width="488" height="35" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06.png 655w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06-150x11.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06-300x22.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06-160x11.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06-320x23.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Dynamic_Data_Masking_Tutorial_06-520x37.png 520w" sizes="auto, (max-width: 488px) 100vw, 488px" /></p>
<p>As a next step, I will recommend reviewing some <a href="https://sqlsunday.com/2018/02/05/an-alternative-to-data-masking/" target="_blank" rel="noopener noreferrer">security concerns</a> related to Dynamic Data Masking.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sqlpowered.com/dynamic-data-masking-in-azure-sql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Configure Azure SQL Transparent Data Encryption With Your Own Key</title>
		<link>https://sqlpowered.com/configure-azure-sql-transparent-data-encryption-with-your-own-key/</link>
					<comments>https://sqlpowered.com/configure-azure-sql-transparent-data-encryption-with-your-own-key/#respond</comments>
		
		<dc:creator><![CDATA[Jan Dvořák]]></dc:creator>
		<pubDate>Mon, 28 Oct 2019 20:52:07 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://sqlpowered.com/?p=3409</guid>

					<description><![CDATA[Transparent Data Encryption is by default configured for Azure SQL Database to use service managed key. This means that Azure is managing encryption keys for you with 90 days rotation. If you have some regulatory or data privacy requirement you can change the default setting and encrypt Azure SQL Database...]]></description>
										<content:encoded><![CDATA[<p>Transparent Data Encryption is by default configured for Azure SQL Database to use service managed key. This means that Azure is managing encryption keys for you with 90 days rotation. If you have some regulatory or data privacy requirement you can change the default setting and encrypt Azure SQL Database with your own key. I will show you how to set it all using the Azure Key Vault step-by-step in this tutorial.</p>
<p>The only one prerequisite you will need is configured Azure SQL Server. There is no need to have any database created because TDE is configured at server level and at database level you can only switch it on or off.</p>
<p>To use our own encryption keys we need to have Azure Key Vault preconfigured. If you haven&#8217;t done it till now, follow a few simple steps listed below.</p>
<h3>Configure Azure Key Vault</h3>
<p>Open Azure Portal and search for Key Vault item in available services. Click on the Create button and complete the form using your own Resource group name:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3411" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1.png" alt="" width="657" height="450" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1.png 1114w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-146x100.png 146w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-300x205.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-768x525.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-1024x700.png 1024w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-160x109.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-320x219.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-358x245.png 358w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-497x340.png 497w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-658x450.png 658w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-731x500.png 731w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_1-520x356.png 520w" sizes="auto, (max-width: 657px) 100vw, 657px" /></p>
<p>Press the Review + Create button and wait a few seconds before the deployment is completed.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3412" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2.png" alt="" width="547" height="192" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2.png 968w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-150x53.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-300x105.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-768x270.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-160x56.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-320x112.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-520x183.png 520w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_2-720x253.png 720w" sizes="auto, (max-width: 547px) 100vw, 547px" /></p>
<h3>Create encryption key</h3>
<p>When the Key vault was successfully created we can create a new key that will be later used by for encryption by TDE service. Select for Keys item in the Settings section and Genera new one:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3413" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3.png" alt="" width="590" height="322" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3.png 968w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-150x82.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-300x164.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-768x419.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-160x87.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-320x175.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-449x245.png 449w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-623x340.png 623w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-825x450.png 825w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-917x500.png 917w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_3-520x284.png 520w" sizes="auto, (max-width: 590px) 100vw, 590px" /></p>
<p>Name of the key is up to you. For other items, we will use default settings.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3414" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4.png" alt="" width="321" height="439" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4.png 541w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-73x100.png 73w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-220x300.png 220w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-117x160.png 117w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-234x320.png 234w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-179x245.png 179w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-249x340.png 249w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-329x450.png 329w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-366x500.png 366w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_4-520x710.png 520w" sizes="auto, (max-width: 321px) 100vw, 321px" /></p>
<p>Press the Create button and verify that the creation of the key was completed:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3415" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5.png" alt="" width="635" height="330" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5.png 1017w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-150x78.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-300x156.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-768x399.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-160x83.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-320x166.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-472x245.png 472w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-655x340.png 655w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-867x450.png 867w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-963x500.png 963w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_5-520x270.png 520w" sizes="auto, (max-width: 635px) 100vw, 635px" /></p>
<h3>Configure Transparent data encryption</h3>
<p>Navigate to your SQL Server instance and in the Security group and click on Transparent data encryption item. As you can see using service-managed keys is the default option.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3416" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06.png" alt="" width="742" height="310" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06.png 1319w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-150x63.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-300x125.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-768x321.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-1024x428.png 1024w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-160x67.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-320x134.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-520x217.png 520w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-720x301.png 720w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-980x409.png 980w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_06-1197x500.png 1197w" sizes="auto, (max-width: 742px) 100vw, 742px" /></p>
<p>Because we will use for the encryption our own keys, change the setting to Yes and when prompted pickup you Azure Key Vault and select proper encryption Key:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3417" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7.png" alt="" width="718" height="438" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7.png 1312w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-150x91.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-300x183.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-768x468.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-1024x624.png 1024w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-160x98.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-320x195.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-402x245.png 402w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-558x340.png 558w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-738x450.png 738w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-820x500.png 820w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_7-520x317.png 520w" sizes="auto, (max-width: 718px) 100vw, 718px" /></p>
<p>Finally, press the Save button.</p>
<p>If saving your new configuration has failed with following error, continue with next step:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3418" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_8.png" alt="" width="319" height="149" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_8.png 518w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_8-150x70.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_8-300x140.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_8-160x75.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_8-320x149.png 320w" sizes="auto, (max-width: 319px) 100vw, 319px" /></p>
<p>Using Azure Key Vault together with TDE requires the Key Vault to be properly configured. <a href="https://docs.microsoft.com/cs-cz/azure/key-vault/key-vault-ovw-soft-delete"><em>Soft delete</em></a> functionality needs to be enabled to protect you against full data loss in case of accidental deletion of encryption keys. There is no such configuration option in Azure Portal and we will need to open Cloud Shell and configure the required setting using <a href="https://docs.microsoft.com/cs-cz/azure/key-vault/key-vault-soft-delete-powershell">Powershell</a>:</p>
<pre class="lang:ps decode:true">($resource = Get-AzResource -ResourceId (Get-AzKeyVault -VaultName "ContosoVault").ResourceId).Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"

Set-AzResource -resourceid $resource.ResourceId -Properties $resource.Properties</pre>
<p>Console output:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3419" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9.png" alt="" width="1839" height="472" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9.png 1839w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-150x38.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-300x77.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-768x197.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-1024x263.png 1024w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-160x41.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-320x82.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-520x133.png 520w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-720x185.png 720w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-980x252.png 980w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_9-1320x339.png 1320w" sizes="auto, (max-width: 1839px) 100vw, 1839px" /></p>
<p>You can navigate back to Key Vault detail to check is the configuration succeed:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3420" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10.png" alt="" width="617" height="144" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10.png 1782w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-150x35.png 150w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-300x70.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-768x179.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-1024x238.png 1024w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-160x37.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-320x75.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-520x121.png 520w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-720x168.png 720w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-980x228.png 980w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_10-1320x307.png 1320w" sizes="auto, (max-width: 617px) 100vw, 617px" /></p>
<p>Let&#8217;s go back to TDE configuration screen and try again:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-3421" src="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11.png" alt="" width="553" height="421" srcset="https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11.png 930w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-131x100.png 131w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-300x229.png 300w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-768x585.png 768w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-160x122.png 160w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-320x244.png 320w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-321x245.png 321w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-446x340.png 446w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-590x450.png 590w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-656x500.png 656w, https://sqlpowered.com/wp-content/uploads/2019/10/Azure_Using_Own_Key_For_Transparent_Data_Encryption_11-520x396.png 520w" sizes="auto, (max-width: 553px) 100vw, 553px" /></p>
<p>The operation completed successfully this time and our TDE is using our own keys stored in Azure Key Vault instead of service-managed keys.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sqlpowered.com/configure-azure-sql-transparent-data-encryption-with-your-own-key/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
