Konfigurieren und Verwalten der Microsoft Entra-Authentifizierung mit Azure SQL

Gilt für:Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

In diesem Artikel wird gezeigt, wie Sie einen Microsoft Entra-Mandanten erstellen und mit Daten auffüllen sowie Microsoft Entra ID (früher Azure Active Directory) mit Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse Analytics verwenden. Eine Übersicht finden Sie unter Microsoft Entra-Authentifizierung.

Hinweis

Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.

Microsoft Entra Authentifizierungsmethoden

Microsoft Entra ID unterstützt die folgenden Authentifizierungsmethoden:

  • Reine Microsoft Entra-Cloudidentitäten
  • Microsoft Entra-Hybrididentitäten, die Folgendes unterstützen:
    • Cloudauthentifizierung mit zwei Optionen gekoppelt mit nahtlosem SSO (einmaliges Anmelden)
      • Microsoft Entra-Kennworthashauthentifizierung
      • Microsoft Entra-Passthrough-Authentifizierung
    • Verbundauthentifizierung

Ausführliche Informationen zu den Microsoft Entra-Authentifizierungsmethoden und zur Auswahl der geeigneten Methode finden Sie unter Wählen der korrekten Authentifizierungsmethode für Ihre Microsoft Entra-Hybrididentitätslösung.

Weitere Informationen zu Microsoft Entra-Hybrididentitäten, zur Einrichtung und Synchronisierung finden Sie hier:

Erstellen eines Microsoft Entra-Mandanten und Füllen mit Daten

Erstellen Sie einen Microsoft Entra-Mandanten, und füllen Sie ihn mit Benutzern und Gruppen auf. Microsoft Entra-Mandanten können vollständig in Azure verwaltet oder für den Partnerverbund eines lokalen Active Directory Domain Service verwendet werden.

Weitere Informationen finden Sie unter:

Zuordnen oder Hinzufügen eines Azure-Abonnements zu Microsoft Entra ID

  1. Ordnen Sie Ihr Azure-Abonnement Microsoft Entra ID zu, indem Sie das Verzeichnis für das Azure-Abonnement, das die Datenbank hostet, als vertrauenswürdiges Verzeichnis kennzeichnen. Weitere Informationen finden Sie unter Zuordnen oder Hinzufügen eines Azure-Abonnements zu Ihrem Microsoft Entra-Mandanten.

  2. Verwenden Sie den Verzeichnisumschalter im Azure-Portal, um zu dem der Domäne zugeordneten Abonnement zu wechseln.

    Wichtig

    Jedes Azure-Abonnement verfügt über eine Vertrauensbeziehung zu einer Microsoft Entra-Instanz. Es vertraut diesem Verzeichnis bei der Authentifizierung von Benutzern, Diensten und Geräten. Mehrere Abonnements können dem gleichen Verzeichnis vertrauen, ein Abonnement vertraut jedoch nur einem Verzeichnis. Diese Vertrauensstellung, die ein Abonnement mit einem Verzeichnis aufweist, unterscheidet sich von der, die ein Abonnement mit allen anderen Ressourcen in Azure (Websites, Datenbanken usw.) hat. Diese ähneln eher den untergeordneten Ressourcen eines Abonnements. Wenn ein Abonnement abläuft, wird der Zugriff auf die anderen Ressourcen, die dem Abonnement zugeordnet sind, ebenfalls beendet. Das Verzeichnis verbleibt jedoch in Azure, und Sie können ihm ein anderes Abonnement zuordnen und weiterhin die Benutzer des Verzeichnisses verwalten. Weitere Informationen zu Ressourcen finden Sie unter Grundlegendes zur Zugriffssteuerung in Azure sowie zur Integration in Azure Active Directory. Weitere Informationen zu dieser Vertrauensstellung finden Sie unter Zuweisen oder Hinzufügen eines Azure-Abonnements zu Microsoft Entra ID.

Microsoft Entra-Administrator mit einem Server in der SQL-Datenbank

Jeder logische Server in Azure (der SQL-Datenbank oder Azure Synapse hostet) wird zunächst mit einem einzelnen Serveradministratorkonto konfiguriert, das als Administrator für den gesamten Server fungiert. Erstellen Sie ein zweites Administratorkonto als Microsoft Entra-Konto. Dieser Prinzipal wird als eigenständige*r Datenbankbenutzer*in in der master-Datenbank des Servers erstellt. Administratorkonten sind Mitglieder der Rolle db_owner in jeder Benutzerdatenbank, und der Zugriff auf alle Benutzerdatenbanken erfolgt als Benutzer dbo. Weitere Informationen zu Administratorkonten finden Sie unter Verwalten von Datenbanken und Anmeldungen.

Der Microsoft Entra-Administrator muss für primäre und sekundäre Server konfiguriert werden, wenn Microsoft Entra ID mit Georeplikation verwendet wird. Wenn ein Server keinen Microsoft Entra-Administrator hat, erhalten Microsoft Entra-Anmeldungen und -Benutzer einen Cannot connect zu einem Serverfehler.

Hinweis

Benutzer, die nicht auf einem Microsoft Entra-Konto basieren (hierzu zählt auch das Serveradministratorkonto), können keine Microsoft Entra-basierten Benutzer*innen erstellen, da sie keine Berechtigung zum Überprüfen der vorgeschlagenen Datenbankbenutzer*innen mit Microsoft Entra ID besitzen.

Bereitstellen des Microsoft Entra-Administrators (SQL Managed Instance)

Wichtig

Führen Sie diese Schritte nur aus, wenn Sie SQL Managed Instance bereitstellen. Dieser Vorgang kann nur von einem globalen Administrator oder einem Administrator für privilegierte Rollen in Microsoft Entra ID ausgeführt werden.

