Microsoft Entra-Serverprinzipale

Sie können Serverprinzipalen aus Microsoft Entra ID (früher Azure Active Directory) als Logins in der virtuellen master Datenbank eines Azure Synapse Analytics dedizierten SQL-Pools erstellen und verwenden.

Hinweis

Microsoft Entra Server Principals befinden sich derzeit in der Vorschauversion für Azure Synapse Analytics.

Es gibt mehrere Vorteile, Microsoft Entra Server Principals mit einem dedizierten SQL-Pool zu verwenden:

  • Unterstützung von Serverrollen für die Berechtigungsverwaltung.
  • Unterstützen Sie mehrere Microsoft Entra-Nutzer mit speziellen Rollen für Azure Synapse Analytics, wie die dbmanager- und loginmanager-Rollen.
  • Funktionale Parität zwischen SQL- und Microsoft Entra-Anmeldungen.
  • Erhöhen Sie die Unterstützung für Funktionsverbesserungen, zum Beispiel durch die Verwendung von ausschließlicher Microsoft Entra-Authentifizierung. Microsoft Entra-only Authentifizierung ermöglicht es Ihnen, die SQL-Authentifizierung zu deaktivieren, einschließlich des SQL-Server-Administrators, SQL-Logins und Benutzers.
  • Verwenden Sie Microsoft Entra-Dienstprinzipalanmeldungen mit speziellen Rollen, um die Erstellung und Verwaltung von Benutzern und Datenbanken mithilfe von Microsoft Entra-Anwendungen vollständig zu automatisieren.

Weitere Informationen finden Sie unter Microsoft Entra-Authentifizierung für Azure Synapse Analytics.

Erlaubnisse

Um Microsoft Entra-Logins in der virtuellen master Datenbank zu verwenden oder zu erstellen, benötigen Sie folgende Berechtigungen:

  • Administratorberechtigung für Microsoft Entra oder Mitgliedschaft in der Serverrolle loginmanager. Nur der Microsoft Entra-Administrator kann den ersten Microsoft Entra-Login erstellen.
  • Muss Mitglied von Microsoft Entra ID im selben Verzeichnis sein, das von Azure Synapse Analytics verwendet wird.

Standardmäßig wird neu erstellten Microsoft Entra-Logins in der master-Datenbank die Berechtigung VIEW ANY DATABASE gewährt.

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 der Microsoft Entra-Administrator kann 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 erstellt einen datenbankbezogenen Microsoft Entra-Prinzipal, der einer Microsoft Entra-Anmeldung in der virtuellen master-Datenbank zugeordnet ist. Ä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

Das Anhängen des AADE Suffixes an die SID ist die Art, einen Microsoft Entra-Benutzer als durch einen Login erstellten Nutzer zu identifizieren. Das bedeutet jedoch auch, dass die SIDs für den Login und seine Nutzer nicht zwischen sys.server_principals und sys.database_principalsübereinstimmen. Um den Benutzer seinem Login wieder zuzuordnen, muss man zuerst das AADE Suffix entfernen.

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 Sie einen Login mit ALTER LOGIN

Verwenden Sie die ALTER LOGIN (Transact-SQL)-DDL-Syntax, um eine Microsoft Entra-Anmeldung in einem dedizierten SQL-Pool von Azure Synapse Analytics zu aktivieren oder zu deaktivieren.

ALTER LOGIN [login_name] DISABLE

Wenn du einen Login deaktivierst, kann der Server-Principal keine Verbindung mehr herstellen. Das Deaktivieren eines Logins verhindert außerdem, dass alle Datenbankprinzipale (Benutzer), die Sie für dieses Login erstellt haben, sich mit ihren jeweiligen Datenbanken verbinden.

