Freigeben über


Konfigurieren und Verwalten Microsoft Entra Authentifizierung mit Azure SQL

Gilt für:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

In diesem Artikel wird erläutert, wie Sie Microsoft Entra ID für die Authentifizierung mit Azure SQL Database, Azure SQL Managed Instance und Azure Synapse Analytics.

Hinweis

Microsoft Entra ID wurde zuvor als Azure Active Directory (Azure AD) bezeichnet.

Alternativ können Sie auch eine die Microsoft Entra-Authentifizierung für SQL Server auf Azure-VMs konfigurieren.

Voraussetzungen

Um Microsoft Entra Authentifizierung mit Ihrer Azure SQL-Ressource zu verwenden, benötigen Sie die folgenden Voraussetzungen:

Erstellen und Auffüllen eines Microsoft Entra Mandanten

Bevor Sie Microsoft Entra Authentifizierung für Ihre Azure SQL-Ressource konfigurieren können, müssen Sie einen Microsoft Entra Mandanten erstellen und mit Benutzern und Gruppen auffüllen. Microsoft Entra Mandanten können vollständig innerhalb Azure verwaltet oder für den Verbund eines lokalen Active Directory Domain-Diensts verwendet werden.

Weitere Informationen finden Sie unter:

Microsoft Entra-Administrator festlegen

Um Microsoft Entra Authentifizierung mit Ihrer Ressource zu verwenden, muss die Microsoft Entra Administrator festgelegt sein. Während die Schritte für Azure SQL Database, Azure Synapse Analytics und Azure SQL Managed Instance identisch sind, werden in diesem Abschnitt die verschiedenen APIs und Portaloberflächen ausführlich beschrieben, die dies pro Produkt zu tun haben.

Der Microsoft Entra-Administrator kann auch konfiguriert werden, wenn die Azure SQL Ressource erstellt wird. Wenn bereits ein Microsoft Entra-Administrator konfiguriert ist, überspringen Sie diesen Abschnitt.

Azure SQL Database und Azure Synapse Analytics

Das Festlegen des Microsoft Entra Administrators ermöglicht Microsoft Entra Authentifizierung für Ihren Logical-Server für Azure SQL Database und Azure Synapse Analytics. Sie können einen Microsoft Entra-Administrator für Ihren Server festlegen, indem Sie das Azure Portal, PowerShell, Azure CLI oder REST-APIs verwenden.

Im Azure-Portal finden Sie den Namen logical server

  • Im Feld Servername auf der Übersicht-Seite von Azure SQL Database.
  • Im Feld Servername auf der Seite Übersicht des eigenständigen dedizierten SQL-Pools in Azure Synapse Analytics.
  • Im relevanten SQL-Endpunkt auf der Seite Overview Ihres Azure Synapse Analytics Arbeitsbereichs.

Führen Sie die folgenden Schritte aus, um den Microsoft Entra-Administrator für Ihren logischen Server im Azure-Portal festzulegen:

  1. Wählen Sie im Bereich Azure Portal Verzeichnisse und Abonnements das Verzeichnis aus, das Ihre Azure SQL Ressource als Aktuelles Verzeichnis enthält.

  2. Suchen Sie nach SQL-Servern und wählen Sie dann den logischen Server für Ihre Datenbankressource aus, um den SQL Server-Bereich zu öffnen.

    Screenshot zeigt, wie man nach SQL-Servern sucht und diese auswählt.

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

  4. Wählen Sie im Bereich Microsoft Entra IDSet admin aus, um den Bereich Microsoft Entra ID zu öffnen.

    Screenshot zeigt die Option zum Festlegen des Microsoft Entra Administrators für SQL Server.

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

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

    Screenshot zeigt die Option zum Speichern eines Microsoft Entra-Administrators.

    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-Admin wird als Benutzer (Datenbankprinzipal) in der Datenbank des Servers master 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.

Azure SQL Managed Instance

Das Festlegen des Microsoft Entra Administrators ermöglicht Microsoft Entra Authentifizierung für Azure SQL Managed Instance. Sie können einen Microsoft Entra Administrator für Ihre verwaltete SQL-Instanz festlegen, indem Sie das Azure Portal, PowerShell, Azure CLI oder REST-APIs verwenden.