Sie können die Rolle Verzeichnisleseberechtigte einer Gruppe in Microsoft Entra ID zuweisen. Die Gruppenbesitzer können dann die Identität der verwalteten Instanz als Mitglied dieser Gruppe hinzufügen. Dadurch können Sie einen Microsoft Entra-Administrator für SQL Managed Instance bereitstellen. Weitere Informationen zu diesem Feature finden Sie unter Rolle „Verzeichnisleseberechtigte“ in Microsoft Entra für Azure SQL.

Für SQL Managed Instance werden Leseberechtigungen für Microsoft Entra benötigt, damit Aufgaben wie die Authentifizierung von Benutzern über die Mitgliedschaft in Sicherheitsgruppen oder die Erstellung neuer Benutzer durchgeführt werden können. Damit dies funktioniert, müssen Sie Microsoft Entra ID SQL Managed Instance Leseberechtigungen gewähren. Dies ist mithilfe des Azure-Portals oder mit PowerShell möglich.

Azure-Portal

Wenn Sie Ihrer SQL Managed Instance über das Azure-Portal Leseberechtigungen für Microsoft Entra ID erteilen möchten, melden Sie sich als globaler Administrator an, und führen Sie die folgenden Schritte aus:

  1. Wählen Sie im Azure-Portal in der oberen rechten Ecke Ihr Konto und dann Verzeichnisse wechseln aus, um zu bestätigen, welches Verzeichnis derzeit Ihr aktuelles Verzeichnis ist. Wechseln Sie die Verzeichnisse, falls erforderlich.

    Screenshot of the Azure portal showing where to switch your directory.

  2. Wählen Sie das richtige Microsoft Entra-Verzeichnis als aktuelles Verzeichnis aus.

    In diesem Schritt wird das Abonnement, das mit Microsoft Entra ID verknüpft ist, mit der SQL Managed Instance verbunden, um sicherzustellen, dass der Microsoft Entra-Mandant und die SQL Managed Instance dasselbe Abonnement verwenden.

  3. Nun können Sie Ihren Microsoft Entra-Administrator für Ihre SQL Managed Instance auswählen. Wechseln Sie dazu zu Ihrer verwalteten Instanzressource im Azure-Portal, und wählen Sie Microsoft Entra-Administrator unter Einstellungen.

    Screenshot of the Azure portal showing the Microsoft Entra admin page open for the selected SQL managed instance.

  4. Wählen Sie oben auf der Seite „Microsoft Entra-Administrator“ das Banner aus, und erteilen Sie dem aktuellen Benutzer die Berechtigung.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Microsoft Entra ID with the Grant permissions button selected.

  5. Nachdem der Vorgang erfolgreich abgeschlossen wurde, wird in der oberen rechten Ecke die folgende Benachrichtigung angezeigt:

    Screenshot of a notification confirming that Microsoft Entra ID read permissions have been successfully updated for the managed instance.

  6. Wählen Sie auf der Seite Microsoft Entra-Administrator die Option Administrator festlegen aus, um den Bereich Microsoft Entra ID zu öffnen.

    Screenshot showing the Set admin command highlighted on the Microsoft Entra admin page for the selected SQL managed instance.

  7. Suchen Sie im Bereich Microsoft Entra ID nach einem Benutzer, aktivieren Sie das Kontrollkästchen neben dem Benutzer oder der Gruppe, um ihn oder sie als Administrator festzulegen, und klicken Sie dann auf Auswählen, um den Bereich zu schließen und zur Seite Microsoft Entra-Administrator der verwalteten Instanz zurückzukehren.

    Im Bereich Microsoft Entra ID werden alle Mitglieder und Gruppen in Ihrem aktuellen Verzeichnis angezeigt. Abgeblendete Benutzer oder Gruppen können nicht ausgewählt werden, da sie nicht als Microsoft Entra-Administratoren unterstützt werden. Eine Liste mit den unterstützten Administratoren finden Sie unter Features und Einschränkungen von Microsoft Entra. Die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC) gilt nur für das Azure-Portal und wird nicht an SQL-Datenbank, SQL Managed Instance oder Azure Synapse weitergegeben.

  8. Wählen Sie in der Navigationsleiste der Seite Microsoft Entra-Administrator für Ihre verwaltete Instanz die Option Speichern aus, um Ihren Microsoft Entra-Administrator zu bestätigen.

    Screenshot of the Microsoft Entra admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    Der Vorgang zum Ändern des Administrators kann einige Minuten in Anspruch nehmen. Anschließend wird der neue Administrator im Feld „Microsoft Entra--Administrator“ angezeigt.

    Die Objekt-ID wird für Microsoft Entra-Benutzer und -Gruppen neben dem Administratornamen angezeigt. Für Anwendungen (Dienstprinzipale) wird die Anwendungs-ID angezeigt.

Nachdem Sie einen Microsoft Entra-Administrator für Ihre SQL Managed Instance bereitgestellt haben, können Sie unter Verwendung der Syntax CREATE LOGIN mit der Erstellung von Microsoft Entra-Dienstprinzipalen (Anmeldungen) beginnen. Weitere Informationen finden Sie in der Übersicht über SQL Managed Instance.

Tipp

Wenn Sie einen Administrator später entfernen möchten, wählen Sie oben auf der Seite „Microsoft Entra-Administrator“ Administrator entfernen und anschließend Speichern aus.

PowerShell

Um PowerShell zu verwenden, um der SQL Managed Instance Leseberechtigungen für Microsoft Entra ID Zuweisung gewähren, führen Sie dieses Skript aus.

# This script grants "Directory Readers" permission to a service principal representing the SQL Managed Instance.
# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$managedInstanceName = "<ManagedInstanceName>" # Enter the name of your managed instance
$tenantId = "<TenantId>"                       # Enter your tenant ID

Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
 
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
    New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
    $role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}

