Skip to content

Commit 96e5d6a

Browse files
Merge branch 'dimitri-furman-3' of https://github.com/dimitri-furman/azure-docs-pr into dimitri-furman-3
2 parents c4c8c8c + b3d11eb commit 96e5d6a

376 files changed

Lines changed: 6524 additions & 2670 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

azure-sql/accelerated-database-recovery.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ ms.subservice: high-availability
77
ms.custom: sqldbrb=4
88
ms.devlang:
99
ms.topic: conceptual
10-
author: mashamsft
11-
ms.author: mathoma
12-
ms.reviewer: sstein
10+
author: stevestein
11+
ms.author: sstein
12+
ms.reviewer:
1313
ms.date: 05/19/2020
1414
---
1515
# Accelerated Database Recovery in Azure SQL
1616
[!INCLUDE[appliesto-sqldb-sqlmi](includes/appliesto-sqldb-sqlmi.md)]
1717

1818
**Accelerated Database Recovery (ADR)** is a SQL Server database engine feature that greatly improves database availability, especially in the presence of long running transactions, by redesigning the SQL Server database engine recovery process.
1919

20-
ADR is currently available for Azure SQL Database, Azure SQL Managed Instance, databases in Azure Synapse Analytics (currently in preview), and SQL Server on Azure VMs starting with SQL Server 2019.
20+
ADR is currently available for Azure SQL Database, Azure SQL Managed Instance, databases in Azure Synapse Analytics, and SQL Server on Azure VMs starting with SQL Server 2019.
2121

2222
> [!NOTE]
2323
> ADR is enabled by default in Azure SQL Database and Azure SQL Managed Instance and disabling ADR for either product is not supported.

azure-sql/azure-hybrid-benefit.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ SQL Database customers have the following rights associated with Azure Hybrid Be
8383

8484
|License footprint|What does Azure Hybrid Benefit for SQL Server get you?|
8585
|---|---|
86-
|SQL Server Enterprise Edition core customers with SA|<li>Can pay base rate on either General Purpose or Business Critical SKU</li><br><li>1 core on-premises = 4 cores in General Purpose SKU</li><br><li>1 core on-premises = 1 core in Business Critical SKU</li>|
87-
|SQL Server Standard Edition core customers with SA|<li>Can pay base rate on General Purpose SKU only</li><br><li>1 core on-premises = 1 core in General Purpose SKU</li>|
86+
|SQL Server Enterprise Edition core customers with SA|<li>Can pay base rate on Hyperscale, General Purpose, or Business Critical SKU</li><br><li>1 core on-premises = 4 cores in Hyperscale SKU</li><br><li>1 core on-premises = 4 cores in General Purpose SKU</li><br><li>1 core on-premises = 1 core in Business Critical SKU</li>|
87+
|SQL Server Standard Edition core customers with SA|<li>Can pay base rate on Hyperscale and General Purpose SKU only</li><br><li>1 core on-premises = 1 core in Hyperscale SKU</li><br><li>1 core on-premises = 1 core in General Purpose SKU</li>|
8888
|||
8989

9090

azure-sql/database/active-directory-interactive-connect-azure-sql-db.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ ms.author: MirekS
1212
ms.reviewer: vanto
1313
ms.date: 04/23/2020
1414
---
15-
# Connect to Azure SQL Database with Azure Multi-Factor Authentication
15+
# Connect to Azure SQL Database with Azure AD Multi-Factor Authentication
1616
[!INCLUDE[appliesto-sqldb](../includes/appliesto-sqldb.md)]
1717

18-
This article provides a C# program that connects to Azure SQL Database. The program uses interactive mode authentication, which supports [Azure Multi-Factor Authentication](../../active-directory/authentication/concept-mfa-howitworks.md).
18+
This article provides a C# program that connects to Azure SQL Database. The program uses interactive mode authentication, which supports [Azure AD Multi-Factor Authentication](../../active-directory/authentication/concept-mfa-howitworks.md).
1919

2020
For more information about Multi-Factor Authentication support for SQL tools, see [Azure Active Directory support in SQL Server Data Tools (SSDT)](/sql/ssdt/azure-active-directory).
2121