Um Ihrer SQL-verwalteten Instanz Leseberechtigungen für Microsoft Entra ID mithilfe des Azure Portals zu gewähren, melden Sie sich als Privileged Role Administrator an, und führen Sie die folgenden Schritte aus:

  1. Wählen Sie im portal Azure in der oberen rechten Ecke Ihr Konto aus, und wählen Sie dann Switch-Verzeichnisse aus, um zu bestätigen, welches Verzeichnis Ihr Current directory ist. Wechseln Sie die Verzeichnisse, falls erforderlich.

    Screenshot des Azure Portals, in dem angezeigt wird, wo Sie Ihr Verzeichnis wechseln.

  2. Wählen Sie im Bereich Azure Portal Verzeichnisse und Abonnements das Verzeichnis aus, das Ihre verwaltete Instanz als Current directory enthält.''

  3. Suchen Sie nach SQL Managed Instances und wählen Sie dann Ihre verwaltete Instanz aus, um den Bereich der SQL Managed Instance zu öffnen. Wählen Sie dann Microsoft Entra ID unter Settings aus, um den Bereich Microsoft Entra ID für Ihre Instanz zu öffnen.

    Screenshot des Azure Portals mit geöffneter Microsoft Entra Administratorseite für die ausgewählte verwaltete SQL-Instanz.

  4. Wählen Sie im Bereich Microsoft Entra adminSet admin aus der Navigationsleiste aus, um den Bereich Microsoft Entra ID zu öffnen.

    Screenshot mit dem hervorgehobenen

  5. Suchen Sie im Bereich Microsoft Entra ID nach einem Benutzer, aktivieren Sie das Kontrollkästchen neben dem Benutzer oder der Gruppe, um ein Administrator zu sein, und drücken Sie dann Select, um den Bereich zu schließen, und wechseln Sie zurück zum Microsoft Entra Admin Seite für Ihre verwaltete Instanz.

    Im Bereich Microsoft Entra ID werden alle Mitglieder und Gruppen in Ihrem aktuellen Verzeichnis angezeigt. Ausgegraute Benutzer oder Gruppen können nicht ausgewählt werden, da sie nicht als Microsoft Entra-Administratoren unterstützt werden. Wählen Sie die Identität aus, die Sie als Administrator zuweisen möchten.

  6. Wählen Sie auf der Navigationsleiste der Seite Microsoft Entra Admin für Ihre verwaltete Instanz Speichern aus, um Ihren Microsoft Entra Administrator zu bestätigen.

    Screenshot der Microsoft Entra-Administratorseite mit der Schaltfläche

    Nach Abschluss des Administratoränderungsvorgangs wird der neue Administrator im Feld Microsoft Entra Administrator angezeigt.

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

Tipp

Um den Administrator zu entfernen, wählen Sie Remove admin oben auf der seite Microsoft Entra ID aus, und wählen Sie dann Speichern aus.

Zuweisen von Microsoft Graph-Berechtigungen

SQL Managed Instance benötigt Berechtigungen zum Lesen von Microsoft Entra ID für Szenarien wie das Autorisieren von Benutzern, die eine Verbindung über die Sicherheitsgruppenmitgliedschaft und die neue Benutzererstellung herstellen. Damit Microsoft Entra Authentifizierung funktioniert, müssen Sie der Rolle Directory Readers die verwaltete Instanzidentität zuweisen. Dazu können Sie das Azure-Portal oder PowerShell verwenden.

Für einige Vorgänge benötigen Azure SQL Database und Azure Synapse Analytics auch Berechtigungen zum Abfragen von Microsoft Graph, die in Microsoft Graph Berechtigungen erläutert werden. Azure SQL Database und Azure Synapse Analytics präzise Graph-Berechtigungen für diese Szenarien unterstützen, während SQL Managed Instance die Rolle Directory Readers erfordert. Feingranulare Berechtigungen und deren Zuweisung werden im Detail in Enable-Dienstprinzipale zum Erstellen von Microsoft Entra-Benutzern beschrieben.

Von Bedeutung

Azure SQL Database und SQL Managed Instance verwenden unterschiedliche Berechtigungsmodelle für Microsoft Graph Zugriff:

  • Azure SQL Database und Azure Synapse Analytics: Unterstützung fein abgestimmter Microsoft Graph API Berechtigungen (z. B. User.Read.All, GroupMember.Read.All und Application.Read.All) direkt der Serveridentität zugewiesen. Dieser Ansatz folgt dem Prinzip der geringsten Rechte und wird empfohlen. Schrittweise Anleitungen finden Sie unter Aktivieren von Dienstprinzipalen zum Erstellen von Microsoft Entra-Benutzern. Die Rolle "Verzeichnisleser" kann auch als breitere Alternative verwendet werden.
  • SQL Managed Instance: Erfordert die Rolle Directory Readers oder die gleichwertigen, feinkörnigen Microsoft Graph-Berechtigungen, die der Instanzidentität zugewiesen sind. Das Azure-Portal bietet ein bequemes Banner auf der Seite Microsoft Entra ID, auf der Sie aufgefordert werden, die Rolle "Verzeichnisleser" zu erteilen. Führen Sie die Schritte im Rollenabschnitt "Verzeichnisleser" aus .

