gäller för:
Azure SQL Database
Not
- TDE CMK på databasnivå är tillgängligt för Azure SQL Database (alla SQL Database-utgåvor). Den är inte tillgänglig för Azure SQL Managed Instance, SQL Server lokalt, virtuella Azure-datorer och Azure Synapse Analytics (dedikerade SQL-pooler (tidigare SQL DW)).
- Samma guide kan användas för att konfigurera kundhanterade nycklar på databasnivå i samma klientorganisation genom att undanta parametern federerat klient-ID. Mer information om kundhanterade nycklar på databasnivå finns i Transparent datakryptering (TDE) med kundhanterade nycklar på databasnivå.
I den här guiden går vi igenom stegen för att skapa, uppdatera och hämta en Azure SQL Database med transparent datakryptering (TDE) och kundhanterade nycklar (CMK) på databasnivå, med hjälp av en användartilldelad hanterad identitet för åtkomst Azure Key Vault-. Azure Key Vault finns i en annan Microsoft Entra-klientorganisation än Azure SQL Database. För mer information, se kundhanterade nycklar mellan klienter med transparent datakryptering.
Förutsättningar
- Den här guiden förutsätter att du har två Microsoft Entra-klienter.
- Den första består av Azure SQL Database-resursen, ett Microsoft Entra-program med flera klientorganisationer och en användartilldelad hanterad identitet.
- Den andra hyresgästen rymmer Azure Key Vault.
- Omfattande anvisningar om hur du konfigurerar CMK för flera klientorganisationer och de RBAC-behörigheter som krävs för att konfigurera Microsoft Entra-program och Azure Key Vault finns i någon av följande guider:
- Azure CLI version 2.52.0 eller senare.
- Az PowerShell-modul version 10.3.0 eller senare.
- DE RBAC-behörigheter som krävs för CMK på databasnivå är samma behörigheter som krävs för CMK på servernivå. Specifikt gäller samma RBAC-behörigheter som gäller när du använder Azure Key Vault, hanterade identiteteroch CMK för flera klientorganisationer för TDE på servernivå även gäller på databasnivå. Mer information om nyckelhantering och åtkomstprincip finns i Nyckelhantering.
Nödvändiga resurser för den första klientorganisationen
I den här handledningen förutsätter vi att den första klientorganisationen tillhör en oberoende programvaruleverantör (ISV) och att den andra klientorganisationen kommer från deras kund. För mer information om det här scenariot, se kundhanterade nycklar mellan olika klienter med transparent datakryptering.
Innan vi kan konfigurera TDE för Azure SQL Database med en CMK för flera klientorganisationer måste vi ha ett Microsoft Entra-program med flera klientorganisationer som har konfigurerats med en användartilldelad hanterad identitet tilldelad som en federerad identitetsautentiseringsuppgift för programmet. Följ någon av guiderna i Förberedelser.
På den första klientorganisationen där du vill skapa Azure SQL Database skapa och konfigurera ett Microsoft Entra-program med flera klientorganisationer.
Skapa en användartilldelad hanterad identitet.
Konfigurera den användartilldelade hanterade identiteten som en federerad identitetsuppgift för multitenant-applikationen.
Registrera programnamnet och program-ID:t. Detta finns i Azure-portalen>Microsoft Entra ID>företagsapplikationer och sök efter det skapade programmet.
Nödvändiga resurser för den andra hyresgästen
Obs
Azure AD- och MSOnline PowerShell-moduler är inaktuella från och med den 30 mars 2024. Mer information finns i utfasningsuppdatering. Efter det här datumet är stödet för dessa moduler begränsat till migreringshjälp till Microsoft Graph PowerShell SDK och säkerhetskorrigeringar. De inaktuella modulerna fortsätter att fungera till och med mars 30 2025.
Vi rekommenderar att du migrerar till Microsoft Graph PowerShell- för att interagera med Microsoft Entra-ID (tidigare Azure AD). Vanliga frågor om migrering finns i Migrering FAQ.
Obs! version 1.0.x av MSOnline kan uppleva störningar efter den 30 juni 2024.
På den andra klientorganisationen där Azure Key Vault finns skapa ett tjänsthuvudnamn (program) med hjälp av program-ID:t från det registrerade programmet från den första klientorganisationen. Här är några exempel på hur du registrerar programmet för flera klientorganisationer. Ersätt <TenantID>
och <ApplicationID>
med klient-ID Tenant ID från Microsoft Entra ID och program-ID Application ID från den flerklientapplikationen:
Gå till Azure-portalen>Microsoft Entra-ID>företagsprogram och sök efter programmet som har skapats.
Skapa en Azure Key Vault om du inte har en och skapa en nyckel.
Skapa eller ange åtkomstprincipen.
- Välj behörigheterna Get, Wrap Key, Unwrap Key under Nyckelbehörigheter när du skapar åtkomstprincipen.
- Välj det program för flera klientorganisationer som skapades i det första steget under alternativet Principal när du skapar åtkomstprincipen.
När åtkomstprincipen och nyckeln har skapats Hämta nyckeln från Key Vault och registrera key identifier.
Skapa en ny Azure SQL Database med kundhanterade nycklar på databasnivå
Följande är exempel på hur du skapar en databas i Azure SQL Database med en användartilldelad hanterad identitet och hur du anger en kundhanterad nyckel mellan klientorganisationer på databasnivå. Den användartilldelade hanterade identiteten krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.
Navigera till alternativsidan Välj SQL-distribution i Azure-portalen.
Om du inte redan är inloggad på Azure-portalen loggar du in när du uppmanas att göra det.
Under SQL-databaserlåter du resurstyp vara inställd på Enkel databasoch väljer Skapa.
På fliken Grundläggande i formuläret Skapa SQL Database, under Projektinformationväljer du önskad Azure -prenumeration, resursgruppoch Server för databasen. Använd sedan ett unikt namn för ditt -databasnamn. Om du inte har skapat en logisk server för Azure SQL Database, se Skapa server som konfigurerats med TDE och kundhanterad nyckel som är gemensam för flera klientorganisationer (CMK) för referens.
När du kommer till fliken Security väljer du Konfigurera transparent datakryptering.
På menyn Transparent datakryptering väljer du kundhanterad nyckel (CMK) på databasnivå.
För User-Assigned Hanterad identitetväljer du Konfigurera för att aktivera en databasidentitet och Lägg till en användartilldelad hanterad identitet till resursen om en önskad identitet inte finns med på menyn Identity. Välj sedan Använd.
På menyn Transparent datakryptering väljer du Ändra nyckel. Välj önskad Prenumeration, Key Vault, Keyoch Version för den kundhanterade nyckel som ska användas för TDE. Välj knappen Välj. När du har valt en nyckel kan du också lägga till ytterligare databasnycklar efter behov med hjälp av Azure Key vault-URI (objektidentifierare) i menyn Transparent datakryptering.
Automatisk nyckelrotation kan också aktiveras på databasnivå med hjälp av kryssrutan Rotera nyckel automatiskt på menyn Transparent datakryptering.
Välj Använd för att fortsätta skapa databasen.
Välj Granska + skapa längst ned på sidan
På sidan Granska + skapa, efter att ha granskat, väljer du Skapa.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
Skapa en databas som är konfigurerad med en användartilldelad hanterad identitet och en kundhanterad TDE över klientgränser med hjälp av kommandot az sql db create.
nyckelidentifier från den andra klientorganisationen kan användas i fältet encryption-protector
. Det applikations-ID:t för multi-tenant-lösningen kan användas i fältet federated-client-id
. Parametern --encryption-protector-auto-rotation
kan användas för att aktivera automatisk nyckelrotation på databasnivå.
Om du vill få tag på din användartilldelade hanterade identitet resurs-ID, söker du efter hanterade identiteter i Azure-portalen. Hitta din hanterade identitet och gå till Egenskaper. Ett exempel på ditt resurs-ID för UMI ser ut som /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
az sql db create --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --encryption-protector-auto-rotation True
Skapa en databas konfigurerad med användartilldelad hanterad identitet och kundhanterad TDE över flera klientorganisationer, på databasnivå, med hjälp av PowerShell.
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Använd cmdleten New-AzSqlDatabase.
Ersätt följande värden i exemplet:
-
<ResourceGroupName>
: Namnet på resursgruppen för din logiska Azure SQL-server
-
<DatabaseName>
: Använd ett unikt Azure SQL-databasnamn
-
<ServerName>
: Använd ett unikt namn på den logiska Azure SQL-servern
-
<UserAssignedIdentityId>
: Listan över användartilldelade hanterade identiteter som ska tilldelas till servern (kan vara en eller flera)
-
<CustomerManagedKeyId>
: -nyckelidentifieraren från den andra klientnyckelvalvet
-
<FederatedClientId>
: program-ID:t för programmet med flera klientorganisationer
-
-EncryptionProtectorAutoRotation
: Kan användas för att aktivera automatisk nyckelrotation på databasnivå
Om du vill hämta resurs-ID:n för din användartilldelade hanterade identitet , söker du efter Hanterade Identiteter i Azure-portalen . Hitta din hanterade identitet och gå till Egenskaper . Ett exempel på ditt resurs-ID för UMI ser ut som /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
# create a server with user-assigned managed identity and cross-tenant customer-managed TDE with automatic key rotation enabled
$params = @{
ResourceGroupName = '<ResourceGroupName>'
ServerName = '<ServerName>'
DatabaseName = '<DatabaseName>'
AssignIdentity = $true
UserAssignedIdentityId = '<UserAssignedIdentityId>'
EncryptionProtector = '<CustomerManagedKeyId>'
FederatedClientId = '<FederatedClientId>'
EncryptionProtectorAutoRotation = $true
}
New-AzSqlDatabase @params
Här är ett exempel på en ARM-mall som skapar en Azure SQL Database med en användartilldelad hanterad identitet och kundhanterad TDE på databasnivå. För en CMK mellan flera klientorganisationer använder du nyckelidentifieraren från det andra nyckelvalvets klientorganisation och program-ID:t från applikationen för flera klientorganisationer.
Mer information och ARM-mallar finns i Azure Resource Manager-mallar för Azure SQL Database & SQL Managed Instance.
Använd en anpassad distribution i Azure-portalenoch Skapa en egen mall i redigeraren. Sedan Spara konfigurationen när du har klistrat in exemplet.
Om du vill hämta din användartilldelade hanterade identitet resurs-IDsöker du efter Hanterade Identiteter i Azure-portalen. Hitta din hanterade identitet och gå till Egenskaper. Ett exempel på ditt UMI-resurs-ID ser ut som /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"location": {
"type": "String"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Uppdatera en befintlig Azure SQL Database med kundhanterade nycklar på databasnivå
Följande är exempel på hur du uppdaterar en befintlig databas i Azure SQL Database med en användartilldelad hanterad identitet och hur du anger en kundhanterad nyckel mellan klientorganisationer på databasnivå. Den användartilldelade hanterade identiteten krävs för att konfigurera en kundhanterad nyckel för transparent datakryptering under fasen för att skapa databasen.
I Azure-portalengår du till den SQL-databasresurs som du vill uppdatera med en kundhanterad nyckel på databashanterad nivå.
Under Securityväljer du Identity. Lägg till en Användartilldelad hanterad identitet för den här databasen och välj sedan Spara
Gå nu till menyn datakryptering under Security för databasen. Välj kundhanterad nyckel (CMK) på databasnivå .
Database Identity för databasen bör redan vara Aktiverad eftersom du har konfigurerat identiteten i det senaste steget.
Välj Ändra nyckel. Välj önskad Prenumeration, Key Vault, Keyoch Version för den kundhanterade nyckel som ska användas för TDE. Välj knappen Välj. När du har valt en nyckel kan du också lägga till ytterligare databasnycklar efter behov med hjälp av Azure Key Vault-URI (objektidentifierare) på menyn datakryptering.
Markera kryssrutan Automatisk nyckelrotation om du vill aktivera automatisk nyckelrotation på databasnivå.
Välj Spara.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
Uppdatera en databas som är konfigurerad med användartilldelad hanterad identitet och kundhanterad TDE över olika klientorganisationer med hjälp av kommandot az sql db create.
Nyckelidentifieraren från den andra klientorganisationen kan användas i fältet encryption-protector
. Applikations-ID för fleranvändarapplikationen kan användas i fältet .
Om du vill hämta din användartilldelade hanterade identitet, Resurs-ID, söker du efter Hanterade Identiteter i Azure-portalen. Hitta din hanterade identitet och gå till Egenskaper. Ett exempel på ditt UMI-resurs-ID ser ut som /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
. Parametern --encryption-protector-auto-rotation
kan användas för att aktivera automatisk nyckelrotation på databasnivå.
az sql db update --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --sample-name AdventureWorksLT --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2 --assign-identity --user-assigned-identity-id $identityid --encryption-protector $keyid --federated-client-id $federatedclientid --keys $keys --keys-to-remove $keysToRemove --encryption-protector-auto-rotation True
Listan $keys
är en blankstegsavgränsad lista över nycklar som ska läggas till i databasen och $keysToRemove
är en blankstegsavgränsad lista med nycklar som måste tas bort från databasen
$keys = '"https://yourvault.vault.azure.net/keys/yourkey1/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey2/ fd021f84a0d94d43b8ef33154bca0000"'
$keysToRemove = '"https://yourvault.vault.azure.net/keys/yourkey3/6638b3667e384aefa31364f94d230000" "https://yourvault.vault.azure.net/keys/yourkey4/fd021f84a0d94d43b8ef33154bca0000"'
Uppdatera en databas som konfigurerats med användartilldelad hanterad identitet och kundhanterad TDE för flera klientorganisationer på databasnivå med hjälp av PowerShell.
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Använd cmdleten Set-AzSqlDatabase.
Ersätt följande värden i exemplet:
-
<ResourceGroupName>
: Namnet på resursgruppen för din logiska Azure SQL-server
-
<DatabaseName>
: Använd ett unikt Azure SQL-databasnamn
-
<ServerName>
: Använd ett unikt namn på den logiska Azure SQL-servern
-
<UserAssignedIdentityId>
: Listan över användartilldelade hanterade identiteter som ska tilldelas till servern (kan vara en eller flera)
-
<CustomerManagedKeyId>
: -nyckelidentifieraren från den andra klientnyckelvalvet
-
<FederatedClientId>
: program-ID:t för programmet med flera klientorganisationer
-
<ListOfKeys>
: Kommaavgränsad lista över kundhanterade nycklar på databasnivå som ska läggas till i databasen
-
<ListOfKeysToRemove>
: Kommaavgränsad lista över kundhanterade nycklar på databasnivå som ska tas bort från databasen
-
-EncryptionProtectorAutoRotation
: Kan användas för att aktivera automatisk nyckelrotation på databasnivå
Om du vill hämta din hanterade användaridentitet Resurs-IDsöker du efter Hanterade identiteter i Azure-portalen. Hitta din hanterade identitet och gå till Egenskaper. Ett exempel på ditt UMI-resurs-ID ser ut som /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
$params = @{
ResourceGroupName = "<ResourceGroupName>"
ServerName = "<ServerName>"
DatabaseName = "<DatabaseName>"
AssignIdentity = $true
UserAssignedIdentityId = "<UserAssignedIdentityId>"
EncryptionProtector = "<CustomerManagedKeyId>"
FederatedClientId = "<FederatedClientId>"
KeyList = "<ListOfKeys>"
KeysToRemove = "<ListOfKeysToRemove>"
EncryptionProtectorAutoRotation = $true
}
Set-AzSqlDatabase @params
Ett exempel på -KeyList och -KeysToRemove är:
$keysToAdd = "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000","https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
$keysToRemove = "https://yourvault.vault.azure.net/keys/yourkey3/fd021f84a0d94d43b8ef33154bca0000"
Här är ett exempel på en ARM-mall som uppdaterar en Azure SQL Database med en användartilldelad hanterad identitet och kundhanterad TDE på databasnivå. För en CMK för flera klientorganisationer använder du nyckelidentifierare från den andra Key Vault och program-ID från programmet för flera klientorganisationer.
Mer information och ARM-mallar finns i Azure Resource Manager-mallar för Azure SQL Database & SQL Managed Instance.
Använd en anpassad distribution i Azure-portalenoch Skapa en egen mall i redigeraren. Sedan Spara konfigurationen när du har klistrat in exemplet.
Om du vill hämta din användartilldelade hanterade identitet Resurs-IDsöker du efter Hanterade identiteter i Azure-portalen. Hitta din hanterade identitet och gå till Egenskaper. Ett exempel på ditt UMI-resurs-ID ser ut som /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"federated_client_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
},
"encryption_protector_auto_rotation": {
"type": "bool"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2023-02-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-a286-474d-b6f0-29c42ac74554/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"federatedClientId": "[parameters('federated_client_id')]",
"encryptionProtectorAutoRotation": "[parameters('encryption_protector_auto_rotation')]"
}
}
]
}
Ett exempel på parametern encryption_protector
och keys_to_add
är:
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
Viktig
Om du vill ta bort en nyckel från databasen måste nyckelns ordlistevärde för en viss nyckel skickas som null. Till exempel "https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": null
.
Visa kundhanterade nyckelinställningar på databasnivå i en Azure SQL Database
Följande är exempel på hur du hämtar kundhanterade nycklar på databasnivå för en databas. ARM-resursen Microsoft.Sql/servers/databases
som standard visar bara TDE-skyddet och den hanterade identitet som konfigurerats i databasen. Om du vill expandera den fullständiga listan med nycklar använder du parametern -ExpandKeyList
. Dessutom kan filter som -KeysFilter "current"
och ett tidsvärde (till exempel 2023-01-01
) användas för att hämta de aktuella nycklar som använts och nycklar som använts tidigare vid en viss tidpunkt. Dessa filter stöds endast för enskilda databasfrågor och inte för frågor på servernivå.
Om du vill visa kundhanterade nycklar på databasnivå i Azure-portalengår du till menyn datakryptering i SQL-databasresursen.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
# Retrieve the basic database level customer-managed key settings from a database
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter current
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
az sql db show --resource-group $resourceGroupName --server $serverName --name mySampleDatabase --expand-keys --keys-filter 01-01-2015
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
az sql db list --resource-group $resourceGroupName --server $serverName
Installationsinstruktioner för Az PowerShell-moduler finns i Installera Azure PowerShell.
Använd cmdleten Get-AzSqlDatabase.
# Retrieve the basic database level customer-managed key settings from a database
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName>
# Retrieve the basic database level customer-managed key settings from a database and all the keys ever added
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList
# Retrieve the basic database level customer-managed key settings from a database and the current keys in use
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
# Retrieve the basic database level customer-managed key settings from a database and the keys in use at a particular point in time
Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter '2023-02-03 00:00:00'
# Retrieve all the databases in a server to check which ones are configured with database level customer-managed keys
Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName> | Select DatabaseName, EncryptionProtector
Använd REST API:et 2022-08-01-preview för förhandsversionen av Azure SQL Database.
Hämta de grundläggande inställningarna för kundhanterad nyckel på databasnivå från en databas.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview
Hämta de grundläggande inställningarna för kundhanterad nyckel på databasnivå från en databas och alla nycklar som någonsin lagts till
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys
Hämta kundhanterade nyckelinställningar på grundläggande databasnivå från en databas och de aktuella nycklar som används
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Hämta de grundläggande inställningarna för kundhanterad nyckel på databasnivå från en databas och de nycklar som används vid en viss tidpunkt
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('2023-02-04T01:57:42.49Z'))
Visa en lista över alla nycklar på en logisk server
Om du vill hämta listan över alla nycklar (och inte bara det primära skyddet) som används av varje databas under servern, måste den frågas individuellt med nyckelfiltren. Följande är ett exempel på en PowerShell-fråga för att lista varje nyckel under den logiska servern.
Använd cmdleten Get-AzSqlDatabase.
$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}
Återskapa kundhanterad nyckel på databasnivå i en Azure SQL Database
Om det finns ett otillgängligt TDE-skydd enligt beskrivningen i Transparent datakryptering (TDE) med CMK, när åtkomsten till nyckeln har rättats till kan en återvalideringsåtgärd för nyckeln användas för att göra databasen tillgänglig. Se följande instruktioner eller kommandon för exempel.
Använd Azure-portalenoch leta reda på din SQL-databasresurs. När du har valt din SQL-databasresurs går du till fliken Transparent datakryptering i menyn Datakryptering under inställningarna för Säkerhet. Om databasen har förlorat åtkomsten till Azure Key Vault visas knappen Revalidate-nyckel och du har möjlighet att återanvända den befintliga nyckeln genom att välja Försök igen, eller en annan nyckel genom att välja Välj säkerhetskopieringsnyckel.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
az sql db tde key revalidate --resource-group $resourceGroupName --server $serverName --database mySampleDatabase
Använd förhandsversionen av REST API 2022-08-01 för Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revalidate?api-version=2022-08-01-preview
Återställ kundhanterad nyckel på databasnivå i en Azure SQL Database
En databas som konfigurerats med cmk på databasnivå kan återställas till kryptering på servernivå om servern har konfigurerats med en tjänsthanterad nyckel med hjälp av följande kommandon.
Om du vill återställa inställningen kundhanterad nyckel på databasnivå till krypteringsnyckeln på servernivå i Azure-portalengår du till fliken Transparent datakryptering i menyn datakryptering i SQL-databasresursen. Välj krypteringsnyckel på servernivå och välj Spara för att spara inställningarna.
Obs
För att kunna använda krypteringsnyckeln på servernivå för enskilda databaser måste den logiska servern för Azure SQL Database konfigureras för att använda tjänsthanterad nyckel för TDE.
Information om hur du installerar den aktuella versionen av Azure CLI finns i artikeln Installera Azure CLI.
az sql db tde key revert --resource-group $resourceGroupName --server $serverName --name mySampleDatabase
Använd 2022-08-01-preview REST API för Azure SQL Database.
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/encryptionProtector/current/revert?api-version=2022-08-01-preview
Nästa steg
Kontrollera följande dokumentation om olika CMK-åtgärder på databasnivå: