De volgende stappen geven een overzicht van het proces voor het maken van een nieuwe logische Azure SQL Database-server en een nieuwe database waaraan een door de gebruiker toegewezen beheerde identiteit is toegewezen.
Ga naar Azure SQL Hub op aka.ms/azuresqlhub.
Selecteer Opties weergeven in het deelvenster voor Azure SQL Database.
Selecteer In het venster Opties voor Azure SQL Databasede optie SQL Database maken.
Selecteer op het tabblad Basisbeginselen van het formulier SQL Database maken onder Projectdetails het gewenste Azure-abonnement.
Selecteer Nieuwe maken voor de resourcegroep, voer een naam in voor uw resourcegroep en selecteer OK.
Voer bij Databasenaam de gewenste databasenaam in.
Voor Serverselecteert u Nieuwemaken en vult u het formulier Nieuwe server in met de volgende waarden:
-
Servernaam: Voer een unieke servernaam in. Servernamen moeten globaal uniek zijn voor alle servers in Azure, niet alleen uniek binnen een abonnement.
-
aanmeldgegevens van de serverbeheerder: voer een aanmeldingsnaam voor een beheerder in, bijvoorbeeld:
azureuser.
-
wachtwoord: voer een wachtwoord in dat voldoet aan de wachtwoordvereisten en voer het opnieuw in het veld Wachtwoord bevestigen in.
-
Locatie: Selecteer een locatie in de vervolgkeuzelijst
Selecteer Volgende: Netwerken onder aan de pagina.
Selecteer op het tabblad Netwerken , voor de connectiviteitsmethode, het openbare eindpunt.
Voor firewallregels stelt u huidig IP-adres van client toevoegen in op Ja. Laat Azure-services en -resources toegang geven tot deze server ingesteld op Nee.
Selecteer Volgende: Beveiliging onderaan de pagina.
Selecteer op het tabblad Beveiliging, onder Identiteit, de optie Configureren van identiteiten.
Selecteer Toevoegen in het deelvenster Identiteit onder Door de gebruiker toegewezen beheerde identiteit. Selecteer het gewenste abonnement en selecteer vervolgens onder Door de gebruiker toegewezen beheerde identiteiten de gewenste door de gebruiker toegewezen beheerde identiteit in het geselecteerde abonnement. Selecteer vervolgens de knop Selecteren .
Selecteer onder primaire identiteitdezelfde door de gebruiker toegewezen beheerde identiteit die in de vorige stap is geselecteerd.
Opmerking
Als de door het systeem toegewezen beheerde identiteit de primaire identiteit is, moet het veld Primaire identiteit leeg zijn.
Selecteer toepassen
Selecteer Beoordelen + maken onder aan de pagina
Controleer op de pagina Beoordelen en maken de instellingen en selecteer daarna Maken.
De Azure CLI-opdracht az sql server create wordt gebruikt om een nieuwe logische server in te richten. Met de volgende opdracht wordt een nieuwe server ingericht met een door de gebruiker toegewezen beheerde identiteit. In het voorbeeld wordt ook Microsoft Entra-verificatie ingeschakeld en wordt een Microsoft Entra-beheerder voor de server ingesteld.
De sql-beheerdersaanmelding van de server wordt automatisch gemaakt en het wachtwoord wordt ingesteld op een willekeurig wachtwoord. Omdat sql-verificatieconnectiviteit is uitgeschakeld bij het maken van deze server, wordt de aanmelding van de SQL-beheerder niet gebruikt.
De Microsoft Entra-serverbeheerder is het account dat u hebt ingesteld <AzureADAccount>en kan worden gebruikt om de server te beheren.
Vervang de volgende waarden in het voorbeeld:
-
<subscriptionId>: Uw abonnements-id vindt u in De Azure-portal
-
<ResourceGroupName>: Naam van de resourcegroep voor uw logische server
-
<managedIdentity>: de door de gebruiker toegewezen beheerde identiteit. Kan ook worden gebruikt als de primaire identiteit.
-
<primaryIdentity>: De primaire identiteit die u wilt gebruiken als serveridentiteit
-
<AzureADAccount>: Kan een Microsoft Entra-gebruiker of -groep zijn. Bijvoorbeeld DummyLogin
-
<AzureADAccountSID>: De Object-id van Microsoft Entra voor de gebruiker
-
<ServerName>: Een unieke logische servernaam gebruiken
-
<Location>: locatie van de server, zoals westusof 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
Zie az sql server create voor meer informatie.
Opmerking
In het vorige voorbeeld wordt een server met alleen een door de gebruiker toegewezen beheerde identiteit inrichten. U kunt de --identity-type instellen op UserAssigned,SystemAssigned als u wilt dat beide typen beheerde identiteiten met de server zouden moeten worden gemaakt.
Als u de serverstatus wilt controleren na het maken, raadpleegt u de volgende opdracht:
az sql server show --name <ServerName> --resource-group <ResourceGroupName> --expand-ad-admin
De PowerShell-opdracht New-AzSqlServer wordt gebruikt om een nieuwe logische Azure SQL-server in te richten. Met de volgende opdracht wordt een nieuwe server ingericht met een door de gebruiker toegewezen beheerde identiteit. In het voorbeeld wordt ook Microsoft Entra-verificatie ingeschakeld en wordt een Microsoft Entra-beheerder voor de server ingesteld.
De sql-beheerdersaanmelding van de server wordt automatisch gemaakt en het wachtwoord wordt ingesteld op een willekeurig wachtwoord. Omdat sql-verificatieconnectiviteit is uitgeschakeld bij het maken van deze server, wordt de aanmelding van de SQL-beheerder niet gebruikt.
De Microsoft Entra-serverbeheerder is het account dat u hebt ingesteld <AzureADAccount>en kan worden gebruikt om de server te beheren.
Vervang de volgende waarden in het voorbeeld:
-
<ResourceGroupName>: Naam van de resourcegroep voor uw logische server
-
<Location>: locatie van de server, zoals West USof Central US
-
<ServerName>: Een unieke logische servernaam gebruiken
-
<subscriptionId>: Uw abonnements-id vindt u in De Azure-portal
-
<managedIdentity>: de door de gebruiker toegewezen beheerde identiteit. Kan ook worden gebruikt als de primaire identiteit
-
<primaryIdentity>: De primaire identiteit die u wilt gebruiken als serveridentiteit
-
<AzureADAccount>: Kan een Microsoft Entra-gebruiker of -groep zijn. Bijvoorbeeld 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
Zie New-AzSqlServer voor meer informatie.
Opmerking
In het vorige voorbeeld wordt een server met alleen een door de gebruiker toegewezen beheerde identiteit inrichten. U kunt de -IdentityType instellen op "UserAssigned,SystemAssigned" als u wilt dat beide typen beheerde identiteiten met de server zouden moeten worden gemaakt.
Als u de serverstatus wilt controleren na het maken, raadpleegt u de volgende opdracht:
Get-AzSqlServer -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -ExpandActiveDirectoryAdministrator
De Servers : REST API maken of bijwerken kan worden gebruikt om een logische server te maken met een door de gebruiker toegewezen beheerde identiteit.
Met het volgende script wordt een logische server ingericht, de Microsoft Entra-beheerder ingesteld als <AzureADAccount>, en wordt Microsoft Entra-verificatie ingeschakeld. De sql-beheerdersaanmelding van de server wordt ook automatisch gemaakt en het wachtwoord wordt ingesteld op een willekeurig wachtwoord. Omdat sql-verificatieconnectiviteit is uitgeschakeld met deze inrichting, wordt de aanmelding van de SQL-beheerder niet gebruikt.
De Microsoft Entra-beheerder <AzureADAccount> kan worden gebruikt om de server te beheren wanneer het inrichten is voltooid.
Vervang de volgende waarden in het voorbeeld:
-
<tenantId>: u vindt deze door naar Azure Portal te gaan en naar uw Microsoft Entra ID-resource te gaan. In het deelvenster Overzicht ziet u de tenant-id
-
<subscriptionId>: Uw abonnements-id vindt u in De Azure-portal
-
<ServerName>: Een unieke logische servernaam gebruiken
-
<ResourceGroupName>: Naam van de resourcegroep voor uw logische server
-
<AzureADAccount>: Kan een Microsoft Entra-gebruiker of -groep zijn. Bijvoorbeeld DummyLogin
-
<Location>: locatie van de server, zoals westus2of centralus
-
<objectId>: u vindt deze door naar Azure Portal te gaan en naar uw Microsoft Entra ID-resource te gaan. Zoek in het deelvenster Gebruiker naar de Microsoft Entra-gebruiker en zoek de object-id
-
<managedIdentity>: de door de gebruiker toegewezen beheerde identiteit. Kan ook worden gebruikt als de primaire identiteit
-
<primaryIdentity>: De primaire identiteit die u wilt gebruiken als serveridentiteit
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"
Opmerking
In het vorige voorbeeld wordt een server met alleen een door de gebruiker toegewezen beheerde identiteit inrichten. U kunt de "type" instellen op "UserAssigned,SystemAssigned" als u wilt dat beide typen beheerde identiteiten met de server zouden moeten worden gemaakt.
Als u de serverstatus wilt controleren, kunt u het volgende script gebruiken:
$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
Hier volgt een voorbeeld van een ARM-sjabloon waarmee een logische Azure SQL Database-server wordt gemaakt met een door de gebruiker toegewezen beheerde identiteit. Met de sjabloon wordt ook een Microsoft Entra-beheerdersset toegevoegd voor de server en wordt Microsoft Entra-verificatieingeschakeld, maar dit kan worden verwijderd uit het sjabloonvoorbeeld.
Zie Azure Resource Manager-sjablonen voor Azure SQL Database voor meer informatie en ARM-sjablonen.
Gebruik een aangepaste implementatie in Azure Portal en bouw uw eigen sjabloon in de editor. Sla vervolgens de configuratie op nadat u in het voorbeeld hebt geplakt.
Om uw door de gebruiker toegewezen beheerde identiteit Resource IDte krijgen, zoekt u naar beheerde identiteiten in de Azure portal. Zoek uw beheerde identiteit en ga naar Eigenschappen. Een voorbeeld van uw UMI-resource-id ziet er als volgt /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>uit.
{
"$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')]"
}
}
}
]
}