Wenn Sie Azure SQL Database konfigurieren, müssen Sie die Rolle "Verzeichnisleser" nicht für die grundlegende Einrichtung von Microsoft Entra zuweisen. Weisen Sie stattdessen die fein abgestuften Microsoft-Graph-Berechtigungen der Serveridentität zu, wie in Managed-Identitäten in Microsoft Entra für Azure SQL beschrieben.

Rolle „Verzeichnis-Leser“

Die Rolle Directory Readers und das in diesem Abschnitt beschriebene Portalbanner gelten hauptsächlich für SQL Managed Instance. Für Azure SQL Database können Sie stattdessen finierte Microsoft Graph Berechtigungen zuweisen oder optional Verzeichnisleseprogramme als breitere Alternative verwenden.

Auf der Seite Microsoft Entra ID für SQL Managed Instance im Azure-Portal wird ein bequemes Banner angezeigt, wenn die Instanz nicht den Berechtigungen des Verzeichnisleseberechtigten zugewiesen ist.

  1. Wählen Sie das Banner oben auf der Seite Microsoft Entra ID aus und erteilen Sie der vom System zugewiesenen oder vom Benutzer zugewiesenen verwalteten Identität, die Ihre Instanz darstellt, die Berechtigung. Nur ein Privilegierter Rollenadministrator oder eine höhere Rolle in Ihrem Mandanten kann diesen Vorgang ausführen.

    Hinweis

    Wenn das Banner nicht angezeigt wird, verfügt die Instanz möglicherweise bereits über die Rolle "Verzeichnisleser", oder Sie verfügen möglicherweise nicht über die erforderliche Rolle " Administrator für privilegierte Rollen" . Wenn Sie diese Rolle nicht haben, bitten Sie den Administrator Ihres Mandanten, Ihnen diese Berechtigung zu erteilen, oder nutzen Sie die PowerShell-Methode unter der Registerkarte „PowerShell“.

    Screenshot des Dialogfelds zum Erteilen von Berechtigungen für eine von SQL verwaltete Instanz für den Zugriff auf Microsoft Entra ID mit ausgewählter Schaltfläche

  2. Wenn der Vorgang erfolgreich ist, wird in der oberen rechten Ecke eine Erfolgsbenachrichtigung angezeigt:

    Screenshot einer Benachrichtigung, die bestätigt, dass Microsoft Entra ID Leseberechtigungen für die verwaltete Instanz erfolgreich aktualisiert werden.

Der Microsoft Entra-Administrator kann jetzt verwendet werden, um Microsoft Entra Serverprinzipale (Anmeldungen) und Datenbankprinzipale (Benutzer) zu erstellen. Weitere Informationen finden Sie unter Microsoft Entra Integration mit Azure SQL Managed Instance.

Erstellen Microsoft Entra Prinzipale in SQL

Zum Herstellen einer Verbindung mit einer Datenbank in SQL Database oder Azure Synapse Analytics unter Verwendung von Microsoft Entra-Authentifizierung muss ein Principal in der Datenbank für diese Identität mit mindestens der Berechtigung CONNECT konfiguriert werden.

Berechtigungen für Datenbankbenutzer

Wenn ein Datenbankbenutzer erstellt wird, erhält er standardmäßig die CONNECT Berechtigung für die Datenbank. Ein Datenbankbenutzer erbt auch Berechtigungen unter zwei Umständen:

  • Wenn der Benutzer Mitglied einer Microsoft Entra Gruppe ist, denen auch Berechtigungen auf dem Server zugewiesen sind.
  • Wenn der Benutzer aus einer Anmeldung erstellt wird, erbt er die serverbasierten Berechtigungen der Anmeldung, die für die Datenbank gilt.

Das Verwalten von Berechtigungen für Server- und Datenbankprinzipale funktioniert unabhängig vom Prinzipaltyp (Microsoft Entra ID, SQL-Authentifizierung usw.) identisch. Es wird empfohlen, Berechtigungen für Datenbankrollen zu erteilen, anstatt Benutzern direkt Berechtigungen zu erteilen. Dann können Benutzer zu Rollen mit entsprechenden Berechtigungen hinzugefügt werden. Dies vereinfacht die langfristige Berechtigungsverwaltung und verringert die Wahrscheinlichkeit, dass eine Identität den Zugriff länger behält, als es angebracht ist.

