Microsoft Entra-Dienstprinzipale

Gilt für:Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics (nur dedizierter SQL-Pool)

Sie können jetzt Dienstprinzipale in Microsoft Entra ID (früher Azure Active Directory) erstellen und nutzen. Hierbei handelt es sich um Anmeldungen bei der virtuellen master-Datenbank einer SQL-Datenbank. Die Verwendung der Microsoft Entra-Dienstprinzipale für SQL-Datenbank bietet mehrere Vorteile:

  • Unterstützung von Azure SQL Database Serverrollen für die Berechtigungsverwaltung.
  • Unterstützung mehrerer Microsoft Entra-Benutzer mit speziellen Rollen für SQL-Datenbank, z. B. die Rollen loginmanager und dbmanager.
  • Funktionale Parität zwischen SQL- und Microsoft Entra-Anmeldungen.
  • Erhöhen der Unterstützung der funktionalen Verbesserung, z. B. Nutzung der reinen Microsoft Entra-Authentifizierung. Die reine Microsoft Entra-Authentifizierung ermöglicht es, die SQL-Authentifizierung zu deaktivieren, einschließlich SQL-Serveradministratoren, SQL-Anmeldungen und -Benutzer.
  • Ermöglicht Microsoft Entra-Prinzipalen die Unterstützung von Georeplikaten. Microsoft Entra-Prinzipale können eine Verbindung mit dem Georeplikat einer Benutzerdatenbank herstellen, mit der Berechtigung schreibgeschützt und der Berechtigung verweigern für den primären Server.
  • Die Verwendung von Microsoft Entra-Dienstprinzipalanmeldungen mit speziellen Rollen, um die Erstellung von Benutzern und Datenbanken durch Microsoft Entra-Anwendungen vollständig zu automatisieren.

Weitere Informationen zur Microsoft Entra-Authentifizierung in Azure SQL finden Sie unter Verwenden der Microsoft Entra-Authentifizierung.

Hinweis

Microsoft Entra-Dienstprinzipale (Anmeldungen) befinden sich derzeit in Public Preview 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.

Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Microsoft Entra-Anmeldungen in der virtuellen master-Datenbank zu verwenden oder zu erstellen.

  • Microsoft Entra-Administratorberechtigung oder Mitgliedschaft in der Serverrolle loginmanager. Die erste Microsoft Entra-Anmeldung kann nur vom Microsoft Entra-Administrator erstellt werden.
  • Muss ein Mitglied von Microsoft Entra ID im gleichen Verzeichnis sein, das für Azure SQL-Datenbank verwendet wird

Standardmäßig ist die Standardberechtigung für neu erstellte Microsoft Entra-Anmeldungen in der master-Datenbank VIEW ANY DATABASE.

Syntax der Microsoft Entra-Prinzipale

Verwenden Sie die folgende Syntax, um Microsoft Entra-Server und Datenbankprinzipale zu erstellen und zu verwalten.

Erstellen der Anmeldung

Diese Syntax erstellt eine Anmeldung auf Serverebene basierend auf einer Microsoft Entra-Identität. Nur Microsoft Entra-Administratoren können diesen Befehl in der virtuellen master-Datenbank ausführen.

CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

Der login_name gibt den Microsoft Entra-Prinzipal an, bei dem es sich um einen Benutzer, eine Gruppe oder eine Anwendung von Microsoft Entra handelt.

Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).

Benutzer aus der Anmeldung erstellen

Die folgende T-SQL-Syntax kann zum Erstellen von Microsoft Entra-Prinzipalen auf Datenbankebene verwendet werden, die Microsoft Entra-Anmeldungen in der virtuellen master-Datenbank zugeordnet sind. Ähnlich wie bei der Syntax zum Erstellen einer Datenbank, die Microsoft Entra-Benutzer enthält, ist die Angabe von FROM LOGIN [login_name] anstelle von FROM EXTERNAL PROVIDER der einzige Unterschied.

Verwenden Sie die folgende Syntax, um einen Microsoft Entra-Benutzer aus einer Microsoft Entra-Anmeldung zu erstellen.

