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.
Blader naar de optiepagina sql-implementatie selecteren in Azure Portal.
Als u nog niet bent aangemeld bij Azure Portal, meldt u zich aan wanneer u hierom wordt gevraagd.
Laat onder SQL-databases de optie Resourcetype ingesteld op Eén database en selecteer Maken.
Selecteer op het tabblad Basisinformatie van het formulier SQL-database maken, onder Projectgegevens, 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.
Selecteer voor Server de optie Nieuwe maken en vul 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.
- Aanmelding van de serverbeheerder: voer een aanmeldingsnaam van 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 Verbindingsmethode de optie Openbaar eindpunt.
Stel voor Firewallregels de optie Huidig IP-adres van client toevoegen in op Ja. Laat de instelling voor Toestaan dat Azure-services en -resources toegang tot deze server krijgen ongewijzigd op Nee.
Selecteer Volgende: Beveiliging onderaan de pagina.
Selecteer Identiteiten configureren op het tabblad Beveiliging onder Identiteit.
Selecteer Toevoegen op de blade 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 identiteit dezelfde door de gebruiker toegewezen beheerde identiteit die in de vorige stap is geselecteerd.
Notitie
Als de door het systeem toegewezen beheerde identiteit de primaire identiteit is, moet het veld Primaire identiteit leeg zijn.
Selecteer toepassen
Selecteer Beoordelen en maken onder aan de pagina
Selecteer op de pagina Controleren en maken na het controleren de optie Maken.
De Azure CLI-opdracht az sql server create
wordt gebruikt om een nieuwe logische server in te richten. Met de onderstaande 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-Beheer aanmelding 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 sql-Beheer istrator-aanmelding 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 westus
, of 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.
Notitie
In het bovenstaande voorbeeld wordt een server met alleen een door de gebruiker toegewezen beheerde identiteit inrichten. U kunt de --identity-type
optie UserAssigned,SystemAssigned
instellen als u wilt dat beide typen beheerde identiteiten met de server 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 onderstaande 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-Beheer aanmelding 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 sql-Beheer istrator-aanmelding 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 US
, of 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.
Notitie
In het bovenstaande voorbeeld wordt een server met alleen een door de gebruiker toegewezen beheerde identiteit inrichten. U kunt de -IdentityType
optie "UserAssigned,SystemAssigned"
instellen als u wilt dat beide typen beheerde identiteiten met de server 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 onderstaande script wordt een logische server ingericht, de Microsoft Entra-beheerder ingesteld als <AzureADAccount>
en wordt microsoft Entra-verificatie ingeschakeld. De sql-Beheer aanmelding 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-Beheer istrator 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 westus2
, of 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"
#Authetication 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"
Notitie
In het bovenstaande voorbeeld wordt een server met alleen een door de gebruiker toegewezen beheerde identiteit inrichten. U kunt de "type"
optie "UserAssigned,SystemAssigned"
instellen als u wilt dat beide typen beheerde identiteiten met de server 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'
$responce=Invoke-WebRequest -Uri $uri -Method PUT -Headers $authHeader -Body $body -ContentType "application/json"
$responce.statuscode
$responce.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. De sjabloon voegt ook een Microsoft Entra-beheerdersset toe voor de server en schakelt Microsoft Entra-verificatie in, maar dit kan worden verwijderd uit het sjabloonvoorbeeld.
Zie Azure Resource Manager-sjablonen voor Azure SQL Database & SQL Managed Instance 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.
Als u de resource-id van uw door de gebruiker toegewezen beheerde identiteit wilt ophalen, zoekt u in Azure Portal naar beheerde identiteiten. 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')]"
}
}
}
]
}