Weitere Informationen finden Sie unter:

Eingeschlossene Datenbankbenutzer

Ein eigenständiger Datenbankbenutzer ist ein SQL-Benutzertyp, der nicht mit einer Anmeldung in der master-Datenbank verbunden ist. Um einen Microsoft Entra enthaltenen Datenbankbenutzer zu erstellen, stellen Sie eine Verbindung mit der Datenbank mit einer Microsoft Entra Identität her, die mindestens über die Berechtigung ALTER ANY USER** verfügt. Im folgenden T-SQL-Beispiel wird ein Datenbank-Principal Microsoft_Entra_principal_name aus Microsoft Entra ID erstellt.

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 Serverprinzipale (Logins) befinden sich derzeit in der öffentlichen Vorschau für Azure SQL Database und Azure Synapse Analytics. Microsoft Entra Anmeldungen sind in der Regel für Azure SQL Managed Instance und SQL Server 2022 verfügbar.

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];

Weitere Informationen finden Sie unter SQL Managed Instance Overview. 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 Mandant verwaltet wird als die mit Ihrem Azure-Abonnement verbundene. 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 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 Verbunddomänen-Benutzerkonto, das als externer Benutzer in eine verwaltete Domäne importiert wird, muss die Identität der verwalteten Domäne verwenden.

Überlegungen zum Namen

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

Microsoft Entra ID und Azure SQL in ihrem Benutzerverwaltungsdesign auf eine zentrale Weise voneinander abweichen: Microsoft Entra ID ermöglicht, dass Anzeigenamen innerhalb eines Mandanten dupliziert werden können, während Azure SQL alle Serverprinzipale auf einem Server oder einer Instanz und alle Datenbankprinzipale in einer Datenbank einen eindeutigen Namen benötigen. Da Azure SQL beim Erstellen von Benutzern direkt den Anzeigenamen der Microsoft Entra-Identität verwendet, kann dies zu Fehlern führen. Um dieses Problem zu beheben, hat Azure SQL die WITH OBJECT_ID-Erweiterung zurzeit in der Vorschau veröffentlicht, wodurch Benutzer die Microsoft Entra Objekt-ID der Identität angeben können, die dem Server oder der Instanz hinzugefügt wird.

Microsoft Graph Berechtigungen

Der Befehl CREATE USER ... FROM EXTERNAL PROVIDER erfordert Azure SQL Zugriff auf Microsoft Entra ID (externer Anbieter) im Namen des angemeldeten Benutzers. Manchmal treten Umstände auf, die dazu führen, dass Microsoft Entra ID eine Ausnahme an Azure SQL zurückgeben.

  • 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. Wenn Sie die Richtlinien für bedingten Zugriff aktualisieren, um den Zugriff auf die Anwendung '00000003-0000-0000-c000-000000000000' zuzulassen (die Anwendungs-ID des Microsoft Graph API), 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 TransparentNetworkIPResolution des connection string 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

Um die Sicherheit für Ihre Azure SQL-Ressource zu verbessern, sollten Sie multifactor authentication (MFA) konfigurieren, wodurch der Benutzer aufgefordert wird, eine zweite alternative Methode zur Authentifizierung bei der Datenbank zu verwenden, z. B. einen Telefonanruf oder eine Authentifikator-App.

Um die mehrstufige Authentifizierung mit Ihrer Azure SQL-Ressource zu verwenden, aktivieren Sie die mehrstufige Authentifizierung und verwenden Sie dann eine bedingungenbasierte Zugriffsrichtlinie, um MFA für Ihre Azure SQL-Ressource zu erzwingen.

Herstellen einer Verbindung mit Microsoft Entra

Nachdem die Microsoft Entra-Authentifizierung konfiguriert wurde, können Sie diese verwenden, um eine Verbindung mit Ihrer SQL-Ressource mithilfe von Microsoft-Tools wie SQL Server Management Studio und SQL Server Data Tools herzustellen, und um Clientanwendungen zu konfigurieren, die mithilfe von Microsoft Entra-Identitäten eine Verbindung herstellen.

Problembehandlung zur Microsoft Entra-Authentifizierung

Anleitungen zur Problembehandlung finden Sie unter Blog: Problembehandlung bei Microsoft Entra Authentifizierung mit Azure SQL Database und Azure Synapse.