Následující kroky popisují proces vytvoření nového logického serveru Azure SQL Database a nové databáze s přiřazenou spravovanou identitou přiřazenou uživatelem.
Na webu Azure Portal přejděte na stránku Vybrat nasazení SQL.
Pokud ještě nejste přihlášení k webu Azure Portal, přihlaste se po zobrazení výzvy.
V části Databáze SQL ponechte typ prostředku nastavený na Jednoúčelová databáze a vyberte Vytvořit.
Na kartě Základy ve formuláři Vytvořit databázi SQL v části Podrobnosti projektu vyberte požadované předplatné Azure.
V části Skupina prostředků vyberte Vytvořit nový, zadejte název skupiny prostředků a vyberte OK.
Jako název databáze zadejte požadovaný název databáze.
V části Server vyberte Vytvořit nový a vyplňte formulář Nový server následujícími hodnotami:
- Název serveru: Zadejte jedinečný název serveru. Názvy serverů musí být globálně jedinečné pro všechny servery v Azure, nejen jedinečné v rámci předplatného.
- Přihlášení správce serveru: Zadejte přihlašovací jméno správce, například:
azureuser
.
- Heslo: Zadejte heslo, které splňuje požadavky na heslo, a zadejte ho znovu do pole Potvrdit heslo .
- Umístění: Vyberte umístění z rozevíracího seznamu.
Vyberte Další: Sítě v dolní části stránky.
Na kartě Sítě vyberte pro metodu připojení veřejný koncový bod.
U pravidel brány firewall nastavte možnost Přidat aktuální IP adresu klienta na hodnotu Ano. Ponechte možnost Povolit službám a prostředkům Azure přístup k tomuto serveru na hodnotu Ne.
Vyberte Další: Zabezpečení v dolní části stránky.
Na kartě Zabezpečení v části Identita vyberte Konfigurovat identity.
V podokně Identita v části Spravovaná identita přiřazená uživatelem vyberte Přidat. Vyberte požadované předplatné a potom v části Spravované identity přiřazené uživatelem vyberte z vybraného předplatného požadovanou spravovanou identitu přiřazenou uživatelem. Pak vyberte tlačítko Vybrat .
V části Primární identita vyberte stejnou spravovanou identitu přiřazenou uživatelem vybranou v předchozím kroku.
Poznámka:
Pokud je spravovaná identita přiřazená systémem primární identita, pole Primární identita musí být prázdné.
Výběr možnosti Použít
V dolní části stránky vyberte Zkontrolovat a vytvořit .
Na stránce Zkontrolovat a vytvořit vyberte po kontrole možnost Vytvořit.
Příkaz Azure CLI az sql server create
slouží ke zřízení nového logického serveru. Následující příkaz zřídí nový server se spravovanou identitou přiřazenou uživatelem. Příklad také povolí ověřování microsoft Entra-only a nastaví správce Microsoft Entra pro server.
Přihlašovací jméno správce SQL serveru se vytvoří automaticky a heslo se nastaví na náhodné heslo. Vzhledem k tomu, že připojení k ověřování SQL je při vytváření tohoto serveru zakázané, přihlašovací jméno správce SQL se nepoužije.
Server Microsoft Entra admin bude účet, pro <AzureADAccount>
který jste nastavili , a lze ho použít ke správě serveru.
V příkladu nahraďte následující hodnoty:
<subscriptionId>
: ID vašeho předplatného najdete na webu Azure Portal.
<ResourceGroupName>
: Název skupiny prostředků pro logický server
<managedIdentity>
: Spravovaná identita přiřazená uživatelem. Dá se také použít jako primární identita.
<primaryIdentity>
: Primární identita, kterou chcete použít jako identitu serveru
<AzureADAccount>
: Může být uživatelem nebo skupinou Microsoft Entra. Například DummyLogin
<AzureADAccountSID>
: ID objektu Microsoft Entra pro uživatele
<ServerName>
: Použití jedinečného názvu logického serveru
<Location>
: Umístění serveru, například westus
, nebo 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
Další informace najdete v tématu az sql server create.
Poznámka:
Výše uvedený příklad zřídí server pouze se spravovanou identitou přiřazenou uživatelem. Můžete nastavit --identity-type
, UserAssigned,SystemAssigned
aby se oba typy spravovaných identit vytvořily se serverem.
Pokud chcete zkontrolovat stav serveru po vytvoření, přečtěte si následující příkaz:
az sql server show --name <ServerName> --resource-group <ResourceGroupName> --expand-ad-admin
Příkaz PowerShellu New-AzSqlServer
slouží ke zřízení nového logického serveru Azure SQL. Následující příkaz zřídí nový server se spravovanou identitou přiřazenou uživatelem. Příklad také povolí ověřování microsoft Entra-only a nastaví správce Microsoft Entra pro server.
Přihlašovací jméno správce SQL serveru se vytvoří automaticky a heslo se nastaví na náhodné heslo. Vzhledem k tomu, že připojení k ověřování SQL je při vytváření tohoto serveru zakázané, přihlašovací jméno správce SQL se nepoužije.
Server Microsoft Entra admin bude účet, pro <AzureADAccount>
který jste nastavili , a lze ho použít ke správě serveru.
V příkladu nahraďte následující hodnoty:
<ResourceGroupName>
: Název skupiny prostředků pro logický server
<Location>
: Umístění serveru, například West US
, nebo Central US
<ServerName>
: Použití jedinečného názvu logického serveru
<subscriptionId>
: ID vašeho předplatného najdete na webu Azure Portal.
<managedIdentity>
: Spravovaná identita přiřazená uživatelem. Dá se také použít jako primární identita.
<primaryIdentity>
: Primární identita, kterou chcete použít jako identitu serveru
<AzureADAccount>
: Může být uživatelem nebo skupinou Microsoft Entra. Například 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
Další informace najdete v tématu New-AzSqlServer.
Poznámka:
Výše uvedený příklad zřídí server pouze se spravovanou identitou přiřazenou uživatelem. Můžete nastavit -IdentityType
, "UserAssigned,SystemAssigned"
aby se oba typy spravovaných identit vytvořily se serverem.
Pokud chcete zkontrolovat stav serveru po vytvoření, přečtěte si následující příkaz:
Get-AzSqlServer -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -ExpandActiveDirectoryAdministrator
Servery – Vytvoření nebo aktualizace rozhraní REST API je možné použít k vytvoření logického serveru se spravovanou identitou přiřazenou uživatelem.
Následující skript zřídí logický server, nastaví správce Microsoft Entra jako <AzureADAccount>
a povolí ověřování pouze Microsoft Entra. Přihlašovací jméno správce SQL serveru se vytvoří také automaticky a heslo se nastaví na náhodné heslo. Vzhledem k tomu, že připojení k ověřování SQL je při tomto zřizování zakázané, přihlašovací jméno správce SQL se nepoužije.
Správce Microsoft Entra <AzureADAccount>
se dá použít ke správě serveru po dokončení zřizování.
V příkladu nahraďte následující hodnoty:
<tenantId>
: Najdete ho na webu Azure Portal a přejděte k prostředku Microsoft Entra ID . V podokně Přehled by se mělo zobrazit ID tenanta.
<subscriptionId>
: ID vašeho předplatného najdete na webu Azure Portal.
<ServerName>
: Použití jedinečného názvu logického serveru
<ResourceGroupName>
: Název skupiny prostředků pro logický server
<AzureADAccount>
: Může být uživatelem nebo skupinou Microsoft Entra. Například DummyLogin
<Location>
: Umístění serveru, například westus2
, nebo centralus
<objectId>
: Najdete ho na webu Azure Portal a přejděte k prostředku Microsoft Entra ID . V podokně Uživatel vyhledejte uživatele Microsoft Entra a vyhledejte jeho ID objektu.
<managedIdentity>
: Spravovaná identita přiřazená uživatelem. Dá se také použít jako primární identita.
<primaryIdentity>
: Primární identita, kterou chcete použít jako identitu serveru
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"
Poznámka:
Výše uvedený příklad zřídí server pouze se spravovanou identitou přiřazenou uživatelem. Můžete nastavit "type"
, "UserAssigned,SystemAssigned"
aby se oba typy spravovaných identit vytvořily se serverem.
Pokud chcete zkontrolovat stav serveru, můžete použít následující skript:
$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
Tady je příklad šablony ARM, která vytvoří logický server Azure SQL Database se spravovanou identitou přiřazenou uživatelem. Šablona také přidá sadu správce Microsoft Entra pro server a povolí ověřování pouze Microsoft Entra, ale můžete ho odebrat z příkladu šablony.
Další informace a šablony ARM najdete v tématu Šablony Azure Resource Manageru pro Azure SQL Database a SQL Managed Instance.
Použití vlastního nasazení na webu Azure Portal a vytvoření vlastní šablony v editoru V dalším kroku uložte konfiguraci po vložení v příkladu.
Pokud chcete získat ID prostředku spravované identity přiřazené uživatelem, na webu Azure Portal vyhledejte spravované identity. Vyhledejte spravovanou identitu a přejděte na Vlastnosti. Příklad ID prostředku UMI bude vypadat takto/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')]"
}
}
}
]
}