# Get service principal for your SQL Managed Instance
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$managedInstanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($managedInstanceName)' found, make sure that managedInstanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($managedInstanceName)'"
    Write-Output $roleMember | Format-List DisplayName, Id, AppId
    exit
}

# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
    # Add principal to Directory Readers role
    Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role..."
    $body = @{
        "@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
    }
    New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
    Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role."
} else {
    Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role."
}

PowerShell für SQL Managed Instance

Zum Ausführen von PowerShell-Cmdlets muss Azure PowerShell installiert sein und ausgeführt werden. Ausführliche Informationen finden Sie unter Installieren und Konfigurieren von Azure PowerShell.

Wichtig

Azure SQL Managed Instance unterstützt das PowerShell Azure Resource Manager-Modul (RM) weiterhin, aber alle zukünftigen Entwicklungen erfolgen für das Az.Sql-Modul. Das AzureRM-Modul erhält mindestens bis Dezember 2020 Fehlerbehebungen. Die Argumente für die Befehle im Az-Modul und den AzureRm-Modulen sind im Wesentlichen identisch. Weitere Informationen zur Kompatibilität finden Sie in der Einführung in das neue Azure PowerShell Az-Modul.

Um einen Microsoft Entra-Administrator bereitzustellen, führen Sie die folgenden Azure PowerShell-Befehle aus:

  • Connect-AzAccount
  • Select-AzSubscription

Zum Bereitstellen und Verwalten des Microsoft Entra-Administrators für Ihre Instanz von SQL Managed Instance stehen folgende Cmdlets zur Verfügung:

Cmdlet-Name BESCHREIBUNG
Set-AzSqlInstanceActiveDirectoryAdministrator Stellt einen Microsoft Entra-Administrator für SQL Managed Instance im aktuellen Abonnement bereit. (Muss aus dem aktuellen Abonnement stammen.)
Remove-AzSqlInstanceActiveDirectoryAdministrator Entfernt einen Microsoft Entra-Administrator für SQL Managed Instance aus dem aktuellen Abonnement.
Get-AzSqlInstanceActiveDirectoryAdministrator Gibt Informationen zu einem Microsoft Entra-Administrator für SQL Managed Instance im aktuellen Abonnement zurück.

Mit dem folgenden Befehl werden Informationen zu einem Microsoft Entra-Administrator für eine SQL Managed Instance namens „ManagedInstance01“ abgerufen, die einer Ressourcengruppe mit dem Namen „ResourceGroup01“ zugeordnet ist.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

Über den folgenden Befehl wird eine Microsoft Entra-Administratorgruppe mit dem Namen „DBAs“ für die SQL Managed Instance „ManagedInstance01“ bereitgestellt. Dieser Server ist der Ressourcengruppe „ResourceGroup01“ zugeordnet.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

Mit dem folgenden Befehl wird der Microsoft Entra-Administrator für die SQL Managed Instance-Instanz „ManagedInstanceName01“ entfernt, die der Ressourcengruppe „ResourceGroup01“ zugeordnet ist.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Bereitstellen eines Microsoft Entra-Administrators (SQL-Datenbank)

Wichtig

Führen Sie die folgenden Schritte nur aus, wenn Sie einen Server für Azure SQL-Datenbank oder Azure Synapse Analytics bereitstellen.

Die beiden folgenden Verfahren zeigen, wie Sie einen Microsoft Entra-Administrator für Ihren Server im Azure-Portal und mithilfe von PowerShell bereitstellen.

Azure-Portal

  1. Wählen Sie im Azure-Portal in der oberen rechten Ecke Ihr Konto aus, und wählen Sie dann Verzeichnis wechseln aus, um die Seite Verzeichnisse + Abonnements zu öffnen. Wählen Sie das Microsoft Entra-Verzeichnis aus, das Ihre Azure SQL-Datenbank oder Azure Synapse Analytics als Aktuellen Verzeichnis enthält.

  2. Suchen Sie nach SQL-Servern, und wählen Sie den logischen Server für Ihre Azure SQL-Datenbank aus.

    Search for and select SQL servers.

    Hinweis

    Auf dieser Seite können Sie vor der Auswahl von SQL Server den Stern neben dem Namen auswählen, um die Kategorie den Favoriten hinzuzufügen, und SQL Server der linken Navigationmenü hinzufügen.

    Erwägen Sie auch, Ihr Azure SQL-Dashboard aufzurufen.

  3. Wählen Sie auf der Seite SQL Server die Option Microsoft Entra ID aus.

  4. Wählen Sie auf der Seite Microsoft Entra ID die Option Administrator festlegen aus, um den Bereich Microsoft Entra ID zu öffnen.

    Screenshot shows the option to set the Microsoft Entra admin for SQL servers.

  5. Suchen Sie im Bereich Microsoft Entra ID nach einem Benutzer, und wählen Sie dann den Benutzer oder die Gruppe als Administrator aus. Verwenden Sie Auswählen, um Ihre Auswahl zu bestätigen und den Bereich zu schließen, um zur Seite Microsoft Entra ID für Ihren logischen Server zurückzukehren. (Im Bereich Microsoft Entra ID werden alle Mitglieder und Gruppen Ihres aktuellen Verzeichnisses angezeigt. Abgeblendete Benutzer oder Gruppen können nicht ausgewählt werden, da sie nicht als Microsoft Entra-Administratoren unterstützt werden. Weitere Informationen finden Sie in der Liste der unterstützten Administratoren im Abschnitt Microsoft Entra-Features und -Einschränkungen unter Verwenden der Microsoft Entra-Authentifizierung mit SQL-Datenbank oder Azure Synapse.) Die rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) gilt nur für das Portal und wird nicht an den Server weitergegeben.

  6. Wählen Sie oben auf der Seite Microsoft Entra ID für Ihren logischen Server Speichern aus.

    Screenshot shows the option to save a Microsoft Entra admin.

    Die Objekt-ID wird für Microsoft Entra-Benutzer und -Gruppen neben dem Administratornamen angezeigt. Für Anwendungen (Dienstprinzipale) wird die Anwendungs-ID angezeigt.

