Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Azure SQL Database
Azure SQL Managed Instance
Microsoft Entra ID (dříve Azure Active Directory) podporuje dva typy spravovaných identit: spravovanou identitu přiřazenou systémem (SMI) a spravovanou identitu přiřazenou uživatelem (UMI). Další informace najdete v tématu Typy spravovaných identit.
Rozhraní SMI se automaticky přiřadí ke službě Azure SQL Managed Instance při jejím vytvoření. Pokud používáte ověřování Microsoft Entra se službou Azure SQL Database, musíte přiřadit SMI, když se instanční objekty Azure použijí k vytvoření uživatelů Microsoft Entra ve službě SQL Database.
Dříve bylo možné přiřadit pouze SMI k identitě serveru Azure SQL Managed Instance nebo SQL Database. Teď je možné přiřadit rozhraní UMI ke službě SQL Managed Instance nebo SQL Database jako identitu instance nebo serveru.
Kromě použití rozhraní UMI a SMI jako instance nebo serverové identity je můžete použít pro přístup k databázi pomocí možnosti Authentication=Active Directory Managed IdentitySQL připojovací řetězec . Pomocí příkazu CREATE USER musíte vytvořit uživatele SQL ze spravované identity v cílové databázi. Další informace naleznete v tématu Použití ověřování Microsoft Entra s SqlClient.
Informace o načtení aktuálních umis nebo SMI pro spravovanou instanci Azure SQL nebo Azure SQL Database najdete v části Získání nebo nastavení spravované identity pro logický server nebo spravovanou instanci dále v tomto článku.
Výhody používání spravovaných identit přiřazených uživatelem
Použití UMI jako serverové identity má několik výhod:
Uživatelé mají flexibilitu při vytváření a údržbě vlastních umI pro tenanta. Rozhraní UMI můžete použít jako identity serveru pro Azure SQL. UMI spravuje uživatel, zatímco SMI je jednoznačně definován na server a přiřazen systémem.
V minulosti jste potřebovali roli Čtenáře adresáře Microsoft Entra ID při použití SMI jako identity serveru nebo instance. Díky zavedení přístupu k Microsoft Entra ID prostřednictvím Microsoft Graphu můžou uživatelé, kteří se zabývají poskytováním oprávnění vysoké úrovně, jako je role Čtenáři adresáře pro SMI nebo UMI, případně udělit oprávnění nižší úrovni, aby identita serveru nebo instance získala přístup k Microsoft Graphu.
Další informace o poskytování oprávnění Čtenáři adresáře a jeho funkce naleznete v tématu Role Čtenář adresáře v Microsoft Entra ID pro Azure SQL.
Uživatelé můžou zvolit konkrétní UMI, který bude identitou serveru nebo instance pro všechny databáze nebo spravované instance v tenantovi. Nebo můžou mít přiřazených více umI k různým serverům nebo instancím.
UmI lze použít na různých serverech, aby představovaly různé funkce. UMI může například obsluhovat transparentní šifrování dat (TDE) na jednom serveru a UMI může obsluhovat ověřování Microsoft Entra na jiném serveru.
K vytvoření logického serveru v Azure nakonfigurovaného transparentním šifrováním dat s klíči spravovanými zákazníkem (CMK) potřebujete UMI. Další informace najdete v tématu Transparentní šifrování dat spravované zákazníkem pomocí spravované identity přiřazené uživatelem.
Rozhraní UMI jsou nezávislá na logických serverech nebo spravovaných instancích. Při odstranění logického serveru nebo instance se odstraní také SMI. Rozhraní UMI se se serverem neodstraní.
Poznámka:
Pokud chcete povolit podporu ověřování Microsoft Entra ve službě SQL Managed Instance, musíte povolit identitu instance (SMI nebo UMI). Pro SLUŽBU SQL Database je povolení identity serveru volitelné a povinné pouze v případě, že instanční objekt Microsoft Entra (aplikace Microsoft Entra) dohlíží na vytváření a správu uživatelů, skupin nebo aplikací Microsoft Entra na serveru. Další informace viz služební principály Microsoft Entra s Azure SQL.
Vytvoření spravované identity přiřazené uživatelem
Informace o tom, jak vytvořit UMI, najdete v tématu Správa spravovaných identit přiřazených uživatelem.
Oprávnění
Po vytvoření rozhraní UMI jsou potřeba některá oprávnění, aby rozhraní UMI mohlo číst z Microsoft Graphu jako identitu serveru. UMI udělte následující oprávnění nebo umi přidělte roli Čtenáři adresáře.
Tato oprávnění by měla být udělena před zřízením logického serveru nebo spravované instance. Po udělení oprávnění UMI se povolí pro všechny servery nebo instance vytvořené pomocí UMI přiřazené jako identita serveru.
Důležité
Tato oprávnění může udělit pouze správce privilegovaných rolí nebo vyšší role.
- User.Read.All: Umožňuje přístup k informacím o uživateli Microsoft Entra.
- GroupMember.Read.All: Umožňuje přístup k informacím o skupině Microsoft Entra.
- Application.Read.ALL: Umožňuje přístup k informacím instančního objektu Microsoft Entra (aplikace).
Oprávnění pro SMI
Stejná oprávnění aplikací Microsoft Graphu jsou potřebná s rozhraním SMI.
Platí jenom pro Azure SQL Database: Použití SMI poskytuje příležitost explicitně nezřizovat oprávnění Microsoft Graphu. Uživatelé Microsoft Entra je možné vytvářet i bez potřebných oprávnění Microsoft Graphu CREATE USER pomocí syntaxe T-SQL. To by vyžadovalo SID a TYPE syntaxi, jak je popsáno v článku CREATE USER.
CREATE USER
{
Microsoft_Entra_principal FROM EXTERNAL PROVIDER [ WITH <limited_options_list> [ ,... ] ]
| Microsoft_Entra_principal WITH <options_list> [ ,... ]
}
[ ; ]
<limited_options_list> ::=
DEFAULT_SCHEMA = schema_name
| OBJECT_ID = 'objectid'
<options_list> ::=
DEFAULT_SCHEMA = schema_name
| SID = sid
| TYPE = { X | E }
Výše uvedená syntaxe umožňuje vytvářet uživatele Microsoft Entra bez ověření. Aby to fungovalo, Object Id hlavní objekt Microsoft Entra musí být zadán a použit jako SID v příkazu T-SQL, jak je vysvětleno v části Vytvoření uživatele obsažené databáze z hlavního objektu Microsoft Entra bez ověření.
Kontrola platnosti ID objektu je odpovědností uživatele, který spouští příkaz T-SQL.
Udělit oprávnění
Následující ukázkový skript PowerShellu uděluje potřebná oprávnění pro spravovanou identitu. Tato ukázka přiřadí oprávnění spravované identitě umiservertestpřiřazené uživatelem .
Pokud chcete spustit skript, musíte se přihlásit jako uživatel s rolí Správce privilegovaných rolí nebo vyšší rolí.
Skript udělí spravované identitě a oprávnění pro přístup User.Read.All.GroupMember.Read.AllApplication.Read.ALL
# Script to assign permissions to an existing UMI
# The following required Microsoft Graph permissions will be assigned:
# User.Read.All
# GroupMember.Read.All
# Application.Read.All
Import-Module Microsoft.Graph.Authentication
Import-Module Microsoft.Graph.Applications
$tenantId = "<tenantId>" # Your tenant ID
$MSIName = "<managedIdentity>"; # Name of your managed identity
# Log in as a user with the "Privileged Role Administrator" role
Connect-MgGraph -TenantId $tenantId -Scopes "AppRoleAssignment.ReadWrite.All,Application.Read.All"
# Search for Microsoft Graph
$MSGraphSP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'";
$MSGraphSP
# Sample Output
# DisplayName Id AppId SignInAudience ServicePrincipalType
# ----------- -- ----- -------------- --------------------
# Microsoft Graph 47d73278-e43c-4cc2-a606-c500b66883ef 00000003-0000-0000-c000-000000000000 AzureADMultipleOrgs Application
$MSI = Get-MgServicePrincipal -Filter "DisplayName eq '$MSIName'"
if($MSI.Count -gt 1)
{
Write-Output "More than 1 principal found with that name, please find your principal and copy its object ID. Replace the above line with the syntax $MSI = Get-MgServicePrincipal -ServicePrincipalId <your_object_id>"
Exit
}
# Get required permissions
$Permissions = @(
"User.Read.All"
"GroupMember.Read.All"
"Application.Read.All"
)
# Find app permissions within Microsoft Graph application
$MSGraphAppRoles = $MSGraphSP.AppRoles | Where-Object {($_.Value -in $Permissions)}
# Assign the managed identity app roles for each permission
foreach($AppRole in $MSGraphAppRoles)
{
$AppRoleAssignment = @{
principalId = $MSI.Id
resourceId = $MSGraphSP.Id
appRoleId = $AppRole.Id
}
New-MgServicePrincipalAppRoleAssignment `
-ServicePrincipalId $AppRoleAssignment.PrincipalId `
-BodyParameter $AppRoleAssignment -Verbose
}
Kontrola oprávnění pro spravovanou identitu přiřazenou uživatelem
Pokud chcete zkontrolovat oprávnění pro UMI, přejděte na web Azure Portal. V prostředku Microsoft Entra ID přejděte do podnikových aplikací. Vyberte Všechny aplikace pro typ aplikace a vyhledejte vytvořený UMI.
Vyberte UMI a přejděte do nastavení Oprávnění v části Zabezpečení.
Získání nebo nastavení spravované identity pro logický server nebo spravovanou instanci SQL
Pokud chcete vytvořit server nebo instanci pomocí rozhraní UMI, projděte si následující příručky:
- Vytvořte server Azure SQL Database se spravovanou identitou přiřazenou uživatelem.
- Vytvoření spravované instance SQL pomocí spravované identity přiřazené uživatelem
Nastavte SMI
Pokud chcete nastavit spravovanou identitu systému pro logický server Azure SQL Database na webu Azure Portal, postupujte takto:
Přejděte na sql server nebo prostředek spravované instance SQL.
V části Zabezpečení vyberte Identita.
V části Spravovaná identita přiřazená systémem nastavte stav na Zapnuto:
Výběrem možnosti Uložit uložte změny.
Pokud chcete nastavit spravovanou identitu systému pro azure SQL Managed Instance na webu Azure Portal, postupujte takto:
Přejděte k prostředku spravované instance SQL .
V části Zabezpečení vyberte Identita.
V části Spravovaná identita přiřazená systémem nastavte stavna Zapnuto.
Výběrem možnosti Uložit uložte změny.
Získání rozhraní SMI
Na webu Azure Portal se v nabídce Vlastnosti logického serveru Azure SQL Database zobrazí ID spravované identity (SMI) přiřazené systémem.
- Pokud chcete načíst identifikátory UMI pro Azure SQL Managed Instance nebo Azure SQL Database, můžete použít příklady z PowerShellu nebo Azure CLI dále v tomto článku.
- Pokud chcete načíst SMI pro Azure SQL Managed Instance, použijte příklady PowerShellu nebo Azure CLI dále v tomto článku.
Nastavení identity spravované uživatelem na webu Azure Portal
Nastavení identity spravované uživatelem pro logický server Azure SQL Database nebo azure SQL Managed Instance na webu Azure Portal:
- Přejděte na sql server nebo prostředek spravované instance SQL.
- V části Zabezpečení vyberte nastavení Identita .
- V části Spravovaná identita přiřazená uživatelem vyberte Přidat.
- Vyberte předplatné a pak jako primární identitu vyberte spravovanou identitu předplatného. Pak zvolte tlačítko Vybrat .
Vytvoření nebo nastavení spravované identity pomocí Azure CLI
Ke spuštění těchto příkazů s rozhraním UMI se vyžaduje Azure CLI 2.26.0 (nebo novější).
Spravovaná identita Azure SQL Database pomocí Azure CLI
Pokud chcete zřídit nový server se spravovanou identitou přiřazenou uživatelem, použijte příkaz az sql server create .
Pokud chcete získat spravované identity pro logický server, použijte příkaz az sql server show .
Pokud například chcete načíst spravované identity přiřazené uživatelem logického serveru, vyhledejte
principalIdjednotlivé identity:az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.userAssignedIdentitiesNačtení spravované identity přiřazené systémem logického serveru Azure SQL Database:
az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.principalId
Pokud chcete aktualizovat nastavení serveru UMI, použijte příkaz az sql server update .
Spravovaná identita azure SQL Managed Instance pomocí Azure CLI
Pokud chcete zřídit novou spravovanou instanci pomocí UMI, použijte příkaz az sql mi create .
Pokud chcete získat spravované identity přiřazené systémem a přiřazené uživatelem pro spravované instance, použijte příkaz az sql mi show .
Pokud například chcete načíst UMI pro spravovanou instanci, vyhledejte
principalIdjednotlivé položky:az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.userAssignedIdentitiesNačtení SMI spravované instance:
az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.principalId
Pokud chcete aktualizovat nastavení spravované instance UMI, použijte příkaz az sql mi update .
Vytvoření nebo nastavení spravované identity pomocí PowerShellu
Modul Az.Sql 3.4 nebo novější se vyžaduje pro použití PowerShellu s rozhraním UMI. Doporučujeme nejnovější verzi PowerShellu nebo použijte Azure Cloud Shell na webu Azure Portal.
Spravovaná identita azure SQL Database pomocí PowerShellu
Pokud chcete zřídit nový server pomocí UMI, použijte příkaz New-AzSqlServer .
Pokud chcete získat spravované identity pro logický server, použijte příkaz Get-AzSqlServer .
Pokud například chcete načíst UMIs logického serveru, vyhledejte
principalIdkaždého:$MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here" $MI.Identity.UserAssignedIdentities | ConvertTo-JsonNačtení SMI logického serveru Azure SQL Database:
$MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here" $MI.Identity.principalId
Pokud chcete aktualizovat nastavení serveru UMI, použijte příkaz Set-AzSqlServer .
Spravovaná identita spravované instance Azure SQL pomocí PowerShellu
Pokud chcete zřídit novou spravovanou instanci pomocí rozhraní UMI, použijte příkaz New-AzSqlInstance .
Pokud chcete získat spravované identity pro spravovanou instanci, použijte příkaz Get-AzSqlInstance .
Pokud například chcete načíst UMIs spravovaných instancí, vyhledejte
principalIdkaždé:$MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here" $MI.Identity.UserAssignedIdentities | ConvertTo-JsonNačtení SMI spravované instance:
$MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here" $MI.Identity.principalId
Pokud chcete aktualizovat nastavení spravované instance UMI, použijte příkaz Set-AzSqlInstance .
Vytvoření nebo nastavení spravované identity pomocí rozhraní REST API
Pokud chcete aktualizovat nastavení rozhraní UMI pro server, můžete použít také skript zřizování rozhraní REST API použitý při vytváření logického serveru pomocí spravované identity přiřazené uživatelem nebo vytvořit spravovanou instanci pomocí spravované identity přiřazené uživatelem. Znovu spusťte příkaz zřizování v příručce s aktualizovanou vlastností spravované identity přiřazenou uživatelem, kterou chcete aktualizovat.
Vytvoření nebo nastavení spravované identity pomocí šablony ARM
Pokud chcete aktualizovat nastavení UMI pro server, můžete také použít šablonu Azure Resource Manageru (šablonu ARM) použitou v části Vytvoření logického serveru pomocí spravované identity přiřazené uživatelem nebo vytvořit spravovanou instanci pomocí spravované identity přiřazené uživatelem. Znovu spusťte příkaz zřizování v příručce s aktualizovanou vlastností spravované identity přiřazenou uživatelem, kterou chcete aktualizovat.
Poznámka:
Správce serveru ani heslo nemůžete změnit ani změnit správce Microsoft Entra tak, že znovu provedete příkaz zřizování pro šablonu ARM.
Omezení a známé problémy
- Po vytvoření spravované instance se na stránce pro správu Microsoft Entra pro vaši spravovanou instanci na webu Azure Portal zobrazí upozornění:
Managed Instance needs permissions to access Microsoft Entra ID. Click here to grant "Read" permissions to your Managed Instance.Pokud jste uMI zadali příslušná oprávnění probíraná výše v tomto článku, můžete toto upozornění ignorovat. - Pokud jako identitu serveru nebo instance používáte SMI nebo UMI, odstraněním identity se server nebo instance nepodaří získat přístup k Microsoft Graphu. Ověřování Microsoft Entra a další funkce selžou. Pokud chcete obnovit funkce Microsoft Entra, přiřaďte serveru nové rozhraní SMI nebo UMI s příslušnými oprávněními.
- Pokud chcete udělit oprávnění pro přístup k Microsoft Graphu prostřednictvím SMI nebo UMI, musíte použít PowerShell. Tato oprávnění nemůžete udělit pomocí webu Azure Portal.