Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL Database
Azure SQL Managed Instance
Microsoft Entra ID ( früher Azure Active Directory) unterstützt zwei Arten von verwalteten Identitäten: vom System zugewiesene verwaltete Identität (SMI) und vom Benutzer zugewiesene verwaltete Identität (UMI). Weitere Informationen finden Sie unter Arten von verwalteten Identitäten.
Ein SMI wird automatisch Azure SQL Managed Instance zugewiesen, wenn er erstellt wird. Wenn Sie die Microsoft Entra-Authentifizierung mit Azure SQL-Datenbank verwenden, müssen Sie eine SMI (System Managed Identity) zuweisen, wenn Azure-Dienstprinzipale Microsoft Entra-Benutzer in der SQL-Datenbank erstellen.
Zuvor konnten Sie nur der Azure SQL Managed Instance oder dem SQL-Datenbankserver eine SMI zuweisen. Jetzt können Sie einer SQL Managed Instance oder SQL-Datenbank eine UMI als Instanz- oder Serveridentität zuweisen.
Zusätzlich zur Verwendung einer UMI und eines SMI als Instanz oder Serveridentität können Sie diese für den Zugriff auf die Datenbank verwenden, indem Sie die SQL-connection string-Option Authentication=Active Directory Managed Identity verwenden. Sie müssen mithilfe der CREATE USER-Anweisung einen SQL-Benutzer aus der verwalteten Identität in der Zieldatenbank erstellen. Weitere Informationen finden Sie unter Verwenden der Microsoft Entra-Authentifizierung mit SqlClient.
Informationen zum Abrufen der aktuellen UMIs oder SMI für Azure SQL Verwaltete Instanz oder Azure SQL-Datenbank finden Sie unter Abrufen oder Festlegen einer verwalteten Identität für einen logischen Server oder eine verwaltete Instanz weiter unten in diesem Artikel.
Vorteile der Verwendung benutzerseitig zugewiesener verwalteter Identitäten
Die Verwendung einer UMI als Serveridentität bietet mehrere Vorteile:
Benutzer haben die Flexibilität, eigene UMIs für einen Mandanten zu erstellen und beizubehalten. Sie können UMIs als Serveridentitäten für Azure SQL verwenden. Sie verwalten eine UMI selbst, während das System einen SMI pro Server eindeutig definiert und zuweist.
In der Vergangenheit benötigten Sie die Rolle Microsoft Entra ID Directory Readers, wenn Sie einen SMI als Server- oder Instanzidentität verwendeten. Mit der Einführung des Zugriffs auf Microsoft Entra ID über Microsoft Graph können Benutzer, die sich mit der Gewährung von allgemeinen Berechtigungen wie der Rolle "Verzeichnisleser" an den SMI oder UMI befassen, alternativ Berechtigungen auf niedrigerer Ebene erteilen, damit der Server oder die Instanzidentität auf Microsoft Graph zugreifen kann.
Weitere Informationen zum Bereitstellen von Berechtigungen für Verzeichnisleser und deren Funktion finden Sie unter Directory Readers-Rolle in Microsoft Entra ID für Azure SQL.
Benutzer*innen können eine bestimmte UMI als Server- oder Instanzidentität für alle Datenbanken oder verwalteten Instanzen im Mandanten auswählen. Alternativ können sie verschiedenen Servern oder Instanzen mehrere UMIs zuweisen.
Sie können UMIs auf verschiedenen Servern verwenden, um unterschiedliche Features darzustellen. Beispielsweise kann eine UMI eine transparente Datenverschlüsselung (TDE) auf einem Server bereitstellen, und eine UMI kann Microsoft Entra Authentifizierung auf einem anderen Server bereitstellen.
Sie benötigen eine UMI zum Erstellen eines logical-Servers in Azure konfiguriert mit TDE mit vom Kunden verwalteten Schlüsseln (CMKs). Weitere Informationen finden Sie unter Kundenseitig verwaltete transparente Datenverschlüsselung unter Verwendung einer benutzerseitig zugewiesenen verwalteten Identität.
UMIs sind unabhängig von logischen Servern oder verwalteten Instanzen. Wenn Sie einen logischen Server oder eine logische Instanz löschen, löscht das System auch den SMI. UMIs werden nicht mit dem Server gelöscht.
Hinweis
Sie müssen die Instanzidentität (SMI oder UMI) aktivieren, um die Unterstützung für Microsoft Entra Authentifizierung in SQL Managed Instance zuzulassen. Für SQL-Datenbank ist die Aktivierung der Serveridentität optional und nur erforderlich, wenn ein Microsoft Entra Dienstprinzipal (Microsoft Entra Anwendung) das Erstellen und Verwalten von Microsoft Entra Benutzern, Gruppen oder Anwendungen auf dem Server überwacht. Weitere Informationen finden Sie unter Microsoft Entra Dienstprinzipale mit Azure SQL.
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Weitere Informationen zum Erstellen einer UMI finden Sie unter Verwalten von benutzerseitig zugewiesenen verwalteten Identitäten.
Berechtigungen
Nachdem Sie die UMI erstellt haben, müssen Sie einigen Berechtigungen erteilen, damit die UMI aus Microsoft Graph als Serveridentität lesen kann. Erteilen Sie die folgenden Berechtigungen, oder weisen Sie der UMI die Rolle Verzeichnisleseberechtigte zu.
Sie sollten diese Berechtigungen erteilen, bevor Sie eine logische Server- oder verwaltete Instanz bereitstellen. Nachdem Sie die Berechtigungen für die UMI erteilt haben, gelten sie für alle Server oder Instanzen, die mit der als Serveridentität zugewiesenen UMI erstellt wurden.
Wichtig
Nur ein Privilegierter Rollenadministrator oder eine höhere Rolle kann diese Berechtigungen erteilen.
- User.Read.All: Ermöglicht den Zugriff auf Microsoft Entra Benutzerinformationen.
- GroupMember.Read.All: Ermöglicht den Zugriff auf Microsoft Entra Gruppeninformationen.
- Application.Read.All: Ermöglicht den Zugriff auf Microsoft Entra Dienstprinzipalinformationen (Anwendung).
Berechtigungen für SMI
Der SMI erfordert dieselben Microsoft Graph Anwendungsberechtigungen.
Gilt nur für Azure SQL Database: Die Verwendung eines SMI bietet die Möglichkeit, die Microsoft Graph Berechtigungen nicht explizit bereitzustellen. Die Microsoft Entra Benutzer können weiterhin ohne die erforderliche Microsoft Graph Berechtigung mithilfe der CREATE USER T-SQL-Syntax erstellt werden. Dies würde die Syntax SID und TYPE erfordern, wie im Artikel CREATE USER beschrieben.
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 }
Die obige Syntax ermöglicht die Erstellung von Microsoft Entra-Benutzern ohne Überprüfung. Damit dies funktioniert, müssen Sie das Object Id des Microsoft Entra Hauptkontos angeben und es als SID in der T-SQL-Anweisung verwenden, wie unter Erstellen eines enthaltenen Datenbankbenutzers aus einem Microsoft Entra Hauptkonto ohne Überprüfung erläutert.
Die Gültigkeitsprüfung der Objekt-ID liegt in der Verantwortung des Benutzers, der die T-SQL-Anweisung ausführt.
Erteilen von Berechtigungen
Das folgende PowerShell-Beispielskript erteilt einer verwalteten Identität die erforderlichen Berechtigungen. In diesem Beispiel werden der benutzerseitig zugewiesenen verwalteten Identität umiservertest Berechtigungen zugewiesen.
Um das Skript auszuführen, müssen Sie sich als Benutzer mit einem Privilegierten Rollenadministrator oder einer höheren Rolle anmelden.
Das Skript gewährt einer verwalteten Identität die Berechtigungen User.Read.All, GroupMember.Read.All und Application.Read.ALL für den Zugriff auf Microsoft Graph.
# 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
}
Überprüfen von Berechtigungen für die benutzerseitig zugewiesene verwaltete Identität
Um berechtigungen für eine UMI zu überprüfen, wechseln Sie zum portal Azure. Wechseln Sie in der Ressource Microsoft Entra ID zu Enterprise-Anwendungen. Wählen Sie Alle Anwendungen für Anwendungstyp aus, und suchen Sie nach der UMI, die Sie erstellt haben.
Wählen Sie die UMI aus und gehen Sie in die Einstellungen für Berechtigungen unter Sicherheit.
Abrufen oder Festlegen einer verwalteten Identität für eine logische Server- oder SQL-verwaltete Instanz
Informationen zum Erstellen eines Servers oder einer Instanz mithilfe einer UMI finden Sie in den folgenden Leitfäden:
- Erstellen Sie einen Azure SQL-Datenbankserver mit einer benutzerzugewiesenen verwalteten Identität.
- Erstellen einer sql-verwalteten Instanz mithilfe einer vom Benutzer zugewiesenen verwalteten Identität
Festlegen eines SMI
Führen Sie die folgenden Schritte aus, um die vom System verwaltete Identität für den logischen Server von Azure SQL Database im Azure-Portal festzulegen:
Wechseln Sie zu Ihrer SQL-Server oder SQL verwalteten Instanz-Ressource.
Wählen Sie unter Sicherheit die Option Identität aus.
Legen Sie unter die vom System zugewiesene verwaltete Identität den Status auf „Ein“ fest:
Wählen Sie Speichern, um Ihre Änderungen zu speichern.
Führen Sie die folgenden Schritte aus, um die vom System verwaltete Identität für Azure SQL Managed Instance im portal
Wechseln Sie zu Ihrer SQL-verwalteten Instanzressource .
Wählen Sie unter Sicherheit die Option Identität aus.
Unter vom System zugewiesene verwaltete Identität setzen Sie den Status auf "Ein".
Wählen Sie Speichern, um Ihre Änderungen zu speichern.
SMI abrufen
Im Azure-Portal wird die systemzugeordnete verwaltete Identität (SMI) im Menü Properties des logischen Servers der Azure SQL-Datenbank angezeigt.
- Um die UMIs für Azure SQL Managed Instance oder Azure SQL Database abzurufen, verwenden Sie die PowerShell- oder Azure CLI Beispiele weiter unten in diesem Artikel.
- Um den SMI für Azure SQL Managed Instance abzurufen, verwenden Sie die PowerShell oder Azure CLI Beispiele weiter unten in diesem Artikel.
Festlegen einer vom Benutzer verwalteten Identität im Azure-Portal
So legen Sie die vom Benutzer verwaltete Identität für den Azure SQL Database logischen Server oder Azure SQL Managed Instance im Azure-Portal fest:
- Wechseln Sie zu Ihrer SQL-Server oder SQL verwalteten Instanz-Ressource.
- Wählen Sie unter Sicherheit die Einstellung Identität aus.
- Wählen Sie unter Benutzerseitig zugewiesene verwaltete IdentitätHinzufügen aus.
- Wählen Sie ein Abonnement und dann unter Primäre Identität eine verwaltete Identität für das Abonnement aus. Wählen Sie dann die Schaltfläche Auswählen aus.
Erstellen oder Festlegen einer verwalteten Identität mithilfe der Azure CLI
Die Azure CLI 2.26.0 (oder höher) ist erforderlich, um diese Befehle mit einer UMI auszuführen.
Azure SQL Database verwaltete Identität mithilfe der Azure CLI
Verwenden Sie den Befehl az sql server create, um einen neuen Server mit einer benutzerseitig zugewiesenen verwalteten Identität bereitzustellen.
Mit dem Befehl az sql server show können Sie die verwalteten Identitäten für einen logischen Server abrufen.
Um beispielsweise die benutzerseitig zugewiesenen verwalteten Identitäten eines logischen Servers abzurufen, suchen Sie nach der jeweiligen
principalId:az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.userAssignedIdentitiesSo rufen Sie die vom System zugewiesene verwaltete Identität eines Azure SQL Database logischen Servers ab:
az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.principalId
Verwenden Sie den Befehl az sql server update, um die Servereinstellungen der UMI zu aktualisieren.
Azure SQL Managed Instance verwaltete Identität mithilfe der Azure CLI
Mit dem Befehl az sql mi create können Sie eine neue verwaltete Instanz mit einem UMI bereitstellen.
Verwenden Sie den Befehl az sql mi show, um die system- und benutzerseitig zugewiesenen verwalteten Identitäten für verwaltete Instanzen abzurufen.
Um beispielsweise die UMI(s) für eine verwaltete Instanz abzurufen, suchen Sie nach der jeweiligen
principalId.az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.userAssignedIdentitiesGehen Sie wie folgt vor, um die SMI einer verwalteten Instanz abzurufen:
az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.principalId
Verwenden Sie den Befehl az sql mi update, um die Einstellungen für die verwaltete Instanz der UMI zu aktualisieren.
Erstellen oder Festlegen einer verwalteten Identität mithilfe von PowerShell
Für die Verwendung von PowerShell mit einer UMI ist das Az.Sql-Modul 3.4 oder höher erforderlich. Die latest-Version von PowerShell wird empfohlen oder die Azure Cloud Shell im Azure-Portal verwendet.
Azure SQL Database verwaltete Identität mithilfe von PowerShell
Verwenden Sie den Befehl New-AzSqlServer, um einen neuen Server mit einer UMI bereitzustellen.
Mit dem Befehl Get-AzSqlServer können Sie die verwalteten Identitäten für einen logischen Server abrufen.
Um beispielsweise die UMIs eines logischen Servers abzurufen, suchen Sie nach dem
principalIdvon jedem einzelnen.$MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here" $MI.Identity.UserAssignedIdentities | ConvertTo-JsonSo rufen Sie den SMI eines Azure SQL Database logischen Servers ab:
$MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here" $MI.Identity.principalId
Verwenden Sie den Befehl Set-AzSqlServer, um die Servereinstellungen der UMI zu aktualisieren.
Azure SQL Managed Instance verwaltete Identität mithilfe von PowerShell
Verwenden Sie den Befehl New-AzSqlInstance, um eine neue verwaltete Instanz mit einer UMI bereitzustellen.
Um die verwalteten Identitäten für eine verwaltete Instanz abzurufen, verwenden Sie den Befehl Get-AzSqlInstance.
Um beispielsweise die UMIs einer verwalteten Instanz abzurufen, suchen Sie nach dem
principalIdvon jeder Instanz.$MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here" $MI.Identity.UserAssignedIdentities | ConvertTo-JsonGehen Sie wie folgt vor, um die SMI einer verwalteten Instanz abzurufen:
$MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here" $MI.Identity.principalId
Verwenden Sie den Befehl Set-AzSqlInstance, um die Einstellungen für die verwaltete Instanz einer UMI zu aktualisieren.
Erstellen oder Festlegen einer verwalteten Identität mithilfe der REST-API
Um die UMI-Einstellungen für den Server zu aktualisieren, können Sie auch das REST-API-Bereitstellungsskript verwenden, das in Erstellen eines logischen Servers mit einer benutzerseitig zugewiesenen verwalteten Identität oder Erstellen einer verwalteten Instanz mit einer benutzerseitig zugewiesenen verwalteten Identität verwendet wird. Führen Sie den Bereitstellungsbefehl in der Anleitung erneut mit dem aktualisierten vom Benutzer zugewiesenen verwalteten Identitätsmerkmal aus, das Sie aktualisieren möchten.
Erstellen oder Festlegen einer verwalteten Identität mithilfe einer ARM-Vorlage
Um die UMI-Einstellungen für den Server zu aktualisieren, können Sie auch die Azure Resource Manager-Vorlage (ARM-Vorlage) verwenden, die in Einen logischen Server erstellen unter Verwendung einer benutzerzugewiesenen, verwalteten Identität oder Eine verwaltete Instanz erstellen unter Verwendung einer benutzerzugewiesenen, verwalteten Identität verwendet wird. Führen Sie den Bereitstellungsbefehl in der Anleitung erneut mit dem aktualisierten vom Benutzer zugewiesenen verwalteten Identitätsmerkmal aus, das Sie aktualisieren möchten.
Hinweis
Sie können den Serveradministrator oder das Kennwort nicht ändern oder den Microsoft Entra Administrator ändern, indem Sie den Bereitstellungsbefehl für die ARM-Vorlage erneut ausführen.
Einschränkungen und bekannte Probleme
- Nachdem Sie eine managed instance erstellt haben, zeigt die Seite Microsoft Entra Admin für Ihre managed instance im Azure Portal eine Warnung an:
Managed Instance needs permissions to access Microsoft Entra ID. Click here to grant "Read" permissions to your Managed Instance.Wenn Sie der UMI die entsprechenden Berechtigungen Discussed früher in diesem Artikel erteilt haben können Sie diese Warnung ignorieren. - Wenn Sie einen SMI oder eine UMI als Server- oder Instanzidentität verwenden, macht das Löschen der Identität den Server oder die Instanz unfähig, auf Microsoft Graph zuzugreifen. Microsoft Entra Authentifizierung und andere Funktionen schlagen fehl. Um Microsoft Entra Funktionalität wiederherzustellen, weisen Sie dem Server mit entsprechenden Berechtigungen einen neuen SMI oder UMI zu.
- Um Berechtigungen für den Zugriff auf Microsoft Graph über einen SMI oder eine UMI zu gewähren, müssen Sie PowerShell verwenden. Sie können diese Berechtigungen nicht über das Azure Portal erteilen.