Der Vorgang zum Ändern des Administrators kann einige Minuten in Anspruch nehmen. Der neue Administrator wird im Feld Microsoft Entra-Administrator angezeigt.

Hinweis

Beim Einrichten des Microsoft Entra-Administrators darf der Name des neuen Administrators (Benutzer oder Gruppe) in der virtuellen master-Datenbank noch nicht als Benutzer für die Serverauthentifizierung vorhanden sein. Andernfalls schlägt die Einrichtung des Microsoft Entra-Administrators fehl, und die Änderungen werden mit dem Hinweis, dass ein Administrator mit diesem Namen bereits vorhanden ist, rückgängig gemacht. Da die Serverauthentifizierungsbenutzer nicht Teil von Microsoft Entra ID ist, kann keine Verbindung unter Verwendung der Microsoft Entra-Authentifizierung hergestellt werden.

Wenn Sie einen Administrator später entfernen möchten, wählen Sie oben auf der Seite Microsoft Entra ID die Option Administrator entfernen und anschließend Speichern aus. Dadurch wird die Microsoft Entra-Authentifizierung für Ihren logischen Server deaktiviert.

PowerShell für SQL-Datenbank und Azure Synapse

Zum Ausführen von PowerShell-Cmdlets muss Azure PowerShell installiert sein und ausgeführt werden. Ausführliche Informationen finden Sie unter Installieren und Konfigurieren von Azure PowerShell. Um einen Microsoft Entra-Administrator bereitzustellen, führen Sie die folgenden Azure PowerShell-Befehle aus:

  • Connect-AzAccount
  • Select-AzSubscription

Zum Bereitstellen und Verwalten des Microsoft Entra-Administrators für SQL-Datenbank und Azure Synapse stehen folgende Cmdlets zur Verfügung:

Cmdlet-Name BESCHREIBUNG
Set-AzSqlServerActiveDirectoryAdministrator Stellt einen Microsoft Entra-Administrator für den Server bereit, der SQL-Datenbank oder Azure Synapse hostet. (Muss aus dem aktuellen Abonnement stammen.)
Remove-AzSqlServerActiveDirectoryAdministrator Entfernt einen Microsoft Entra-Administrator für den Server, der SQL-Datenbank oder Azure Synapse hostet.
Get-AzSqlServerActiveDirectoryAdministrator Gibt Informationen zu dem Microsoft Entra-Administrator zurück, der aktuell für den Server zum Hosten von SQL-Datenbank oder Azure Synapse konfiguriert ist.

Verwenden Sie den PowerShell-Befehl „get-help“, um weitere Informationen zu diesen Befehlen zu erhalten. Beispiel: get-help Set-AzSqlServerActiveDirectoryAdministrator.

Das folgende Skript stellt eine Microsoft Entra-Administratorengruppe namens DBA_Group (Objekt-ID 40b79501-b343-44ed-9ce7-da4c8cc7353f) für den Server demo_server in einer Ressourcengruppe mit dem Namen Group-23 bereit:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"

Der Eingabeparameter DisplayName akzeptiert entweder den Microsoft Entra ID-Anzeigenamen oder den Benutzerprinzipalnamen (UPN). Beispiel: DisplayName="John Smith" und DisplayName="johns@contoso.com". Für Microsoft Entra-Gruppen wird nur der Anzeigename von Microsoft Entra ID unterstützt.

Hinweis

Der Azure PowerShell-Befehl Set-AzSqlServerActiveDirectoryAdministrator hindert Sie nicht daran, nicht unterstützte Benutzer als Microsoft Entra-Administratoren bereitzustellen. Ein nicht unterstützter Benutzer kann bereitgestellt werden, jedoch keine Verbindung mit einer Datenbank herstellen.

Im folgenden Beispiel wird der optionale Wert für ObjectIDverwendet:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
    -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Hinweis

Ein Wert für ObjectID ist erforderlich, wenn DisplayName nicht eindeutig ist. Verwenden Sie den Microsoft Entra ID-Abschnitt im Azure-Portal, um die Werte für ObjectID und DisplayName abzurufen und die Eigenschaften für einen Benutzer oder eine Gruppe anzuzeigen.

Das folgende Beispiel gibt Informationen zum aktuellen Microsoft Entra-Administrator für den Server zurück:

Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

Im folgenden Beispiel wird ein Microsoft Entra-Administrator entfernt:

Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Hinweis

Sie können einen Microsoft Entra-Administrator auch mithilfe der REST-APIs bereitstellen. Weitere Informationen finden Sie unter Referenz zur REST-API der Dienstverwaltung und Vorgänge für Azure SQL-Datenbank.

Konfigurieren der Clientcomputer

Hinweis

System.Data.SqlClient verwendet die Azure Active Directory-Authentifizierungsbibliothek (ADAL), die veraltet ist. Wenn Sie den Namespace System.Data.SqlClient für die Microsoft Entra-Authentifizierung verwenden, migrieren Sie Anwendungen zu Microsoft.Data.SqlClient und zur Microsoft-Authentifizierungsbibliothek (MSAL). Weitere Informationen finden Sie unter Verwenden der Microsoft Entra-Authentifizierung mit SqlClient.

