In den folgenden Schritten wird der Vorgang zum Erstellen eines neuen Azure SQL-Datenbank logischen Servers und einer neuen Datenbank mit benutzerseitig zugewiesenen verwalteten Identität skizziert.
Navigieren Sie in dem Azure-Portal zur Optionsseite SQL Bereitstellung auswählen.
Wenn Sie nicht schon im Azure-Portal angemeldet sind, melden Sie sich auf Aufforderung an.
Behalten Sie unter SQL-Datenbanken für Einzeldatenbank den festgelegten Wert Ressourcentyp bei, und wählen Sie Erstellen aus.
Wählen Sie auf der Registerkarte Grundeinstellungen des Formulars SQL-Datenbank erstellen unter Projektdetails das gewünschte Abonnement für Azure aus.
Wählen Sie unter Ressourcengruppe die Option Neu erstellen aus, geben Sie einen Namen für Ihre Ressourcengruppe ein, und wählen Sie OK aus.
Geben Sie unter Datenbankname den gewünschten Namen für Ihre Datenbank ein.
Wählen Sie unter Server die Option Neu erstellen aus, und füllen Sie das Formular Neuer Server mit den folgenden Werten aus:
- Servername: Geben Sie einen eindeutigen Servernamen ein. Servernamen müssen global für alle Server in Azure eindeutig sein, nicht nur eindeutig innerhalb eines Abonnements.
- Serveradministrator-Anmeldung: Geben Sie eine Administrator Anmelde-ID ein, z. B.
azureuser
.
- Kennwort: Geben Sie ein Passwort ein, das den Passwortanforderungen entspricht, und wiederholen Sie die Eingabe im Feld Kennwort bestätigen.
- Speicherort: Wählen Sie einen Speicherort aus der Dropdown-Liste
Klicken Sie auf Weiter: Netzwerk aus (im unteren Bereich der Seite).
Wählen Sie auf der Registerkarte Netzwerk als Konnektivitätsmethode die Option Öffentlicher Endpunkt aus.
Legen Sie bei Firewallregeln die Option Aktuelle Client-IP-Adresse hinzufügen auf Ja fest. Behalten Sie für Azure-Diensten und -Ressourcen den Zugriff auf diese Servergruppe gestatten den Wert Nein bei.
Wählen Sie Weiter: Sicherheit unten auf der Seite aus.
Wählen Sie auf der Registerkarte Sicherheit unter Identität die Option Identitäten konfigurieren aus.
Wählen Sie im Bereich Identität unter Benutzerseitig zugewiesene verwaltete Identität die Option Hinzufügen aus. Wählen Sie das gewünschte Abonnement und dann unter Benutzerseitig zugewiesene verwaltete Identitäten die gewünschte benutzerseitig zugewiesene verwaltete Identität aus dem ausgewählten Abonnement aus. Wählen Sie dann die Schaltfläche Auswählen.
Wählen Sie unter Primäre Identität die im vorherigen Schritt ausgewählte benutzerseitig zugewiesene verwaltete Identität aus.
Hinweis
Wenn die systemseitig zugewiesene verwaltete Identität die primäre Identität ist, muss das Feld Primäre Identität leer sein.
Wählen Sie Übernehmen aus.
Wählen Sie unten auf der Seite die Option Überprüfen + erstellen aus
Wählen Sie nach Überprüfung auf der Seite Überprüfen + erstellen die Option Erstellenaus.
Der Azure CLI-Befehl az sql server create
wird verwendet, um einen neuen logischen Server bereitzustellen. Mit dem folgenden Befehl wird ein neuer Server mit einer benutzerseitig zugewiesenen verwalteten Identität bereitgestellt. Im Beispiel wird auch die reine Microsoft Entra-Authentifizierung aktiviert und ein Microsoft Entra-Administrator für den Server festgelegt.
Die SQL-Administratoranmeldung für den Server wird automatisch erstellt, und das Kennwort wird nach dem Zufallsprinzip festgelegt. Da die Herstellung der Konnektivität für die SQL-Authentifizierung bei dieser Servererstellung deaktiviert ist, wird die SQL-Administratoranmeldung nicht verwendet.
Der Microsoft Entra-Administrator für den Server ist das Konto, das Sie für <AzureADAccount>
festgelegt haben. Hierüber kann der Server verwaltet werden.
Ersetzen Sie im Beispiel die folgenden Werte:
<subscriptionId>
: Ihre Abonnement-ID können Sie über das Azure-Portal ermitteln.
<ResourceGroupName>
: Name der Ressourcengruppe für Ihren logischen Server
<managedIdentity>
: Die benutzerseitig zugewiesene verwaltete Identität. Kann auch als primäre Identität verwendet werden.
<primaryIdentity>
: Die primäre Identität, die Sie als Serveridentität verwenden möchten
<AzureADAccount>
: Kann ein Microsoft Entra-Benutzer oder eine -Gruppe sein. Beispiel: DummyLogin
<AzureADAccountSID>
: Die Objekt-ID des Benutzers in Microsoft Entra.
<ServerName>
: Verwenden Sie einen eindeutigen Namen für den Server.
<Location>
: Standort des Servers, z. B. westus
oder 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
Weitere Informationen finden Sie unter az sql server create.
Hinweis
Im Beispiel oben wird ein Server nur mit einer benutzerseitig zugewiesenen verwalteten Identität verwendet. Sie können --identity-type
auf UserAssigned,SystemAssigned
festlegen, wenn beide Arten von verwalteten Identitäten mit dem Server erstellt werden sollen.
Informationen zum Überprüfen des Serverstatus nach der Erstellung finden Sie unter dem folgenden Befehl:
az sql server show --name <ServerName> --resource-group <ResourceGroupName> --expand-ad-admin
Der PowerShell-Befehl New-AzSqlServer
wird verwendet, um einen neuen logischen Azure SQL-Server bereitzustellen. Mit dem folgenden Befehl wird ein neuer Server mit einer benutzerseitig zugewiesenen verwalteten Identität bereitgestellt. Im Beispiel wird auch die reine Microsoft Entra-Authentifizierung aktiviert und ein Microsoft Entra-Administrator für den Server festgelegt.
Die SQL-Administratoranmeldung für den Server wird automatisch erstellt, und das Kennwort wird nach dem Zufallsprinzip festgelegt. Da die Herstellung der Konnektivität für die SQL-Authentifizierung bei dieser Servererstellung deaktiviert ist, wird die SQL-Administratoranmeldung nicht verwendet.
Der Microsoft Entra-Administrator für den Server ist das Konto, das Sie für <AzureADAccount>
festgelegt haben. Hierüber kann der Server verwaltet werden.
Ersetzen Sie im Beispiel die folgenden Werte:
<ResourceGroupName>
: Name der Ressourcengruppe für Ihren logischen Server
<Location>
: Standort des Servers, z. B. West US
oder Central US
.
<ServerName>
: Verwenden Sie einen eindeutigen Namen für den Server.
<subscriptionId>
: Ihre Abonnement-ID können Sie über das Azure-Portal ermitteln.
<managedIdentity>
: Die benutzerseitig zugewiesene verwaltete Identität. Kann auch als primäre Identität verwendet werden
<primaryIdentity>
: Die primäre Identität, die Sie als Serveridentität verwenden möchten
<AzureADAccount>
: Kann ein Microsoft Entra-Benutzer oder eine -Gruppe sein. Beispiel: 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
Weitere Informationen finden Sie unter New-AzSqlServer.
Hinweis
Im Beispiel oben wird ein Server nur mit einer benutzerseitig zugewiesenen verwalteten Identität verwendet. Sie können -IdentityType
auf "UserAssigned,SystemAssigned"
festlegen, wenn beide Arten von verwalteten Identitäten mit dem Server erstellt werden sollen.
Informationen zum Überprüfen des Serverstatus nach der Erstellung finden Sie unter dem folgenden Befehl:
Get-AzSqlServer -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -ExpandActiveDirectoryAdministrator
Mithilfe der REST-API zum Erstellen oder Aktualisieren von Servern kann ein logischer Server mit einer benutzerseitig zugewiesenen verwalteten Identität erstellt werden.
Mit dem unten angegebenen Skript wird ein logischer Server bereitgestellt, der Microsoft Entra-Administrator als <AzureADAccount>
festgelegt und die reine Microsoft Entra-Authentifizierung aktiviert. Die SQL-Administratoranmeldung für den Server wird ebenfalls automatisch erstellt, und das Kennwort wird nach dem Zufallsprinzip festgelegt. Da die Herstellung der Konnektivität für die SQL-Authentifizierung bei dieser Bereitstellung deaktiviert ist, wird die SQL-Administratoranmeldung nicht verwendet.
Der Microsoft Entra-Administrator <AzureADAccount>
kann nach Abschluss der Bereitstellung zum Verwalten des Servers verwendet werden.
Ersetzen Sie im Beispiel die folgenden Werte:
<tenantId>
: Kann ermittelt werden, indem Sie zum Azure-Portal und dann zu Ihrer Microsoft Entra ID-Ressource navigieren. Im Bereich Übersicht sollte Ihre Mandanten-ID angezeigt werden.
<subscriptionId>
: Ihre Abonnement-ID können Sie über das Azure-Portal ermitteln.
<ServerName>
: Verwenden Sie einen eindeutigen Namen für den Server.
<ResourceGroupName>
: Name der Ressourcengruppe für Ihren logischen Server
<AzureADAccount>
: Kann ein Microsoft Entra-Benutzer oder eine -Gruppe sein. Beispiel: DummyLogin
<Location>
: Standort des Servers, z. B. westus2
oder centralus
.
<objectId>
: Kann ermittelt werden, indem Sie zum Azure-Portal und dann zu Ihrer Microsoft Entra ID-Ressource navigieren. Suchen Sie im Bereich Benutzer nach dem Microsoft Entra-Benutzer und der zugehörigen Objekt-ID.
<managedIdentity>
: Die benutzerseitig zugewiesene verwaltete Identität. Kann auch als primäre Identität verwendet werden
<primaryIdentity>
: Die primäre Identität, die Sie als Serveridentität verwenden möchten
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"
Hinweis
Im Beispiel oben wird ein Server nur mit einer benutzerseitig zugewiesenen verwalteten Identität verwendet. Sie können "type"
auf "UserAssigned,SystemAssigned"
festlegen, wenn beide Arten von verwalteten Identitäten mit dem Server erstellt werden sollen.
Sie können das folgende Skript verwenden, um den Serverstatus zu überprüfen:
$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 sehen Sie ein Beispiel für eine ARM-Vorlage, mit der ein logischer Azure SQL-Datenbank-Server mit einer benutzerseitig zugewiesenen verwalteten Identität erstellt wird. Die Vorlage fügt auch einen Microsoft Entra-Administratorsatz für den Server hinzu und aktiviert die reine Microsoft Entra-Authentifizierung. Dies kann jedoch aus dem Vorlagenbeispiel entfernt werden.
Weitere Informationen und ARM-Vorlagen finden Sie unter Azure Resource Manager-Vorlagen für Azure SQL-Datenbank und verwaltete SQL-Instanzen.
Verwenden Sie eine benutzerdefinierte Bereitstellung im Azure-Portal, und erstellen Sie im Editor Ihre eigene Vorlage. Speichern Sie als Nächstes die Konfiguration, nachdem Sie das Beispiel eingefügt haben.
Um die Ressourcen-ID der benutzerseitig zugewiesene verwaltete Identität zu erhalten, suchen Sie im Azure-Portal nach Verwalteten Identitäten. Suchen Sie ihre verwaltete Identität und gehen Sie zu Eigenschaften. Ein Beispiel für Ihre UMI-Ressourcen-ID sieht wie /subscriptions/<subscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managedIdentity>
aus.
{
"$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')]"
}
}
}
]
}