CREATE USER [user_name] FROM LOGIN [login_name]

Sie können die Spalte SID aus sys.database_principals verwenden, um zwischen einem in Microsoft Entra-enthaltenen Datenbankbenutzer und einem Microsoft Entra-Benutzer zu unterscheiden, der aus einer Anmeldung erstellt wurde. Bei einem eigenständigen Datenbankbenutzer ist SID eine binäre Zeichenfolge mit einer Länge von 16. Bei einem anmeldebasierten Benutzer weist SID eine Länge von 18 und ein Suffix von AADE auf.

Hinweis

Durch Anfügen des Suffix AADE an die SID wird ein Microsoft Entra-Benutzer anhand einer Anmeldung erstellt. Dies bedeutet jedoch auch, dass die SIDs für die Anmeldung und deren Benutzer zwischen sys.server_principals und sys.database_principals nicht übereinstimmen. Um den Benutzer wieder mit seiner Anmeldung zu korrelieren, muss das Suffix AADE zuerst entfernt werden.

Informationen zum konzeptionellen Unterschied zwischen anmeldebasierten Benutzern und eigenständigen Datenbankbenutzern finden Sie unter Eigenständige Datenbankbenutzer.

Weitere Informationen zur gesamten CREATE USER-Syntax finden Sie unter CREATE USER (Transact-SQL).

Deaktivieren oder Aktivieren einer Anmeldung mithilfe von ALTER LOGIN

Die DDL-Syntax ALTER LOGIN (Transact-SQL) kann verwendet werden, um eine Microsoft Entra-Anmeldung in Azure SQL-Datenbank zu aktivieren oder zu deaktivieren.

ALTER LOGIN [login_name] DISABLE 

Wenn eine Anmeldung deaktiviert ist, dürfen Verbindungen diesen Serverprinzipal nicht mehr verwenden. Außerdem können alle Datenbankprinzipale (Benutzer), die von dieser Anmeldung erstellt wurden, keine Verbindung mehr mit ihren jeweiligen Datenbanken herstellen.

Hinweis

  • ALTER LOGIN login_name DISABLE wirkt sich nicht auf eigenständige Datenbankbenutzer aus, da sie den Anmeldeinformationen nicht zugeordnet sind.

  • ALTER LOGIN login_name DISABLE wird für Microsoft Entra-Gruppen nicht unterstützt.

  • Eine einzelne deaktivierte Anmeldung kann nicht zu Benutzer*innen gehören, die Teil einer Anmeldegruppe sind, die in der master-Datenbank erstellt wurde (z. B. Microsoft Entra-Administratorgruppe).

  • Damit die DISABLE- oder ENABLE-Änderungen sofort wirksam werden, müssen der Authentifizierungs-Cache und der TokenAndPermUserStore-Cache mit den T-SQL-Befehlen gelöscht werden.

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS 
    

Rollen für Microsoft Entra-Prinzipale

Spezielle Rollen für SQL-Datenbank können Benutzer*innen in der virtuellen master-Datenbank für Microsoft Entra-Prinzipale zugewiesen werden, einschließlich dbmanager und loginmanager.

Azure SQL-Datenbank-Serverrollen können Anmeldungen in der virtuellen master-Datenbank zugewiesen werden.

Ein Tutorial zum Erteilen dieser Rollen finden Sie unter Tutorial: Erstellen und Verwenden Microsoft Entra-Serveranmeldungen.