Wenn Sie weiterhin ADAL.DLL in Ihren Anwendungen verwenden müssen, können Sie die Links in diesem Abschnitt verwenden, um den aktuellen ODBC- und OLE DB-Treiber zu installieren, die die aktuelle ADAL.DLL-Bibliothek enthalten.

Auf allen Clientcomputern, über die Ihre Anwendungen oder Benutzer unter Verwendung von Microsoft Entra-Identitäten eine Verbindung mit SQL-Datenbank oder Azure Synapse herstellen, muss die folgende Software installiert werden:

Sie können diese Anforderungen folgendermaßen erfüllen:

  • Durch das Installieren der aktuellen Version von SQL Server Management Studio oder SQL Server Data Tools wird die Anforderung erfüllt, dass .NET Framework 4.6 vorhanden sein muss.
    • SSMS installiert die x86-Version von ADAL.DLL.
    • SSDT installiert die amd64-Version von ADAL.DLL.
    • Die neueste Visual Studio-Version unter Visual Studio-Downloads erfüllt die .NET Framework 4.6-Anforderung, die erforderliche amd64-Version von ADAL.DLL wird jedoch nicht installiert.

Erstellen eigenständiger Benutzer mit Zuordnung zu Microsoft Entra-Identitäten

In diesem Abschnitt werden die Anforderungen und wichtigen Überlegungen zur Verwendung der Microsoft Entra-Authentifizierung mit Azure SQL-Datenbank, Azure SQL Managed Instance und Azure Synapse überprüft.

  • Die Microsoft Entra-Authentifizierung bei SQL-Datenbank und Azure Synapse erfordert jedoch die Verwendung von eigenständigen Datenbankbenutzern auf der Grundlage einer Microsoft Entra-Identität. Eigenständige Datenbankbenutzer verfügen über keine Anmeldungen in der master-Datenbank und sind Identitäten in der Microsoft Entra ID zugeordnet, die mit der Datenbank verknüpft sind. Die Microsoft Entra-Identität kann ein einzelnes Benutzerkonto, eine Gruppe oder eine Anwendung sein. Weitere Informationen zu eigenständigen Datenbankbenutzern finden Sie unter Eigenständige Datenbankbenutzer – machen Sie Ihre Datenbank portabel. Weitere Informationen zum Erstellen eigenständiger Datenbankbenutzer basierend auf Microsoft Entra-Identitäten finden Sie unter CREATE USER (Transact-SQL).

  • SQL Managed Instance unterstützt Microsoft Entra-Dienstprinzipale (Anmeldungen), deshalb ist die Verwendung eigenständiger Datenbankbenutzer nicht erforderlich. Auf diese Weise können Sie Anmeldeinformationen von Microsoft Entra-Benutzern, -Gruppen oder -Anwendungen erstellen. Dies bedeutet, dass Sie sich über die Microsoft Entra-Serveranmeldung bei Ihrer Instanz von SQL Managed Instance authentifizieren können, statt sich über einen eigenständigen Datenbankbenutzer zu authentifizieren. Weitere Informationen finden Sie in der Übersicht über SQL Managed Instance. Die Syntax zum Erstellen von Microsoft Entra-Dienstprinzipalen (Anmeldungen) finden Sie unter CREATE LOGIN.

  • Datenbankbenutzer (außer Administratoren) können über das Azure-Portal keine Datenbanken erstellen. Microsoft Entra-Rollen werden nicht an die Datenbank in SQL-Datenbank, SQL Managed Instance oder Azure Synapse weitergegeben. Microsoft Entra-Rollen verwalten Azure-Ressourcen und gelten nicht für Datenbankberechtigungen. Beispielsweise gewährt die Rolle SQL Server-Mitwirkender keinen Zugriff zur Verbindungsherstellung mit der Datenbank in SQL-Datenbank, SQL Managed Instance oder Azure Synapse. Die Zugriffsberechtigung muss direkt in der Datenbank mithilfe von Transact-SQL-Anweisungen erteilt werden.

  • Sie können einen Datenbankbenutzer nicht direkt für eine Identität erstellen, die in einem anderen Microsoft Entra-Mandanten verwaltet wird als der, der Ihrem Azure-Abonnement zugeordnet ist. Benutzer in anderen Verzeichnissen können jedoch als externe Benutzer in das zugeordnete Verzeichnis importiert werden. Sie können dann verwendet werden, um eigenständige Datenbankbenutzer zu erstellen, die auf die SQL-Datenbank zugreifen können. Externe Benutzer können auch über die Mitgliedschaft in Microsoft Entra-Gruppen, die eigenständige Datenbankbenutzer sind, Zugriff erhalten.

  • In den T-SQL-Anweisungen CREATE LOGIN und CREATE USER werden Sonderzeichen wie Doppelpunkt (:) oder kaufmännisches Und-Zeichen (&) in Benutzernamen nicht unterstützt.

Wichtig

Microsoft Entra-Benutzern und -Dienstprinzipalen (Microsoft Entra-Anwendungen), die Mitglieder von mehr als 2048 Microsoft Entra-Sicherheitsgruppen sind, ist die Anmeldung bei der Datenbank in SQL-Datenbank, SQL Managed Instance oder Azure Synapse nicht möglich.

Um einen Microsoft Entra-basierten eigenständigen Datenbankbenutzer zu erstellen (bei dem es sich nicht um den Serveradministrator handelt, der Besitzer der Datenbank ist), stellen Sie mit einer Microsoft Entra-Identität, die mindestens über die Berechtigung BELIEBIGEN BENUTZER ÄNDERN verfügt, eine Verbindung mit der Datenbank her. Im folgenden T-SQL-Beispiel kann Microsoft_Entra_principal_name der Benutzerprinzipalname eines Microsoft Entra-Benutzers oder der Anzeigename für eine Microsoft Entra-Gruppe sein.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Beispiele: So erstellen Sie einen eigenständigen Datenbankbenutzer, der einen Benutzer der Microsoft Entra-Verbunddomäne oder einen Benutzer der verwalteten Microsoft Entra-Domäne repräsentiert:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Um einen enthaltenen Datenbankbenutzer zu erstellen, der eine Microsoft Entra-Gruppe darstellt, geben Sie den Anzeigenamen der Gruppe an:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

