Följande steg beskriver processen med att skapa en ny logisk Azure SQL Database-server och en ny databas med en användartilldelad hanterad identitet tilldelad.
Gå till Azure SQL Hub på aka.ms/azuresqlhub.
I fönstret för Azure SQL Database väljer du Visa alternativ.
I fönstret Azure SQL Database-alternativ väljer du Skapa SQL Database.
På fliken Grundläggande i formuläret Skapa SQL Database går du till Projektinformationoch väljer önskad Azure -prenumeration.
För Resursgruppväljer du Skapa ny, anger ett namn för resursgruppen och väljer OK.
För Databasnamn anger du önskat databasnamn.
För Serverväljer du Skapa nyoch fyller i formuläret Ny server med följande värden:
-
Servernamn: Ange ett unikt servernamn. Servernamn måste vara globalt unika för alla servrar i Azure, inte bara unika i en prenumeration.
-
Inloggning för serveradministratör: Ange ett inloggningsnamn för administratör, till exempel:
azureuser.
-
Lösenord: Ange ett lösenord som uppfyller lösenordskraven och ange det igen i fältet Bekräfta lösenord.
-
Plats: Välj en plats i listrutan
Välj Nästa: Nätverk längst ned på sidan.
På fliken Nätverk väljer du offentlig slutpunktför Anslutningsmetod.
För brandväggsregleranger du Lägg till aktuell klient-IP-adress till Ja. Låt Tillåt att Azure-tjänster och resurser får åtkomst till den här servern anges till Nej.
Välj Nästa: Säkerhets längst ned på sidan.
På fliken Säkerhet går du till Identityoch väljer Konfigurera identiteter.
I fönstret Identitet går du till Användartilldelad hanterad identitet och väljer Lägg till. Välj önskad prenumeration och under Användartilldelade hanterade identiteter väljer du önskad användartilldelad hanterad identitet från den valda prenumerationen. Välj sedan knappen Välj .
Under Primär identitetväljer du samma användartilldelade hanterade identitet som valdes i föregående steg.
Anmärkning
Om den systemtilldelade hanterade identiteten är den primära identiteten måste fältet Primär identitet vara tomt.
Välj Tillämpa
Välj Granska + skapa längst ned på sidan
På sidan Granska + skapa, efter granskning, väljer du Skapa.
Azure CLI-kommandot az sql server create används för att etablera en ny logisk server. Följande kommando etablerar en ny server med en användartilldelad hanterad identitet. Exemplet aktiverar även Microsoft Entra-endast autentisering och anger en Microsoft Entra-administratör för servern.
Serverns SQL-administratörsinloggning skapas automatiskt och lösenordet anges till ett slumpmässigt lösenord. Eftersom SQL-autentiseringsanslutningen är inaktiverad när servern skapas används inte SQL-administratörsinloggningen.
Serverns Microsoft Entra-administratör är det konto som du har angett för <AzureADAccount>och kan användas för att hantera servern.
Ersätt följande värden i exemplet:
-
<subscriptionId>: Ditt prenumerations-ID finns i Azure-portalen
-
<ResourceGroupName>: Namnet på resursgruppen för den logiska servern
-
<managedIdentity>: Den användartilldelade hanterade identiteten. Kan också användas som primär identitet.
-
<primaryIdentity>: Den primära identitet som du vill använda som serveridentitet
-
<AzureADAccount>: Kan vara en Microsoft Entra-användare eller grupp. Till exempel: DummyLogin
-
<AzureADAccountSID>: Microsoft Entra-objekt-ID för användaren
-
<ServerName>: Använd ett unikt namn på den logiska servern
-
<Location>: Plats för servern, till exempel westuseller centralus
subscription_id=<subscriptionId>
resource_group=<ResourceGroupName>
managed_identity=<managedIdentity>
primary_identity=<primaryIdentity>
azure_ad_account=<AzureADAccount>
azure_ad_account_sid=<AzureADAccountSID>
server_name=<ServerName>
location=<Location>
az sql server create \
--assign-identity \
--identity-type UserAssigned \
--user-assigned-identity-id /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$managed_identity \
--primary-user-assigned-identity-id /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$primary_identity \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $azure_ad_account \
--external-admin-sid $azure_ad_account_sid \
-g $resource_group \
-n $server_name \
-l $location
För mer information, se az sql server create.
Anmärkning
I föregående exempel etableras en server med endast en användartilldelad hanterad identitet. Du kan ange --identity-type till UserAssigned,SystemAssigned om du vill att båda typerna av hanterade identiteter ska skapas med servern.
Information om hur du kontrollerar serverstatusen när du har skapat finns i följande kommando:
az sql server show --name <ServerName> --resource-group <ResourceGroupName> --expand-ad-admin
PowerShell-kommandot New-AzSqlServer används för att etablera en ny logisk Azure SQL-server. Följande kommando etablerar en ny server med en användartilldelad hanterad identitet. Exemplet aktiverar även Microsoft Entra-endast autentisering och anger en Microsoft Entra-administratör för servern.
Serverns SQL-administratörsinloggning skapas automatiskt och lösenordet anges till ett slumpmässigt lösenord. Eftersom SQL-autentiseringsanslutningen är inaktiverad när servern skapas används inte SQL-administratörsinloggningen.
Serverns Microsoft Entra-administratör är det konto som du har angett för <AzureADAccount>och kan användas för att hantera servern.
Ersätt följande värden i exemplet:
-
<ResourceGroupName>: Namnet på resursgruppen för den logiska servern
-
<Location>: Plats för servern, till exempel West USeller Central US
-
<ServerName>: Använd ett unikt namn på den logiska servern
-
<subscriptionId>: Ditt prenumerations-ID finns i Azure-portalen
-
<managedIdentity>: Den användartilldelade hanterade identiteten. Kan också användas som primär identitet
-
<primaryIdentity>: Den primära identitet som du vill använda som serveridentitet
-
<AzureADAccount>: Kan vara en Microsoft Entra-användare eller grupp. Till exempel: DummyLogin
$server = @{
ResourceGroupName = "<ResourceGroupName>"
Location = "<Location>"
ServerName = "<ServerName>"
ServerVersion = "12.0"
AssignIdentity = $true
IdentityType = "UserAssigned"
UserAssignedIdentityId = "/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>"
PrimaryUserAssignedIdentityId = "/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<primaryIdentity>"
ExternalAdminName = "<AzureADAccount>"
EnableActiveDirectoryOnlyAuthentication = $true
}
New-AzSqlServer @server
Mer information finns i New-AzSqlServer.
Anmärkning
I föregående exempel etableras en server med endast en användartilldelad hanterad identitet. Du kan ange -IdentityType till "UserAssigned,SystemAssigned" om du vill att båda typerna av hanterade identiteter ska skapas med servern.
Information om hur du kontrollerar serverstatusen när du har skapat finns i följande kommando:
Get-AzSqlServer -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -ExpandActiveDirectoryAdministrator
Rest-API:et Servrar – Skapa eller uppdatera kan användas för att skapa en logisk server med en användartilldelad hanterad identitet.
Följande skript etablerar en logisk server, anger Microsoft Entra-administratören som <AzureADAccount>och aktiverar endast Microsoft Entra-autentisering. Serverns SQL-administratörsinloggning skapas också automatiskt och lösenordet anges till ett slumpmässigt lösenord. Eftersom SQL-autentiseringsanslutningen är inaktiverad med den här etableringen används inte SQL-administratörsinloggningen.
Microsoft Entra-administratören <AzureADAccount> kan användas för att hantera servern när etableringen är klar.
Ersätt följande värden i exemplet:
-
<tenantId>: Du hittar den genom att gå till Azure-portalen och gå till din Microsoft Entra-ID-resurs . I fönstret Översikt bör du se ditt Hyresgäst-ID
-
<subscriptionId>: Ditt prenumerations-ID finns i Azure-portalen
-
<ServerName>: Använd ett unikt namn på den logiska servern
-
<ResourceGroupName>: Namnet på resursgruppen för den logiska servern
-
<AzureADAccount>: Kan vara en Microsoft Entra-användare eller grupp. Till exempel: DummyLogin
-
<Location>: Plats för servern, till exempel westus2eller centralus
-
<objectId>: Du hittar den genom att gå till Azure-portalen och gå till din Microsoft Entra-ID-resurs . I fönstret Användare söker du efter Microsoft Entra-användaren och letar reda på deras objekt-ID
-
<managedIdentity>: Den användartilldelade hanterade identiteten. Kan också användas som primär identitet
-
<primaryIdentity>: Den primära identitet som du vill använda som serveridentitet
Import-Module Azure
Import-Module MSAL.PS
$tenantId = '<tenantId>'
$clientId = '1950a258-227b-4e31-a9cf-717495945fc2' # Static Microsoft client ID used for getting a token
$subscriptionId = '<subscriptionId>'
$uri = "urn:ietf:wg:oauth:2.0:oob"
$authUrl = "https://login.windows.net/$tenantId"
$serverName = "<ServerName>"
$resourceGroupName = "<ResourceGroupName>"
Login-AzAccount -tenantId $tenantId
# login as a user with SQL Server Contributor role or higher
# Get a token
$result = Get-MsalToken -RedirectUri $uri -ClientId $clientId -TenantId $tenantId -Scopes "https://management.core.windows.net/.default"
#Authentication header
$authHeader = @{
'Content-Type'='application\json; '
'Authorization'=$result.CreateAuthorizationHeader()
}
# Enable Azure AD-only auth and sets a user-managed identity as the server identity
# No server admin is specified, and only Azure AD admin and Azure AD-only authentication is set to true
# Server admin (login and password) is generated by the system
# The sid is the Azure AD Object ID for the user
# Replace all values in a <>
$body = '{
"location": "<Location>",
"identity": {"type" : "UserAssigned", "UserAssignedIdentities" : {"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>" : {}}},
"properties": { "PrimaryUserAssignedIdentityId":"/subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<primaryIdentity>","administrators":{ "login":"<AzureADAccount>", "sid":"<objectId>", "tenantId":"<tenantId>", "principalType":"User", "azureADOnlyAuthentication":true }
}
}'
# Provision the server
Invoke-RestMethod -Uri https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Sql/servers/$serverName/?api-version=2020-11-01-preview -Method PUT -Headers $authHeader -Body $body -ContentType "application/json"
Anmärkning
I föregående exempel etableras en server med endast en användartilldelad hanterad identitet. Du kan ange "type" till "UserAssigned,SystemAssigned" om du vill att båda typerna av hanterade identiteter ska skapas med servern.
Om du vill kontrollera serverstatusen kan du använda följande skript:
$uri = 'https://management.azure.com/subscriptions/'+$subscriptionId+'/resourceGroups/'+$resourceGroupName+'/providers/Microsoft.Sql/servers/'+$serverName+'?api-version=2020-11-01-preview&$expand=administrators/activedirectory'
$response=Invoke-WebRequest -Uri $uri -Method PUT -Headers $authHeader -Body $body -ContentType "application/json"
$response.statuscode
$response.content
Här är ett exempel på en ARM-mall som skapar en logisk Azure SQL Database-server med en användartilldelad hanterad identitet. Mallen lägger också till en Microsoft Entra-administratörsuppsättning för servern och aktiverar Microsoft Entra-endast autentisering, men detta kan tas bort från mallexemplet.
Mer information och ARM-mallar finns i Azure Resource Manager-mallar för Azure SQL Database.
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.1",
"parameters": {
"server": {
"type": "string",
"defaultValue": "[uniqueString('sql', resourceGroup().id)]",
"metadata": {
"description": "The name of the logical server."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"aad_admin_name": {
"type": "String",
"metadata": {
"description": "The name of the Azure AD admin for the SQL server."
}
},
"aad_admin_objectid": {
"type": "String",
"metadata": {
"description": "The Object ID of the Azure AD admin."
}
},
"aad_admin_tenantid": {
"type": "String",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "The Tenant ID of the Azure Active Directory"
}
},
"aad_admin_type": {
"defaultValue": "User",
"allowedValues": [
"User",
"Group",
"Application"
],
"type": "String"
},
"aad_only_auth": {
"defaultValue": true,
"type": "Bool"
},
"user_identity_resource_id": {
"defaultValue": "",
"type": "String",
"metadata": {
"description": "The Resource ID of the user-assigned managed identity, in the form of /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>."
}
},
"AdminLogin": {
"minLength": 1,
"type": "String"
},
"AdminLoginPassword": {
"type": "SecureString"
}
},
"resources": [
{
"type": "Microsoft.Sql/servers",
"apiVersion": "2020-11-01-preview",
"name": "[parameters('server')]",
"location": "[parameters('location')]",
"identity": {
"type": "UserAssigned",
"UserAssignedIdentities": {
"[parameters('user_identity_resource_id')]": {}
}
},
"properties": {
"administratorLogin": "[parameters('AdminLogin')]",
"administratorLoginPassword": "[parameters('AdminLoginPassword')]",
"PrimaryUserAssignedIdentityId": "[parameters('user_identity_resource_id')]",
"administrators": {
"login": "[parameters('aad_admin_name')]",
"sid": "[parameters('aad_admin_objectid')]",
"tenantId": "[parameters('aad_admin_tenantid')]",
"principalType": "[parameters('aad_admin_type')]",
"azureADOnlyAuthentication": "[parameters('aad_only_auth')]"
}
}
}
]
}