Einschränkungen und Hinweise

  • Der SQL Server-Administrator kann keine Microsoft Entra-Anmeldungen oder -Benutzer in einer Datenbank erstellen.
  • Ein SQL-Administrator oder SQL-Benutzer kann die folgenden Microsoft Entra-Vorgänge nicht ausführen:
    • CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
    • EXECUTE AS USER [bob@contoso.com]
    • ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
  • Der Identitätswechsel von Microsoft Entra-Serverprinzipalen (Anmeldungen) wird für Azure SQL-Datenbank und Azure Synapse Analytics nicht unterstützt. Für Azure SQL Managed Instance wird er unterstützt.
  • Microsoft Entra-Anmeldungen können sich nicht mit dem Microsoft Entra-Administratoren überschneiden. Der Microsoft Entra-Administrator hat Vorrang vor jeder Anmeldung. Wenn ein Microsoft Entra-Konto bereits Zugriff auf den Server als Microsoft Entra-Administrator hat, entweder direkt oder als Teil einer Gruppe, hat die für dieses Konto erstellte Anmeldung keine Auswirkungen. Die Erstellung der Anmeldung wird nicht durch T-SQL blockiert. Nachdem sich das Konto beim Server authentifiziert hat, verfügt die Anmeldung über die effektiven Berechtigungen eines Microsoft Entra-Administrators und nicht über die einer neu erstellten Anmeldung.
  • Das Ändern von Berechtigungen für ein bestimmtes Microsoft Entra-Anmeldeobjekt wird nicht unterstützt:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Wenn Sie die Berechtigungen für eine Microsoft Entra-Anmeldung ändern, werden die Änderungen standardmäßig erst wirksam, wenn die Anmeldung das nächste Mal eine Verbindung mit der Azure SQL-Datenbank herstellt. Alle vorhandenen offenen Verbindungen mit der Anmeldung sind nicht betroffen. Um zu erzwingen, dass Berechtigungsänderungen sofort wirksam werden, können Sie die Authentifizierung und TokenAndPermUserStore manuell löschen, wie weiter oben beschrieben, indem Sie eine Anmeldung mit ALTER LOGIN deaktivieren oder aktivieren. Dieses Verhalten gilt auch beim Vornehmen von Änderungen der Serverrollenmitgliedschaft mit ALTER SERVER ROLE.
  • In SQL Server Management Studio und Azure Data Studio überprüft der Skriptbefehl zum Erstellen eines Benutzers nicht, ob bereits eine Microsoft Entra-Anmeldung in master mit demselben Namen vorhanden ist. Es wird immer T-SQL für einen eigenständigen Microsoft Entra-Datenbankbenutzer generiert.
  • Wenn Sie versuchen, eine Anmeldung oder einen Benutzer aus einem Dienstprinzipal mit einem nicht eindeutigen Anzeigenamen zu erstellen, tritt möglicherweise ein Fehler auf. Weitere Informationen zum Verhindern dieses Fehlers finden Sie unter Microsoft Entra-Anmeldungen und Benutzer mit nicht eindeutigen Anzeigenamen.

Einschränkungen für Microsoft Entra-Gruppenserver-Dienstprinzipale

Bei Microsoft Entra-Anmeldungen in der öffentlichen Vorschau für Azure SQL-Datenbank und Azure Synapse Analytics sind die folgenden Einschränkungen bekannt:

  • Azure SQL-Datenbank-Serverrollen werden für Microsoft Entra-Gruppen nicht unterstützt.
  • Wenn Ihr SQL-Administrator eine Microsoft Entra-Gruppe ist, gibt es einige Einschränkungen, wenn Benutzer dieser Gruppe eine Verbindung herstellen. Jeder Microsoft Entra-Benutzer ist nicht Teil der sys.server_principals-Tabelle. Dies hat verschiedene Folgen, einschließlich der Aufrufe zur SUSER_SID Rückgabe von NULL.
  • Microsoft Entra-Benutzeranmeldungen, die Teil von Microsoft Entra-Gruppenanmeldungen sind, werden ebenfalls nicht implizit erstellt, d. h. sie verfügen nicht über ein Standardschema und können keine Vorgänge wie z. B. CREATE SCHEMA ausführen, bis eine Anmeldung für den Microsoft Entra-Benutzer erstellt wird oder der Gruppe ein Standardschema zugewiesen wird.
  • Das Ändern eines Datenbankbesitzes in eine Microsoft Entra-Gruppe als Datenbankbesitzer wird nicht unterstützt.
    • ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group] schlägt mit einer Fehlermeldung fehl:

      Msg 33181, Level 16, State 1, Line 4
      The new owner cannot be Azure Active Directory group.
      

Nächste Schritte