So erstellen Sie einen eigenständigen Datenbankbenutzer, der eine Anwendung darstellt, die eine Verbindung mit einem Microsoft Entra-Token herstellt:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Der Befehl CREATE USER ... FROM EXTERNAL PROVIDER erfordert, dass SQL auf Microsoft Entra ID (den „externen Anbieter“) im Namen des angemeldeten Benutzers zugreift. Manchmal treten Umstände auf, die bewirken, dass Microsoft EntraID eine Ausnahme an SQL zurückgibt.

  • Möglicherweise tritt SQL-Fehler 33134 auf, der die spezifische Fehlermeldung für Microsoft Entra ID enthält. Der Fehler besagt normalerweise, dass der Zugriff verweigert wird, der Benutzer sich für MFA registrieren muss, um auf die Ressource zuzugreifen, oder dass der Zugriff zwischen Erstanbieteranwendungen über Vorautorisierung verarbeitet werden muss. In den ersten beiden Fällen wird das Problem normalerweise durch Richtlinien für bedingten Zugriff verursacht, die im Microsoft Entra-Mandanten des Benutzers festgelegt werden: Sie verhindern, dass der Benutzer auf den externen Anbieter zugreifen kann. Aktualisieren Sie die Richtlinien für bedingten Zugriff, um den Zugriff auf die Anwendung „00000003-0000-0000-c000-000000000000“ zu ermöglichen (die Anwendungs-ID der Microsoft Graph-API). Dadurch sollte das Problem behoben werden. Wenn der Fehler besagt, dass der Zugriff zwischen Erstanbieteranwendungen über Vorautorisierung verarbeitet werden muss, liegt das Problem daran, dass der Benutzer als Dienstprinzipal angemeldet ist. Der Befehl sollte erfolgreich sein, wenn er stattdessen von einem Benutzer ausgeführt wird.
  • Wenn Sie die Benachrichtigung Das Verbindungstimeout ist abgelaufen. erhalten, müssen Sie möglicherweise den Parameter TransparentNetworkIPResolution der Verbindungszeichenfolge auf FALSE festlegen. Weitere Informationen finden Sie unter Connection timeout issue with .NET Framework 4.6.1 – TransparentNetworkIPResolution (Verbindungstimeout-Problem mit .NET Framework 4.6.1 – TransparentNetworkIPResolution).

Wichtig

Wenn der Microsoft Entra-Administrator für den Server entfernt wird, können Microsoft Entra-Authentifizierungsbenutzer nicht länger eine Verbindung mit dem Server herstellen. Bei Bedarf kann ein SQL-Datenbankadministrator nicht mehr verwendbare Microsoft Entra-Benutzer manuell löschen.

Wenn Sie einen Datenbankbenutzer erstellen, erhält dieser Benutzer die Berechtigung VERBINDEN und kann sich als Mitglied der Rolle ÖFFENTLICH mit dieser Datenbank verbinden. Anfänglich stehen dem Benutzer nur die Berechtigungen zur Verfügung, die der Rolle ÖFFENTLICH, sowie den Microsoft Entra-Gruppen erteilt wurden, denen der Benutzer angehört. Die Gewährung von Berechtigungen für Microsoft Entra-basierte eigenständige Datenbankbenutzer funktioniert genau so wie das Erteilen von Berechtigungen für jeden anderen Benutzertyp. Es wird empfohlen, Berechtigungen für Datenbankrollen zu erteilen und diesen Rollen Benutzer hinzuzufügen, anstatt einzelnen Benutzern direkt Berechtigungen zu erteilen. Weitere Informationen finden Sie unter Erste Schritte mit Berechtigungen für die Datenbank-Engine. Weitere Informationen zu besonderen SQL-Datenbankrollen finden Sie unter Verwalten von Datenbanken und Anmeldungen in Azure SQL-Datenbank. Ein Verbunddomänen-Benutzerkonto, das als externer Benutzer in eine verwaltete Domäne importiert wird, muss die Identität der verwalteten Domäne verwenden.

Microsoft Entra-Benutzer werden in den Datenbankmetadaten mit dem Typ E (EXTERNAL_USER) gekennzeichnet, Gruppen mit dem Typ X (EXTERNAL_GROUPS). Weitere Informationen finden Sie unter sys.database_principals.

Herstellen einer Datenbankverbindung SSMS oder SSDT

Um zu prüfen, dass der Microsoft Entra-Administrator ordnungsgemäß eingerichtet ist, stellen Sie mit dem Microsoft Entra-Administratorkonto eine Verbindung mit der Datenbank master her. Zum Erstellen eines Microsoft Entra-basierten eigenständigen Datenbankbenutzers stellen Sie eine Verbindung mit der Datenbank mit einer Microsoft Entra-Identität her, die Zugriff auf die Datenbank und mindestens die ALTER ANY USER-Berechtigung hat.

Verwenden einer Microsoft Entra-Identität zum Herstellen einer Verbindung mit SSMS oder SSDT

Das nachstehende Verfahren zeigt, wie Sie mithilfe einer Microsoft Entra-Identität und unter Verwendung von SQL Server Management Studio (SSMS) oder SQL Server Data Tools (SSDT) eine Verbindung mit SQL-­Datenbank herstellen.

Microsoft Entra ID – integriert