Hinweis

  • ALTER LOGIN login_name DISABLE kann die Benutzer der enthaltenen Datenbank nicht beeinflussen, da sie nicht mit Logins verknüpft sind.

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

  • Ein einzelner deaktivierter Login kann nicht zu einem Benutzer gehören, der Teil einer Login-Gruppe ist, die in der master-Datenbank erstellt wurde (zum Beispiel einer Microsoft Entra-Admin-Gruppe).

  • Um die DISABLE- oder ENABLE-Änderungen sofort in Kraft zu setzen, löschen Sie den Authentifizierungscache und den Cache TokenAndPermUserStore mit den folgenden T-SQL-Befehlen:

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
    

Einschränkungen und Hinweise

  • Der SQL Server-Administrator kann keine Microsoft Entra-Anmeldungen oder -Benutzer in einer Datenbank erstellen.
  • Dedizierte SQL-Pools in Azure Synapse Analytics-Arbeitsbereichen verwenden keine logischen SQL-Server.
  • 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 Server Principals (Logins) wird für Azure Synapse Analytics nicht unterstützt:
  • Microsoft Entra-Anmeldekonten dürfen nicht mit dem Microsoft Entra-Administrator identisch sein. 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 das Konto sich beim Server authentifiziert hat, hat der Login die effektiven Berechtigungen eines Microsoft Entra-Administrators und nicht eines neu erstellten Logins.
  • Das Ändern von Berechtigungen für ein bestimmtes Microsoft Entra-Login-Objekt wird nicht unterstützt:
    • GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
  • Wenn Sie die Berechtigungen für einen Microsoft Entra-Login ändern, treten die Änderungen standardmäßig erst beim nächsten Mal in Kraft, wenn der Login sich mit dem dedizierten SQL-Pool verbindet. 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 überprüft der Skriptbefehl zum Erstellen eines Benutzers nicht, ob bereits eine Microsoft Entra-Anmeldung master mit demselben Namen vorhanden ist. Es wird immer das T-SQL für einen Microsoft Entra-Benutzer einer eigenständigen Datenbank 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 zur Minderung dieses Fehlers finden Sie unter Überlegungen zu Namen.
  • Datenbanknutzer, die mit Microsoft Entra-Logins erstellt wurden, können Verzögerungen bei der Erteilung von Rollen und Berechtigungen erleben. Wenn Sie auf dieses Problem stoßen, verwenden Sie folgende Befehle:
    • Legen Sie den Benutzer aus der Benutzerdatenbank ab.
    • Führen Sie DBCC FREESYSTEMCACHE('TokenAndPermUserStore') aus, um Sicherheitscaches in der Datenbank zu löschen.
    • Führen Sie DBCC FLUSHAUTHCACHE aus, um den Kontextcache der Verbundauthentifizierung zu löschen.
    • Erstellen Sie den Benutzer basierend auf der Anmeldung.

Einschränkungen für Microsoft Entra-Gruppenserverprinzipale

Die folgenden Einschränkungen gelten für Microsoft Entra Group Logins in Azure Synapse Analytics:

  • Serverrollen werden in Microsoft Entra-Gruppen nicht unterstützt.
  • Wenn dein SQL-Administrator eine Microsoft Entra-Gruppe ist, stoßen Nutzer dieser Gruppe auf einige Einschränkungen, wenn sie sich verbinden. Microsoft Entra-Benutzer werden nicht einzeln in der Tabelle sys.server_principals aufgeführt. Diese Einschränkung hat verschiedene Konsequenzen, einschließlich, dass Aufrufe an SUSER_SIDNULL zurückgeben.
  • Microsoft Entra-Benutzeranmeldungen, die Teil der Microsoft Entra-Gruppenanmeldungen sind, werden nicht implizit erstellt. Diese Benutzer haben kein Standardschema und können keine Operationen ausführen, wie zum Beispiel CREATE SCHEMA, bis man einen Login für den Microsoft Entra-Nutzer erstellt hat oder der Gruppe ein Standardschema zugewiesen hat.
  • Du kannst den Besitz einer Datenbank nicht auf eine Microsoft Entra-Gruppe als Datenbankinhaber ändern.
    • 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