Aktivieren der Microsoft Entra-Datenbankauthentifizierung
In dieser Lektion wird gezeigt, wie Sie Microsoft Entra-ID für die Authentifizierung mit Azure SQL-Datenbank, azure SQL Managed Instance und Azure Synapse Analytics verwenden.
Hinweis
Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.
Alternativ können Sie auch die Microsoft Entra-Authentifizierung für SQL Server auf Azure-VMs konfigurieren.
Voraussetzungen
Um die Microsoft Entra-Authentifizierung mit Ihrer Azure SQL-Ressource zu verwenden, müssen Sie die folgenden Voraussetzungen erfüllen:
- Sie benötigen einen Microsoft Entra-Mandant mit Benutzenden und Gruppen.
- Eine vorhandene Azure SQL-Ressource, z. B. Azure SQL-Datenbank oder Azure SQL Managed Instance.
Erstellen und Befüllen eines Microsoft Entra-Mandanten
Bevor Sie die Microsoft Entra-Authentifizierung für Ihre Azure SQL-Ressource konfigurieren können, müssen Sie einen Microsoft Entra-Mandanten erstellen und ihn mit Benutzenden und Gruppen füllen. Sie können Microsoft Entra-Mandanten vollständig in Azure verwalten oder sie für die Verbundbildung mit einem lokalen Active Directory-Domänendienst verwenden.
Weitere Informationen finden Sie unter:
- Was ist Microsoft Entra ID?
- Integrieren Ihrer lokalen Identitäten mit Microsoft Entra ID
- Hinzufügen Ihres Domänennamen zu Microsoft Entra ID
- Was ist ein Verbund mit Microsoft Entra ID?
- Verzeichnissynchronisierung mit Microsoft Entra ID
- Verwalten von Microsoft Entra ID mit Windows PowerShell
- Erforderliche Ports und Protokolle für die hybride Identität
Einrichten eines Microsoft Entra-Admin
Um die Microsoft Entra-Authentifizierung mit Ihrer Ressource verwenden zu können, muss eine Person für die Microsoft Entra-Administration festgelegt sein. Auch wenn die Schritte für Azure SQL-Datenbank, Azure Synapse Analytics und Azure SQL Managed Instance konzeptionell identisch sind, werden in diesem Abschnitt die verschiedenen APIs und Portaloberflächen für jedes Produkt detailliert beschrieben.
Sie können die Person, die für die Verwaltung von Microsoft Entra zuständig ist, auch bei der Erstellung der Azure SQL-Ressource konfigurieren. Wenn bereits jemand für die Verwaltung von Microsoft Entra-zuständig ist, überspringen Sie diesen Abschnitt.
Azure SQL-Datenbank und Azure Synapse Analytics
Nachdem Sie die Person festgelegt haben, die für die Verwaltung von Microsoft Entra zuständig ist, können Sie die Microsoft Entra-Authentifizierung für Ihren logischen Server für Azure SQL-Datenbank und Azure Synapse Analytics verwenden. Sie können eine Person für die Verwaltung von Microsoft Entra für Ihren Server festlegen, indem Sie die APIs für das Azure-Portal, PowerShell, die Azure CLI oder REST verwenden.
Im Azure-Portal finden Sie den logischen Servernamen.
- Im Feld "Servername" auf der Seite "Übersicht" der Azure SQL-Datenbank.
- Im Feld "Servername" auf der Seite "Übersicht" Ihres eigenständigen dedizierten SQL-Pools in Azure Synapse Analytics.
- Im entsprechenden SQL-Endpunkt auf der Seite "Übersicht" Ihres Azure Synapse Analytics-Arbeitsbereichs.
- Azure-Portal
- PowerShell
- Azure CLI
- REST-APIs
Führen Sie die folgenden Schritte aus, um die Person festzulegen, die für die Verwaltung von Microsoft Entra für Ihren logischen Server im Azure-Portal zuständig ist:
- Wählen Sie im Bereich "Azure-Portalverzeichnisse + Abonnements" das Verzeichnis aus, das Ihre Azure SQL-Ressource als aktuelles Verzeichnis enthält.
- 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.
- Wählen Sie im SQL Server-Bereich für Ihren logischen Server die Microsoft Entra-ID unter "Einstellungen" aus, um den Bereich "Microsoft Entra-ID" zu öffnen.
- Wählen Sie im Bereich "Microsoft Entra-ID" die Option "Administrator festlegen" 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 Name, Alias oder ID suchen. Suchen Sie Ihre gewünschte Identität für Ihren Microsoft Entra-Administrator, und wählen Sie sie aus, und klicken Sie dann auf "Auswählen", um den Bereich zu schließen.
- Wählen Sie oben auf der Microsoft Entra-ID-Seite für Ihren logischen Server "Speichern" aus.
Die Objekt-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 Microsoft Entra-Administratorfeld angezeigt.
Um den Administrator zu entfernen, wählen Sie oben auf der Seite "Microsoft Entra-ID" die Option "Administrator entfernen" und dann "Speichern" aus. Wenn Sie die Person, die für die Verwaltung von Microsoft Entra zuständig ist, entfernen, wird die Microsoft Entra-Authentifizierung für Ihren logischen Server deaktiviert.
Hinweis
Der Microsoft Entra-Administrator wird als Benutzer (Datenbankprinzipal) in der Hauptdatenbank des Servers gespeichert. Da Datenbankprinzipalnamen eindeutig sein müssen, kann der Anzeigename des Administrators nicht mit dem Namen eines Benutzers in der Hauptdatenbank des Servers übereinstimmen. Wenn bereits ein Benutzerkonto mit dem Namen vorhanden ist, schlägt die Einrichtung der für die Verwaltung von Microsoft Entra verantwortlichen Person fehl. Die Aktion wird rückgängig gemacht und Sie erhalten einen Hinweis, dass der Name bereits verwendet wird.
Verwaltete Azure SQL-Instanz
Wenn Sie die Person, die für die Verwaltung von Microsoft Entra zuständig ist, festlegen, wird die Microsoft Entra-Authentifizierung für Azure SQL Managed Instance aktiviert. Sie können eine Person für die Verwaltung von Microsoft Entra für Ihre SQL Managed Instance festlegen, indem Sie die APIs für das Azure-Portal, PowerShell, die Azure CLI oder REST verwenden.
Um Ihrer SQL-verwalteten Instanz Leseberechtigungen für Microsoft Entra-ID mithilfe des Azure-Portals zu gewähren, melden Sie sich als Administrator für privilegierte Rollen an, und führen Sie die folgenden Schritte aus:
- Wählen Sie im Azure-Portal in der oberen rechten Ecke Ihr Konto aus, und wählen Sie dann "Verzeichnisse wechseln" aus, um zu bestätigen, welches Verzeichnis Ihr aktuelles Verzeichnis ist. Wechseln Sie die Verzeichnisse, falls erforderlich.
- Wählen Sie im Bereich "Azure-Portalverzeichnisse + Abonnements" das Verzeichnis aus, das Ihre verwaltete Instanz als aktuelles Verzeichnis enthält.''
- Suchen Sie nach verwalteten SQL-Instanzen, und wählen Sie dann Ihre verwaltete Instanz aus, um den Bereich der verwalteten SQL-Instanz zu öffnen. Wählen Sie dann unter "Einstellungen" die Microsoft Entra-ID aus, um den Bereich "Microsoft Entra-ID" für Ihre Instanz zu öffnen.
- Wählen Sie im Microsoft Entra-Administratorbereich in der Navigationsleiste "Administrator festlegen" aus, um den Bereich "Microsoft Entra-ID" zu öffnen.
- Suchen Sie im Bereich "Microsoft Entra-ID" nach einem Benutzer, aktivieren Sie das Kontrollkästchen neben dem Benutzer oder der Gruppe, um Administratorrechte zuzuweisen, und drücken Sie dann auf "Auswählen," um den Bereich zu schließen und zur Microsoft Entra-Administratorseite für Ihre verwaltete Instanz zurückzukehren. Im Bereich "Microsoft Entra-ID" werden alle Mitglieder und Gruppen in Ihrem aktuellen Verzeichnis angezeigt. Abgeblendete Benutzerkonten oder Gruppen können nicht ausgewählt werden, da sie nicht als für die Administration von Microsoft Entra verantwortliche Person unterstützt werden. Wählen Sie die Identität aus, der Sie die Rolle der administrierenden Person zuweisen möchten.
- Wählen Sie auf der Navigationsleiste der Microsoft Entra-Administratorseite für Ihre verwaltete Instanz "Speichern" aus, um Ihren Microsoft Entra-Administrator zu bestätigen. Nach Abschluss des Vorgangs zur Änderung der Person, die für die Administration zuständig ist, wird die neue Person im Feld „Microsoft Entra-Admin“ angezeigt. Die Objekt-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 oben auf der Seite "Microsoft Entra-ID" die Option "Administrator entfernen" und dann "Speichern" aus.
Zuweisen von Microsoft Graph-Berechtigungen
SQL Managed Instance benötigt die Berechtigung zum Lesen von Microsoft Entra ID für Szenarien wie die Autorisierung von Benutzenden, die sich über die Mitgliedschaft in Sicherheitsgruppen verbinden und die Erstellung neuer Benutzender. Damit die Microsoft Entra-Authentifizierung funktioniert, müssen Sie der Rolle "Verzeichnisleser" die verwaltete Instanzidentität zuweisen. Dies können Sie mithilfe des Azure-Portals oder mit PowerShell tun.
Für einige Vorgänge benötigen Azure SQL-Datenbank und Azure Synapse Analytics auch Berechtigungen zum Abfragen von Microsoft Graph, die unter Microsoft Graph-Berechtigungen erläutert werden. Azure SQL-Datenbank und Azure Synapse Analytics unterstützen differenzierte Graph-Berechtigungen für diese Szenarien, während sql Managed Instance die Rolle "Verzeichnisleser" erfordert. Abgestimmte Berechtigungen und ihre Aufgabe werden ausführlich beschrieben, um Dienstprinzipale zum Erstellen von Microsoft Entra-Benutzerkonten zu ermöglichen.
Rolle „Verzeichnisleser“
Die Microsoft Entra ID-Seite für SQL Managed Instance im Azure-Portal zeigt ein praktisches Banner an, wenn der Instanz keine Verzeichnisleseberechtigungen zugewiesen sind.
- Wählen Sie das Banner oben auf der Microsoft Entra ID-Seite aus, und erteilen Sie die Berechtigung für die vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität, die Ihre Instanz darstellt. Nur ein Privilegierter Rollenadministrator oder eine höhere Rolle in Ihrem Mandanten kann diesen Vorgang ausführen.
- Wenn der Vorgang erfolgreich ist, wird in der oberen rechten Ecke eine Erfolgsbenachrichtigung angezeigt:
Die Person, die für die Microsoft Entra-Administration zuständig ist, kann jetzt verwendet werden, um Microsoft Entra-Serverprinzipale (Anmeldungen) und Datenbankprinzipale (Benutzende) zu erstellen. Weitere Informationen finden Sie unter Microsoft Entra-Integration in Azure SQL Managed Instance.
Erstellen von Microsoft Entra-Prinzipalen in SQL
Um eine Verbindung zu einer Datenbank in SQL-Datenbank oder Azure Synapse Analytics mit Microsoft Entra-Authentifizierung herzustellen, muss für diese Identität ein Prinzipal in der Datenbank mit mindestens der Berechtigung CONNECT konfiguriert werden.
Berechtigungen für Datenbankbenutzende
Wenn ein Datenbankbenutzer erstellt wird, erhält er standardmäßig die CONNECT-Berechtigung für die Datenbank. Eine Person, die die Datenbank benutzt, erbt außerdem in zwei Fällen Berechtigungen:
- Wenn die benutzende Person Mitglied einer Microsoft Entra-Gruppe ist, der auch Berechtigungen auf dem Server zugewiesen sind.
- Wenn die benutzende Person über eine Anmeldung erstellt wurde, übernimmt sie die vom Server zugewiesenen Berechtigungen der Anmeldung, die für die Datenbank gelten.
Die Verwaltung von Berechtigungen für Server- und Datenbankprinzipale funktioniert unabhängig vom Typ des Prinzipals (Microsoft Entra ID, SQL-Authentifizierung usw.) auf dieselbe Weise. Sie sollten Berechtigungen an Datenbankrollen vergeben, anstatt sie direkt an Benutzende zu vergeben. Dann können Benutzende zu Rollen mit entsprechenden Berechtigungen hinzugefügt werden. Dies vereinfacht die langfristige Verwaltung von Berechtigungen und verringert die Wahrscheinlichkeit, dass eine Identität über den angemessenen Zeitraum hinaus Zugriff behält.
Weitere Informationen finden Sie unter:
- Datenbank-Engine-Berechtigungen und Beispiele
- Blog: Grundlegendes zu Datenbank-Engine-Berechtigungen
- Verwalten von speziellen Datenbankrollen und Anmeldungen in der Azure SQL-Datenbank
Eingeschlossene Datenbankbenutzer
Ein enthaltener Datenbankbenutzer ist ein SQL-Benutzertyp, der nicht mit einer Anmeldung in der Masterdatenbank verbunden ist. Um einen Microsoft Entra contained database user zu erstellen, stellen Sie eine Verbindung zur Datenbank mit einer Microsoft Entra-Identität her, die mindestens die Berechtigung ALTER ANY USER hat. Im folgenden T-SQL-Beispiel wird ein Datenbankprinzipal namens Microsoft_Entra_principal_name aus der Microsoft Entra ID erstellt.
SQL
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [appName] FROM EXTERNAL PROVIDER;
SQL
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Anmeldungsbasierte Benutzende
Hinweis
Microsoft Entra-Dienstprinzipale (Anmeldungen) befinden sich derzeit in der öffentliche Vorschauversion für Azure SQL-Datenbank und Azure Synapse Analytics. Microsoft Entra-Anmeldungen sind in Azure SQL Managed Instance und SQL Server 2022 allgemein verfügbar.
Microsoft Entra-Serverprinzipale (oder Anmeldungen) werden unterstützt. Das bedeutet, dass eigenständige Datenbankbenutzende nicht erforderlich sind. Datenbankprinzipale (Benutzende) können basierend auf einem Serverprinzipal erstellt werden. Das bedeutet, dass Microsoft Entra-Benutzende die auf Serverebene zugewiesenen Berechtigungen einer Anmeldung erben können.
SQL
CREATE USER [appName] FROM LOGIN [appName];
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.
Externe Benutzer
Sie können eine Person, die die Datenbank benutzt, 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. Benutzende in anderen Verzeichnissen können jedoch als externe Benutzende in das zugeordnete Verzeichnis importiert werden. Sie können dann verwendet werden, um eigenständige Datenbankbenutzende zu erstellen, die auf die Datenbank zugreifen können. Externe Benutzende können auch über die Mitgliedschaft in Microsoft Entra-Gruppen Zugriff erhalten.
Beispiele: So erstellen Sie einen enthaltenen Datenbankbenutzer, der einen Microsoft Entra-Verbund- oder verwalteten Domänenbenutzer darstellt:
SQL
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
Ein Verbunddomänen-Benutzerkonto, das als externes Benutzerkonto in eine verwaltete Domäne importiert wird, muss die Identität der verwalteten Domäne verwenden.
Überlegungen zur Benennung
Sonderzeichen wie Doppelpunkt oder Ampersand werden nicht unterstützt, wenn sie als Benutzernamen in den T-SQL CREATE LOGIN- und CREATE USER-Anweisungen enthalten sind.
Microsoft Entra ID und Azure SQL unterscheiden sich in einem wichtigen Punkt hinsichtlich der Benutzerverwaltung: Microsoft Entra ID erlaubt die Duplizierung von Anzeigenamen innerhalb eines Mandanten, während Azure SQL verlangt, dass alle Serverprinzipale auf einem Server oder einer Instanz und alle Datenbankprinzipale in einer Datenbank eindeutige Namen haben. Da Azure SQL beim Erstellen von Prinzipalen direkt den Microsoft Entra-Anzeigenamen der Identität verwendet, kann es beim Erstellen von Benutzerkonten zu Fehlern kommen. 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 (den "externen Anbieter") im Namen des angemeldeten Benutzers. Es kann vorkommen, dass Microsoft Entra ID eine Ausnahme an Azure SQL zurückgibt.
- Möglicherweise wird der SQL-Fehler 33134 angezeigt, der die Microsoft Entra ID-spezifische Fehlermeldung enthält. Der Fehler bedeutet meist, dass der Zugriff verweigert wird oder dass die benutzende Person 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 durch Richtlinien für bedingten Zugriff verursacht, die im Microsoft Entra-Mandanten der benutzenden Person festgelegt werden. Diese verhindern, dass die benutzende Person 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 die benutzende Person als Dienstprinzipal angemeldet ist. Der Befehl sollte erfolgreich sein, wenn er stattdessen von einer benutzenden Person ausgeführt wird.
- Wenn Sie ein "Connection Timeout Expired" erhalten, müssen Sie möglicherweise den TransparentNetworkIPResolution-Parameter der Verbindungszeichenfolge auf "false" festlegen. Weitere Informationen finden Sie unter Verbindungstimeout-Problem mit .NET Framework 4.6.1 – TransparentNetworkIPResolution.
Weitere Informationen zum Erstellen eigenständiger Datenbankbenutzerkonten 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 die Multi-Faktor-Authentifizierung (MFA) konfigurieren, die Benutzende auffordert, eine zweite alternative Methode zur Authentifizierung bei der Datenbank zu verwenden, z. B. einen Telefonanruf oder eine Authenticator-App.
Wenn Sie die Multi-Faktor-Authentifizierung mit Ihrer Azure SQL-Ressource verwenden möchten, aktivieren Sie zuerst die Multi-Faktor-Authentifizierung und verwenden Sie dann eine Richtlinie für bedingten Zugriff, um MFA für Ihre Azure SQL-Ressource zu erzwingen.
Verbinden mit Microsoft Entra
Nachdem die Microsoft Entra-Authentifizierung konfiguriert wurde, können Sie sie verwenden, um eine Verbindung mit Ihrer SQL-Ressource mit Microsoft-Tools wie SQL Server Management Studio und SQL Server Data Tools herzustellen und Clientanwendungen für die Verbindung mit Microsoft Entra-Identitäten konfigurieren.
Behandeln von Problemen bei der Microsoft Entra-Authentifizierung
Anleitungen zur Problembehandlung finden Sie im Blog: Behandeln von Problemen im Zusammenhang mit der Microsoft Entra-Authentifizierung mit Azure SQL-Datenbank und Azure Synapse.