Verwenden Sie diese Methode, wenn Sie bei Windows angemeldet sind. Verwenden Sie dazu Ihre Microsoft Entra-Anmeldeinformationen aus einer Verbunddomäne oder einer verwalteten Domäne, die für nahtloses einmaliges Anmelden für eine Passthrough- und Kennworthashauthentifizierung konfiguriert ist. Weitere Informationen finden Sie unter Microsoft Entra nahtloses einmaliges Anmelden.

  1. Starten Sie SSMS oder SSDT, und wählen Sie im Dialogfeld Verbindung mit dem Server herstellen (oder Verbindung mit Datenbank-Engine herstellen) im Feld Authentifizierung die Einstellung Integrierte Azure Active Directory-Authentifizierung aus. Sie müssen kein Kennwort eingeben, da Ihre vorhandenen Anmeldeinformationen für die Verbindung angezeigt werden.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Wählen Sie die Schaltfläche Optionen aus, und geben Sie auf der Seite Verbindungseigenschaften im Feld Mit Datenbank verbinden den Namen der Benutzerdatenbank ein, mit der die Verbindung hergestellt werden soll.

    Screenshot from SSMS of the Options menu.

Microsoft Entra ID – Kennwort

Verwenden Sie diese Methode beim Herstellen einer Verbindung mit einem Microsoft Entra-Prinzipalnamen mithilfe der von Microsoft Entra verwalteten Domäne. Sie können diese Authentifizierungsmethode auch für ein Verbundkonto ohne Zugriff auf die Domäne verwenden, beispielsweise wenn Sie an einem Remotestandort arbeiten.

Verwenden Sie diese Methode, um sich bei SQL-Datenbank oder SQL Managed Instance mit reinen Microsoft Entra-Cloudidentitätsbenutzern oder solchen Benutzern bei der Datenbank zu authentifizieren, die Microsoft Entra-Hybrididentitäten verwenden. Diese Methode unterstützt Benutzer, die ihre Windows-Anmeldeinformationen verwenden möchten, deren lokaler Computer aber nicht mit der Domäne verbunden ist (z. B. über Remotezugriff). In diesem Fall kann ein Windows-Benutzer sein Domänenkonto mit dem zugehörigen Kennwort verwenden, um sich in SQL-Datenbank, SQL Managed Instance oder Azure Synapse bei der Datenbank zu authentifizieren.

  1. Starten Sie SSMS oder SSDT, und wählen Sie im Dialogfeld Verbindung mit dem Server herstellen (oder Verbindung mit Datenbank-Engine herstellen) im Feld Authentifizierung die Einstellung Azure Active Directory: Kennwort aus.

  2. Geben Sie im Feld Benutzername Ihren Microsoft Entra-Benutzernamen im Format username\@domain.com ein. Benutzernamen müssen ein Konto aus Microsoft Entra ID oder ein Konto aus einer verwalteten oder Verbunddomäne Microsoft Entra ID sein.

  3. Geben Sie im Feld Kennwort Ihr Benutzerkennwort für das Microsoft Entra-Konto oder das Konto der verwalteten Domäne oder Verbunddomäne ein.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Wählen Sie die Schaltfläche Optionen aus, und geben Sie auf der Seite Verbindungseigenschaften im Feld Mit Datenbank verbinden den Namen der Benutzerdatenbank ein, mit der die Verbindung hergestellt werden soll. (Siehe Grafik in der vorherigen Option.)

Microsoft Entra ID – Universell mit MFA

Verwenden Sie diese Methode für die interaktive Authentifizierung mit Multi-Faktor-Authentifizierung (MFA), bei der das Kennwort interaktiv angefordert wird. Diese Methode kann verwendet werden, um sich bei SQL-Datenbank, SQL Managed Instance und Azure Synapse mit reinen Microsoft Entra-Cloudidentitätsbenutzern oder solchen Benutzern bei der Datenbank zu authentifizieren, die Microsoft Entra-Hybrididentitäten verwenden.

Weitere Informationen finden Sie unter Verwenden der mehrstufiger Microsoft Entra-Authentifizierung mit SQL-Datenbank und Azure Synapse Analytics (SSMS-Unterstützung für MFA).

Microsoft Entra ID – Dienstprinzipal

Verwenden Sie diese Methode, um sich bei der Datenbank in der SQL-Datenbank oder SQL Managed Instance mit Microsoft Entra-Dienstprinzipalen (Microsoft Entra-Anwendungen) zu authentifizieren. Weitere Informationen finden Sie unter Microsoft Entra-Dienstprinzipal mit Azure SQL.

Microsoft Entra ID – Verwaltete Identität

Verwenden Sie diese Methode, um sich bei der Datenbank in der SQL-Datenbank oder SQL Managed Instance mit verwalteten Microsoft Entra-Identitäten zu authentifizieren. Weitere Informationen finden Sie unter Verwaltete Identitäten in Microsoft Entra für Azure SQL.

Microsoft Entra ID – Standard

Die Standardauthentifizierungsoption mit Microsoft Entra ID ermöglicht die Authentifizierung, die über kennwortlose und nicht interaktive Mechanismen ausgeführt wird, einschließlich verwalteter Identitäten.

Verwenden der Microsoft Entra-Identität zum Herstellen einer Verbindung mit dem Abfrage-Editor im Azure-Portal für Azure SQL-Datenbank

Weitere Informationen zum Abfrage-Editor im Azure-Portal für Azure SQL-Datenbank finden Sie in der Schnellstartanleitung zum Verwenden des Abfrage-Editors im Azure-Portal zum Abfragen von Azure SQL-Datenbank.

  1. Navigieren Sie im Azure-Portal zu Ihrer SQL-Datenbank. Besuchen Sie beispielsweise Ihr Azure SQL-Dashboard.

  2. Wählen Sie auf der Seite Übersicht in Ihrer SQL-Datenbank im Azure-Portal im linken Menü den Abfrage-Editor aus.

  3. Wählen Sie auf dem Anmeldebildschirm unter Willkommen beim SQL-Datenbank-Abfrage-Editor die Option Als <Benutzer- oder Gruppen-ID>fortfahren aus.

    Screenshot showing sign-in to the Azure portal Query editor with Microsoft Entra authentication.

