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.
Dieser Artikel zeigt Ihnen, wie Sie Microsoft Entra ID zur Authentifizierung mit Azure Synapse Analytics verwenden.
Hinweis
Microsoft Entra Server Principals befinden sich derzeit in der Vorschauversion für Azure Synapse Analytics.
Prerequisites
Um Microsoft Entra-Authentifizierung mit Azure Synapse Analytics zu verwenden, benötigen Sie folgende Voraussetzungen:
- Ein Microsoft Entra Mandant, der über Benutzer und Gruppen verfügt.
- Ein bestehender Azure Synapse Workspace oder ein eigenständiger dedizierter SQL-Pool.
Erstellen und Befüllen eines Microsoft Entra Mandanten
Bevor Sie die Microsoft Entra-Authentifizierung für Azure Synapse Analytics konfigurieren können, müssen Sie einen Microsoft Entra-Tenant erstellen und ihn mit Benutzern und Gruppen füllen. Sie können Microsoft Entra-Tenants vollständig innerhalb von Azure verwalten oder sie für die Föderation eines lokalen Active Directory-Domäne Service nutzen.
Weitere Informationen findest du unter:
- Was ist Microsoft Entra ID?
- Integrieren Ihrer lokalen Identitäten mit Microsoft Entra ID
- Fügen Sie Ihren Domainnamen zu Microsoft Entra ID hinzu
- Was bedeutet die Föderation mit Microsoft Entra ID?
- Directory-Synchronisierung mit Microsoft Entra ID
- Manage Microsoft Entra ID mit Windows PowerShell
- Erforderliche Ports und Protokolle für die Hybrid-Identität
Microsoft Entra-Administrator festlegen
Um Microsoft Entra-Authentifizierung zu verwenden, benötigt Ihre Azure Synapse-Ressource einen Microsoft Entra-Administrator.
Du kannst auch den Microsoft Entra-Administrator konfigurieren, wenn du die Ressource erstellst. Wenn Sie bereits einen Administrator konfiguriert haben, überspringen Sie diesen Abschnitt.
Azure Synapse Workspace
Für einen Azure Synapse-Arbeitsbereich konfigurieren Sie den Microsoft Entra-Administrator für den Arbeitsbereich. Weitere Informationen finden Sie unter Administratorstruktur.
Eigenständiger dedizierter SQL-Pool
Wenn du den Microsoft Entra-Administrator einstellst, aktivierst du die Microsoft Entra-Authentifizierung für den logischen Server, der einen eigenständigen dedizierten SQL-Pool hostet. Sie können den Administrator über das Azure Portal, PowerShell, Azure CLI oder REST APIs festlegen.
Im Azure-Portal finden Sie den Namen logical server
- Im Feld Servername auf der Seite Übersicht des eigenständigen dedizierten SQL-Pools in Azure Synapse Analytics.
- Azure Portal
- PowerShell
- Azure CLI
- REST-APIs
Führen Sie die folgenden Schritte aus, um den Microsoft Entra-Administrator für Ihren logischen Server im Azure-Portal festzulegen:
Im Azure-Portal im Bereich Verzeichnisse + Abonnements wähle das Verzeichnis, das deine Azure Synapse-Ressource enthält, als aktuelles Verzeichnis.
Suche nach SQL-Servern und wähle dann den logischen Server für deinen dedizierten SQL-Pool, um den SQL-Server-Bereich zu öffnen.
Wählen Sie im Bereich SQL-Server für den logischen Server Microsoft Entra ID unter Settings aus, um den Bereich Microsoft Entra ID zu öffnen.
Wählen Sie im Bereich Microsoft Entra IDSet admin aus, um den Bereich Microsoft Entra ID zu öffnen.
Im Bereich Microsoft Entra ID werden alle Benutzer, Gruppen und Anwendungen in Ihrem aktuellen Verzeichnis angezeigt, und Sie können nach Namen, Alias oder ID suchen. Suchen Sie Ihre gewünschte Identität für Ihren Microsoft Entra-Administrator, und wählen Sie sie aus, und wählen Sie dann Select aus, um den Bereich zu schließen.
Wählen Sie oben auf der Seite Microsoft Entra ID für den logischen Server Speichern aus.
Die Object-ID wird neben dem Administratornamen für Microsoft Entra Benutzer und Gruppen angezeigt. Für Anwendungen (Dienstprinzipale) wird die Anwendungs-ID angezeigt.
Der Vorgang zum Ändern des Administrators kann einige Minuten in Anspruch nehmen. Anschließend wird der neue Administrator im Feld Microsoft Entra admin angezeigt.
Um den Administrator zu entfernen, wählen Sie oben auf der Seite Microsoft Entra IDRemove admin und dann Speichern aus. Durch das Entfernen des Microsoft Entra Administrators wird Microsoft Entra Authentifizierung für Ihren logischen Server deaktiviert.
Hinweis
Der Microsoft Entra-Administrator wird im Server-master-Datenbank als Benutzer (Datenbankprinzipal) gespeichert. Da Datenbankprinzipalnamen eindeutig sein müssen, kann der Anzeigename des Administrators nicht mit dem Namen eines Benutzers in der Datenbank des Servers master übereinstimmen. Falls bereits ein Benutzer mit dem Namen existiert, schlägt das Microsoft Entra-Admin-Setup fehl und wird zurückgesetzt, wobei darauf hingewiesen wird, dass der Name bereits verwendet wird.
Zuweisen von Microsoft Graph-Berechtigungen
Für einige Operationen benötigt Azure Synapse Analytics Berechtigungen, um Microsoft Graph abzufragen, wie in Microsoft Graph-Berechtigungen erklärt. Azure Synapse Analytics unterstützt feingranulierte Microsoft Graph-API-Berechtigungen wie User.Read.All, GroupMember.Read.All, und Application.Read.All auf der Ressourcenidentität. Dieser Ansatz folgt dem Prinzip der geringsten Rechte und wird empfohlen. Sie können auch die Rolle „Directory Readers“ als umfassendere Alternative nutzen. Weitere Informationen finden Sie unter Managed Identities in Microsoft Entra for Azure Synapse Analytics.
Rolle „Verzeichnisleser“
Für ein geführtes Verfahren siehe Die Rolle Verzeichnisleser einer Microsoft Entra-Gruppe zuweisen.
Das folgende PowerShell-Skript fügt der Rolle Directory Readers eine Azure Synapse Resource Identity hinzu.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$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 logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
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 '$($instanceName)' 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 "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
Der Microsoft Entra-Administrator kann nun Microsoft Entra-Server-Principals (Logins) und Datenbank-Principals (Benutzer) erstellen.
Erstellen Microsoft Entra Prinzipale in SQL
Um sich mit einer Datenbank in Azure Synapse Analytics mit Microsoft Entra-Authentifizierung zu verbinden, musst du ein Principal in der Datenbank für diese Identität mit mindestens der Berechtigung CONNECT konfigurieren.
Berechtigungen für Datenbankbenutzer
Wenn Sie einen Datenbankbenutzer erstellen, erhält dieser standardmäßig die CONNECT Berechtigung zur Datenbank. Ein Datenbankbenutzer erbt auch Berechtigungen unter zwei Umständen:
- Der Nutzer ist Mitglied einer Microsoft Entra-Gruppe, der auf dem Server ebenfalls Berechtigungen zugewiesen sind.
- Du erstellst den Benutzer aus einem Login, und der Benutzer erbt die serverzugewiesenen Berechtigungen des Logins, die für die Datenbank gelten.
Das Verwalten von Berechtigungen für Server- und Datenbankprinzipale funktioniert unabhängig vom Prinzipaltyp (Microsoft Entra ID, SQL-Authentifizierung usw.) identisch. Erteile Datenbankrollen Berechtigungen, anstatt Benutzern direkt Berechtigungen zu gewähren. Füge dann Benutzer zu Rollen mit entsprechenden Berechtigungen hinzu. Dieser Ansatz vereinfacht das langfristige Berechtigungsmanagement und verringert die Wahrscheinlichkeit, dass eine Identität den Zugriff behält, wenn dieser nicht mehr angemessen ist.
Weitere Informationen findest du unter:
- Datenbank-Engine-Berechtigungen und Beispiele
- Blog: Grundlagen der Berechtigungen der Datenbank-Engine
- Datenbankzugriff für Azure Synapse Analytics autorisieren
Eingeschlossene Datenbankbenutzer
Ein eigenständiger Datenbankbenutzer ist ein SQL-Benutzertyp, der nicht mit einer Anmeldung in der master-Datenbank verbunden ist. Um einen eigenständigen Microsoft Entra-Datenbankbenutzer zu erstellen, verbinden Sie sich mit der Datenbank mit einer Microsoft Entra-Identität, die mindestens die Berechtigung ALTER ANY USER besitzt. Das folgende T-SQL-Beispiel erstellt einen Datenbankprinzipal mit dem Namen Microsoft_Entra_principal_name aus Microsoft Entra ID.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Um einen enthaltenen Datenbankbenutzer für eine Microsoft Entra Gruppe zu erstellen, geben Sie den Anzeigenamen der Gruppe ein:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Um einen eingeschränkten Datenbankbenutzer für eine verwaltete Identität oder einen Serviceprinzipal zu erstellen, geben Sie den Anzeigenamen der Identität ein:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Um einen enthaltenen Datenbankbenutzer für einen Microsoft Entra Benutzer zu erstellen, geben Sie den Benutzerprinzipalnamen der Identität ein:
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Anmeldungsbasierte Benutzer
Hinweis
Microsoft Entra Server Principals (logins) befinden sich derzeit in der Vorschau für Azure Synapse Analytics.
Microsoft Entra Serverprinzipale (oder Benutzerkonten) werden unterstützt, was bedeutet, dass in der Datenbank enthaltene Benutzer nicht erforderlich sind. Datenbankprinzipale (Benutzer) können basierend auf einem Serverprinzipal erstellt werden, was bedeutet, dass Microsoft Entra-Benutzer die auf Serverebene zugewiesenen Berechtigungen eines Logins erben können.
CREATE USER [appName] FROM LOGIN [appName];
Informationen zur Syntax für das Erstellen von Microsoft Entra-Serverprinzipalen (Anmeldungen) finden Sie unter CREATE LOGIN.
Externe Benutzer
Sie können einen Datenbankbenutzer nicht direkt für eine Identität erstellen, die in einem anderen Microsoft Entra-Mandanten verwaltet wird als der Mandant, der mit Ihrem Azure-Abonnement verknüpft ist. Sie können jedoch Benutzer aus anderen Verzeichnissen als externe Benutzer in das zugehörige Verzeichnis importieren. Sie können sie dann nutzen, um eigenständige Datenbankbenutzer zu erstellen, die auf die Datenbank zugreifen können. Externe Benutzer können auch über die Mitgliedschaft in Microsoft Entra Gruppen Zugriff erhalten.
Examples: So erstellen Sie einen enthaltenen Datenbankbenutzer, der einen Microsoft Entra Verbund- oder verwalteten Domänenbenutzer darstellt:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Ein Domänenbenutzerkonto in einer Verbunddomäne, das Sie als externer Nutzer in eine verwaltete Domäne importieren, muss die Identität der verwalteten Domäne verwenden.
Überlegungen zum Namen
Du kannst keine Sonderzeichen wie Doppelpunkt : oder Ampersand & in Benutzernamen für T-SQL CREATE LOGIN und CREATE USER Anweisungen verwenden.
Microsoft Entra ID und Azure Synapse Analytics unterscheiden sich in ihrem Benutzermanagement-Design in einem wesentlichen Punkt: Microsoft Entra ID erlaubt doppelte Anzeigenamen innerhalb eines Tenants, während Azure Synapse Analytics eindeutige Server-Principal-Namen in einem dedizierten SQL-Pool und eindeutige Datenbank-Principal-Namen in einer Datenbank verlangt.
Microsoft Graph-Berechtigungen
Der Befehl CREATE USER ... FROM EXTERNAL PROVIDER verlangt, dass Azure Synapse Analytics im Namen des angemeldeten Benutzers auf die Microsoft Entra ID (den externen Anbieter) zugreift. Manchmal gibt Microsoft Entra ID eine Exception zurück.
- Möglicherweise tritt sql-Fehler 33134 auf, der die Microsoft Entra ID-spezifische Fehlermeldung 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 in der Regel durch Richtlinien für den bedingten Zugriff verursacht, die im Microsoft Entra Mandanten des Benutzers festgelegt sind: Sie verhindern, dass der Benutzer auf den externen Anbieter zugreift. Das Aktualisieren der Conditional Access-Richtlinien, um Zugriff auf die Anwendung
00000003-0000-0000-c000-000000000000(die Anwendungs-ID der Microsoft Graph-API) zu ermöglichen, sollte das Problem lösen. 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 ein Connection Timeout Expired erhalten, müssen Sie möglicherweise den Parameter
TransparentNetworkIPResolutiondes Verbindungszeichenfolge auf "false" festlegen. Weitere Informationen finden Sie unter Connection-Timeout-Problem mit .NET Framework 4.6.1 – TransparentNetworkIPResolution.
Weitere Informationen zum Erstellen enthaltener Datenbankbenutzer basierend auf Microsoft Entra Identitäten finden Sie unter CREATE USER.
Konfigurieren der mehrstufigen Authentifizierung
Für eine verbesserte Sicherheit sollten Sie die Multifaktor-Authentifizierung (MFA) konfigurieren, die den Benutzer auffordert, eine zweite Methode zu verwenden, um sich gegenüber der Datenbank zu authentifizieren, wie etwa einen Anruf oder eine Authenticator-App.
Um die Multifaktor-Authentifizierung mit Azure Synapse Analytics zu nutzen, aktivieren Sie zunächst die Multifaktor-Authentifizierung und verwenden Sie dann eine Conditional Access-Richtlinie, um MFA durchzusetzen.
Herstellen einer Verbindung mit Microsoft Entra
Nachdem die Microsoft Entra-Authentifizierung konfiguriert wurde, können Sie damit eine Verbindung zu Azure Synapse Analytics mit SQL Server Management Studio oder SQL Server Data Tools herstellen und Client-Anwendungen so konfigurieren, dass sie sich über Microsoft Entra-Identitäten verbinden.
Fehlerbehebung bei der Microsoft Entra-Authentifizierung
Zur Orientierung siehe Beheben von Problemen im Zusammenhang mit der Microsoft Entra-Authentifizierung.