Freigeben über


Verwaltete Identitäten in Microsoft Entra für Azure SQL

Gilt für:Azure SQL DatabaseAzure 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.

Screenshot der Unternehmensanwendungseinstellungen im Azure portal.

Wählen Sie die UMI aus und gehen Sie in die Einstellungen für Berechtigungen unter Sicherheit.

Screenshot der vom Benutzer zugewiesenen Berechtigungen für verwaltete Identitäten.

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:

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:

  1. Wechseln Sie zu Ihrer SQL-Server oder SQL verwalteten Instanz-Ressource.

  2. Wählen Sie unter Sicherheit die Option Identität aus.

  3. Legen Sie unter die vom System zugewiesene verwaltete Identität den Status auf „Ein“ fest:

    Screenshot des Identitätsbereichs für den logischen Server im Azure portal.

  4. 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 Azure:

  1. Wechseln Sie zu Ihrer SQL-verwalteten Instanzressource .

  2. Wählen Sie unter Sicherheit die Option Identität aus.

  3. Unter vom System zugewiesene verwaltete Identität setzen Sie den Status auf "Ein".

    Screenshot des Identitätsbereichs für die verwaltete SQL-Instanz im Azure portal.

  4. 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.

Screenshot der Azure Portalseite für einen Azure SQL Database logischen Server. Im Menü

  • 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:

  1. Wechseln Sie zu Ihrer SQL-Server oder SQL verwalteten Instanz-Ressource.
  2. Wählen Sie unter Sicherheit die Einstellung Identität aus.
  3. Wählen Sie unter Benutzerseitig zugewiesene verwaltete IdentitätHinzufügen aus.
  4. 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.

Screenshot des Azure-Portals: Screenshot der Auswahl einer vom Benutzer zugewiesenen verwalteten Identität beim Konfigurieren einer bestehenden Serveridentität.

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.userAssignedIdentities
      
    • So 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.userAssignedIdentities
      
    • Gehen 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 principalId von jedem einzelnen.

      $MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here"
      $MI.Identity.UserAssignedIdentities | ConvertTo-Json
      
    • So 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 principalId von jeder Instanz.

      $MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here"
      $MI.Identity.UserAssignedIdentities | ConvertTo-Json
      
    • Gehen 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.