Verwenden einer Microsoft Entra-Identität zum Herstellen einer Verbindung von einer Clientanwendung

Die folgenden Verfahren zeigen, wie Sie mit einer Microsoft Entra-Identität von einer Clientanwendung aus eine Verbindung mit einer SQL-Datenbank herstellen. Dies ist keine umfassende Liste der Authentifizierungsmethoden bei Verwendung einer Microsoft Entra-Identität. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure SQL mit Microsoft Entra-Authentifizierung und SqlClient.

Integrierte Microsoft Entra-Authentifizierung

Um integrierte Windows-Authentifizierung verwenden zu können, muss das Active Directory der Domäne einen Verbund mit Microsoft Entra ID bilden oder sollte eine verwaltete Domäne sein, die für nahtloses einmaliges Anmelden (SSO) für Passthrough- oder Kennworthashauthentifizierung konfiguriert ist. Weitere Informationen finden Sie unter Microsoft Entra nahtloses einmaliges Anmelden.

Ihre Client-Anwendung (oder ein Dienst), die eine Verbindung mit der Datenbank herstellt, muss unter den Domänenanmeldeinformationen eines Benutzers auf einem Computer ausgeführt werden, der der Domäne beigetreten ist.

Um mithilfe der integrierten Authentifizierung und einer Microsoft Entra-Identität eine Verbindung mit einer Datenbank herzustellen, muss das Authentifizierungsschlüsselwort in der Verbindungszeichenfolge für die Datenbank auf Active Directory Integrated festgelegt sein. Ersetzen Sie <database_name> durch den Namen der Datenbank. Im folgenden C#-Codebeispiel wird ADO .NET verwendet.

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Das Schlüsselwort Integrated Security=True in der Verbindungszeichenfolge wird nicht für die Verbindungsherstellung mit Azure SQL-Datenbank unterstützt. Beim Herstellen einer ODBC-Verbindung müssen Sie Leerzeichen entfernen und Authentifizierung auf ActiveDirectoryIntegrated festlegen.

Microsoft Entra-Authentifizierung mit Kennwort

Zum Herstellen einer Verbindung mit einer Datenbank mithilfe reiner Microsoft Entra-Cloudidentitäts-Benutzerkonten oder Konten, die Microsoft Entra-Hybrididentitäten verwenden, muss das Authentifizierungsschlüsselwort auf Active Directory Password festgelegt werden. Die Verbindungszeichenfolge muss Benutzer-ID/UID und Kennwort/PWD-Schlüsselwörter enthalten. Ersetzen Sie <database_name>, <email_address> und <password> durch die entsprechenden Werte. Im folgenden C#-Codebeispiel wird ADO .NET verwendet.

string ConnectionString =
@"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Erfahren Sie mehr über Microsoft Entra-Authentifizierungsmethoden, indem Sie die Demo-Codebeispiele unter Microsoft Entra Authentication GitHub Demo (GitHub-Demo zur Microsoft Entra-Authentifizierung) verwenden.

Microsoft Entra ID-Zugriffstoken

Dank dieser Authentifizierungsmethode können Dienste der mittleren Ebene JSON Webtoken (JWT) abrufen, um in SQL-Datenbank, SQL Managed Instance oder Azure Synapse eine Verbindung mit der Datenbank herzustellen, indem sie ein Token aus Microsoft Entra ID abrufen. Diese Methode ermöglicht verschiedene Anwendungsszenarien einschließlich Dienstidentitäten, Dienstprinzipalen und Anwendungen, die zertifikatbasierte Authentifizierung verwenden. Sie müssen vier grundlegende Schritte zum Verwenden der Microsoft Entra-Token-Authentifizierung ausführen:

  1. Registrieren Sie Ihre Anwendung in Microsoft Entra ID, und rufen Sie die Client-ID für Ihren Code ab.
  2. Erstellen Sie einen Datenbankbenutzer, der die Anwendung darstellt. (Weiter oben im Abschnitt Erstellen Sie eigenständige Benutzer, die Microsoft Entra-Identitäten zugeordnet sind abgeschlossen.)
  3. Erstellen Sie ein Zertifikat auf dem Clientcomputer, auf dem die Anwendung ausgeführt wird.
  4. Fügen Sie das Zertifikat als Schlüssel für die Anwendung hinzu.

Beispiel-Verbindungszeichenfolge. Ersetzen Sie <database_name> durch den Namen der Datenbank:

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

Weitere Informationen finden Sie im SQL Server Security Blog(Blog zur Sicherheit von SQL Server). Informationen zum Hinzufügen eines Zertifikats finden Sie unter Erste Schritte mit zertifikatbasierter Authentifizierung in Microsoft Entra ID.

sqlcmd

Die folgenden Anweisungen stellen eine Verbindung mit Version 13.1 von sqlcmd her. Herunterladen von Microsoft Command Line Utilities 14.0 für SQL Server

Hinweis

sqlcmd mit dem -G-Befehl funktioniert nicht mit Systemidentitäten und erfordert eine Benutzerprinzipalanmeldung.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

Behandeln von Problemen bei der Microsoft Entra-Authentifizierung

Anleitungen zur Problembehandlung bei der Microsoft Entra-Authentifizierung finden Sie im Blog: Behandeln von Problemen im Zusammenhang mit der Azure AD-Authentifizierung mit Azure SQL DB und DW.