@@ -33,7 +33,7 @@ Starting in .NET Framework version 4.7.2, the enum [`SqlAuthenticationMethod`](/
3333

3434
* A dialog box that asks for a Multi-Factor Authentication verification code, which the system has sent to a mobile phone.
3535

36-
For information about how to configure Azure AD to require Multi-Factor Authentication, see [Getting started with Azure Multi-Factor Authentication in the cloud](../../active-directory/authentication/howto-mfa-getstarted.md).
36+
For information about how to configure Azure AD to require Multi-Factor Authentication, see [Getting started with Azure AD Multi-Factor Authentication in the cloud](../../active-directory/authentication/howto-mfa-getstarted.md).
3737

3838
For screenshots of these dialog boxes, see [Configure multi-factor authentication for SQL Server Management Studio and Azure AD](authentication-mfa-ssms-configure.md).
3939

azure-sql/database/active-geo-replication-overview.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ By default, the backup storage redundancy of the secondary is same as that of th
127127
> Transaction log rate on the primary may be throttled for reasons unrelated to lower compute size on a secondary. This kind of throttling may occur even if the secondary has the same or higher compute size than the primary. For details, including wait types for different kinds of log rate throttling, see [Transaction log rate governance](resource-limits-logical-server.md#transaction-log-rate-governance).
128128
129129
> [!NOTE]
130-
> Azure SQL Database Configurable Backup Storage Redundancy is currently generally available in Southeast Asia Azure region only. When the source database is created with locally-redundant or zone-redundant backup storage redundancy, creating a secondary database in a different Azure region is not supported.
130+
> Azure SQL Database Configurable Backup Storage Redundancy is currently available in public preview in Brazil South and generally available in Southeast Asia Azure region only. When the source database is created with locally-redundant or zone-redundant backup storage redundancy, creating a secondary database in a different Azure region is not supported.
131131
132132
For more information on the SQL Database compute sizes, see [What are SQL Database Service Tiers](purchasing-models.md).
133133

@@ -239,7 +239,7 @@ To measure lag with respect to changes on the primary database that have been ap
239239
240240
## Programmatically managing active geo-replication
241241

242-
As discussed previously, active geo-replication can also be managed programmatically using Azure PowerShell and the REST API. The following tables describe the set of commands available. Active geo-replication includes a set of Azure Resource Manager APIs for management, including the [Azure SQL Database REST API](/rest/api/sql/) and [Azure PowerShell cmdlets](/powershell/azure/). These APIs require the use of resource groups and support role-based security (RBAC). For more information on how to implement access roles, see [Azure role-based access control (Azure RBAC)](../../role-based-access-control/overview.md).
242+
As discussed previously, active geo-replication can also be managed programmatically using Azure PowerShell and the REST API. The following tables describe the set of commands available. Active geo-replication includes a set of Azure Resource Manager APIs for management, including the [Azure SQL Database REST API](/rest/api/sql/) and [Azure PowerShell cmdlets](/powershell/azure/). These APIs require the use of resource groups and support Azure role-based access control (Azure RBAC). For more information on how to implement access roles, see [Azure role-based access control (Azure RBAC)](../../role-based-access-control/overview.md).
243243

244244
### T-SQL: Manage failover of single and pooled databases
245245

@@ -297,4 +297,4 @@ As discussed previously, active geo-replication can also be managed programmatic
297297
- For a business continuity overview and scenarios, see [Business continuity overview](business-continuity-high-availability-disaster-recover-hadr-overview.md)
298298
- To learn about Azure SQL Database automated backups, see [SQL Database automated backups](automated-backups-overview.md).
299299
- To learn about using automated backups for recovery, see [Restore a database from the service-initiated backups](recovery-using-backups.md).
300-
- To learn about authentication requirements for a new primary server and database, see [SQL Database security after disaster recovery](active-geo-replication-security-configure.md).
300+
- To learn about authentication requirements for a new primary server and database, see [SQL Database security after disaster recovery](active-geo-replication-security-configure.md).

azure-sql/database/alerts-insights-configure-portal.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.devlang:
99
ms.topic: how-to
1010
author: aamalvea
1111
ms.author: aamalvea
12-
ms.reviewer: jrasnik, sstein
12+
ms.reviewer: wiassaf, sstein
1313
ms.date: 05/04/2020
1414
---
1515
# Create alerts for Azure SQL Database and Azure Synapse Analytics using the Azure portal
@@ -18,7 +18,7 @@ ms.date: 05/04/2020
1818

1919
## Overview
2020

21-
This article shows you how to set up alerts for databases in Azure SQL Database and Azure Synapse Analytics (formerly SQL Data Warehouse) using the Azure portal. Alerts can send you an email or call a web hook when some metric (for example database size or CPU usage) reaches the threshold.
21+
This article shows you how to set up alerts for databases in Azure SQL Database and Azure Synapse Analytics using the Azure portal. Alerts can send you an email or call a web hook when some metric (for example database size or CPU usage) reaches the threshold.
2222

2323
> [!NOTE]
2424
> For Azure SQL Managed Instance specific instructions, see [Create alerts for Azure SQL Managed Instance](../managed-instance/alerts-create.md).

azure-sql/database/always-encrypted-azure-key-vault-configure.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ keywords: data encryption, encryption key, cloud encryption
55
services: sql-database
66
ms.service: sql-database
77
ms.subservice: security
8-
ms.custom: sqldbrb=1
8+
ms.custom: sqldbrb=1, devx-track-azurecli
99
ms.devlang:
1010
ms.topic: how-to
1111
author: VanMSFT
1212
ms.author: vanto
1313
ms.reviewer:
14-
ms.date: 04/23/2020
14+
ms.date: 11/02/2020
1515
---
1616
# Configure Always Encrypted by using Azure Key Vault
1717

@@ -94,8 +94,8 @@ az group create --location $location --name $resourceGroupName
9494
9595
az keyvault create --name $vaultName --resource-group $resourceGroupName --location $location
9696
97-
az keyvault set-policy --name $vaultName --key-permissions create, get, list, sign, unwrapKey, verify, wrapKey --resource-group $resourceGroupName --upn $userPrincipalName
98-
az keyvault set-policy --name $vaultName --key-permissions get, list, sign, unwrapKey, verify, wrapKey --resource-group $resourceGroupName --spn $applicationId
97+
az keyvault set-policy --name $vaultName --key-permissions create get list sign unwrapKey verify wrapKey --resource-group $resourceGroupName --upn $userPrincipalName
98+
az keyvault set-policy --name $vaultName --key-permissions get list sign unwrapKey verify wrapKey --resource-group $resourceGroupName --spn $applicationId
9999
```
100100

101101
---
@@ -603,4 +603,4 @@ After your database is configured to use Always Encrypted, you may want to do th
603603
- [Transparent data encryption](/sql/relational-databases/security/encryption/transparent-data-encryption)
604604
- [SQL Server encryption](/sql/relational-databases/security/encryption/sql-server-encryption)
605605
- [Always Encrypted wizard](/sql/relational-databases/security/encryption/always-encrypted-wizard)
606-
- [Always Encrypted blog](/archive/blogs/sqlsecurity/always-encrypted-key-metadata)
606+
- [Always Encrypted blog](/archive/blogs/sqlsecurity/always-encrypted-key-metadata)
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
title: "Configure Azure Attestation for your Azure SQL logical server"
3+
description: "Configure Azure Attestation for Always Encrypted with secure enclaves in Azure SQL Database."
4+
keywords: encrypt data, sql encryption, database encryption, sensitive data, Always Encrypted, secure enclaves, SGX, attestation
5+
services: sql-database
6+
ms.service: sql-database
7+
ms.subservice: security
8+
ms.devlang:
9+
ms.topic: how-to
10+
author: jaszymas
11+
ms.author: jaszymas
12+
ms.reviwer: vanto
13+
ms.date: 01/15/2021
14+
---
15+
16+
# Configure Azure Attestation for your Azure SQL logical server
17+
18+
[!INCLUDE[appliesto-sqldb](../includes/appliesto-sqldb.md)]
19+
20+
> [!NOTE]
21+
> Always Encrypted with secure enclaves for Azure SQL Database is currently in **public preview**.
22+
23+
[Microsoft Azure Attestation](../../attestation/overview.md) is a solution for attesting Trusted Execution Environments (TEEs), including Intel Software Guard Extensions (Intel SGX) enclaves.
24+
25+
To use Azure Attestation for attesting Intel SGX enclaves used for [Always Encrypted with secure enclaves](/sql/relational-databases/security/encryption/always-encrypted-enclaves) in Azure SQL Database, you need to:
26+
27+
1. Create an [attestation provider](../../attestation/basic-concepts.md#attestation-provider) and configure it with the recommended attestation policy.
28+
29+
2. Grant your Azure SQL logical server access to your attestation provider.
30+
31+
> [!NOTE]
32+
> Configuring attestation is the responsibility of the attestation administrator. See [Roles and responsibilities when configuring SGX enclaves and attestation](always-encrypted-enclaves-plan.md#roles-and-responsibilities-when-configuring-sgx-enclaves-and-attestation).
33+
34+
## Requirements
35+
36+
The Azure SQL logical server and the attestation provider must belong to the same Azure Active Directory tenant. Cross-tenant interactions aren't supported.
37+
38+
The Azure SQL logical server must have an Azure AD identity assigned to it. As the attestation administrator you need to obtain the Azure AD identity of the server from the Azure SQL Database administrator for that server. You will use the identity to grant the server access to the attestation provider.
39+
40+
For instructions on how to create a server with an identity or assign an identity to an existing server using PowerShell and Azure CLI, see [Assign an Azure AD identity to your server](transparent-data-encryption-byok-configure.md#assign-an-azure-active-directory-azure-ad-identity-to-your-server).
41+
42+
## Create and configure an attestation provider
43+
44+
An [attestation provider](../../attestation/basic-concepts.md#attestation-provider) is a resource in Azure Attestation that evaluates [attestation requests](../../attestation/basic-concepts.md#attestation-request) against [attestation policies](../../attestation/basic-concepts.md#attestation-request) and issues [attestation tokens](../../attestation/basic-concepts.md#attestation-token).
45+
46+
Attestation policies are specified using the [claim rule grammar](../../attestation/claim-rule-grammar.md).
47+
48+
Microsoft recommends the following policy for attesting Intel SGX enclaves used for Always Encrypted in Azure SQL Database:
49+
50+
```output
51+
version= 1.0;
52+
authorizationrules
53+
{
54+
[ type=="x-ms-sgx-is-debuggable", value==false ]
55+
&& [ type=="x-ms-sgx-product-id", value==4639 ]
56+
&& [ type=="x-ms-sgx-svn", value>= 0 ]
57+
&& [ type=="x-ms-sgx-mrsigner", value=="e31c9e505f37a58de09335075fc8591254313eb20bb1a27e5443cc450b6e33e5"]
58+
=> permit();
59+
};
60+
```
61+
62+
The above policy verifies:
63+
64+
- The enclave inside Azure SQL Database doesn't support debugging (which would reduce the level of protection the enclave provides).
65+
- The product ID of the library inside the enclave is the product ID assigned to Always Encrypted with secure enclaves (4639).
66+
- The version ID (svn) of the library is greater than 0.
67+
- The library in the enclave has been signed using the Microsoft signing key (the value of the x-ms-sgx-mrsigner claim is the hash of the signing key).
68+
69+
> [!IMPORTANT]
70+
> An attestation provider gets created with the default policy for Intel SGX enclaves, which does not validate the code running inside the enclave. Microsoft strongly advises you set the above recommended policy, and not use the default policy, for Always Encrypted with secure enclaves.
71+
72+
For instructions for how to create an attestation provider and configure with an attestation policy using:
73+
74+
- [Quickstart: Set up Azure Attestation with Azure portal](../../attestation/quickstart-portal.md)
75+
> [!IMPORTANT]
76+
> When you configure your attestation policy with Azure portal, set Attestation Type to `SGX-IntelSDK`.
77+
- [Quickstart: Set up Azure Attestation with Azure PowerShell](../../attestation/quickstart-powershell.md)
78+
> [!IMPORTANT]
79+
> When you configure your attestation policy with Azure PowerShell, set the `Tee` parameter to `SgxEnclave`.
80+
- [Quickstart: Set up Azure Attestation with Azure CLI](../../attestation/quickstart-azure-cli.md)
81+
> [!IMPORTANT]
82+
> When you configure your attestation policy with Azure CLI, set the `attestation-type` parameter to `SGX-IntelSDK`.
83+
84+
## Determine the attestation URL for your attestation policy
85+
86+
After you've configured an attestation policy, you need to share the attestation URL, referencing the policy, administrators of applications that use Always Encrypted with secure enclaves in Azure SQL Database. Application administrators or/and application users will need to configure their apps with the attestation URL, so that they can run statements that use secure enclaves.
87+
88+
### Use PowerShell to determine the attestation URL
89+
90+
Use the following script to determine your attestation URL:
91+
92+
```powershell
93+
$attestationProvider = Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName
94+
$attestationUrl = $attestationProvider.AttestUri + “/attest/SgxEnclave”
95+
Write-Host "Your attestation URL is: " $attestationUrl
96+
```
97+
98+
### Use Azure portal to determine the attestation URL
99+
100+
1. In the Overview pane for your attestation provider, copy the value of the Attest URI property to clipboard. An Attest URI should look like this: `https://MyAttestationProvider.us.attest.azure.net`.
101+
102+
2. Append the following to the Attest URI: `/attest/SgxEnclave`.
103+
104+
The resulting attestation URL should look like this: `https://MyAttestationProvider.us.attest.azure.net/attest/SgxEnclave`
105+
106+
## Grant your Azure SQL logical server access to your attestation provider
107+
108+
During the attestation workflow, the Azure SQL logical server containing your database calls the attestation provider to submit an attestation request. For the Azure SQL logical server to be able to submit attestation requests, the server must have a permission for the `Microsoft.Attestation/attestationProviders/attestation/read` action on the attestation provider. The recommended way to grant the permission is for the administrator of the attestation provider to assign the Azure AD identity of the server to the Attestation Reader role for the attestation provider, or its containing resource group.
109+
110+
### Use Azure portal to assign permission
111+
112+
To assign the identity of an Azure SQL server to the Attestation Reader role for an attestation provider, follow the general instructions in [Add or remove Azure role assignments using the Azure portal](../../role-based-access-control/role-assignments-portal.md). When you are in the **Add role assignment** pane:
113+
114+
1. In the **Role** drop-down, select the **Attestation Reader** role.
115+
1. In the **Select** field, enter the name of your Azure SQL server to search for it.
116+
117+
See the below screenshot for an example.
118+
119+
![attestation reader role assignment](./media/always-encrypted-enclaves/attestation-provider-role-assigment.png)
120+
121+
> [!NOTE]
122+
> For a server to show up in the **Add role assignment** pane, the server must have an Azure AD identity assigned - see [Requirements](#requirements).
123+
124+
### Use PowerShell to assign permission
125+
126+
1. Find your Azure SQL logical server.
127+
128+
```powershell
129+
$serverResourceGroupName = "<server resource group name>"
130+
$serverName = "<server name>"
131+
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName
132+
```
133+
134+
2. Assign the server to the Attestation Reader role for the resource group containing your attestation provider.
135+
136+
```powershell
137+
$attestationResourceGroupName = "<attestation provider resource group name>"
138+
New-AzRoleAssignment -ObjectId $server.Identity.PrincipalId -RoleDefinitionName "Attestation Reader" -ResourceGroupName $attestationResourceGroupName
139+
```
140+
141+
For more information, see [Add or remove Azure role assignments using Azure PowerShell](../../role-based-access-control/role-assignments-powershell.md#add-role-assignment-examples).
142+
143+
## Next Steps
144+
145+
- [Manage keys for Always Encrypted with secure enclaves](/sql/relational-databases/security/encryption/always-encrypted-enclaves-manage-keys)
146+
147+
## See also
148+
149+
- [Tutorial: Getting started with Always Encrypted with secure enclaves in Azure SQL Database](always-encrypted-enclaves-getting-started.md)

0 commit comments

Comments
 (0)