Azure Active Directory-Dienstprinzipale

GILT FÜR: Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics (nur dedizierte SQL-Pools)

Hinweis

Azure Active Directory-Serverprinzipale (Azure AD) (Anmeldungen) befinden sich derzeit in der öffentlichen Vorschau für Azure SQL-Datenbank. Azure SQL Managed Instance kann bereits Azure AD-Anmeldungen verwenden.

Sie können jetzt Serverprinzipale Azure AD verwenden, bei denen es sich um Anmeldungen in der virtuellen Masterdatenbank eines SQL-Datenbank handelt. Es gibt mehrere Vorteile der Verwendung der Azure AD Serverprinzipale für SQL-Datenbank:

  • Support vonAzure SQL Database Serverrollen für die Berechtigungsverwaltung.
  • Unterstützen Sie Azure AD-Benutzer mit speziellen Rollen für SQL-Datenbank, z. B. die Rollen loginmanager und dbmanager.
  • Funktionale Parität zwischen SQL- und Azure AD Anmeldenamen.
  • Erhöhen Sie die Unterstützung der funktionalen Verbesserung, z. B. Azure AD-ausschließliche Authentifizierung. Azure AD-ausschließliche Authentifizierung ermöglicht SQL deaktiviert werden, einschließlich SQL Serveradministrator, SQL Anmeldungen und Benutzer.
  • Ermöglicht Azure AD-Prinzipalen die Unterstützung von Georeplikaten. Azure AD-Prinzipale können eine Verbindung mit dem Georeplikat einer Benutzerdatenbank mit einer schreibgeschützten Berechtigung herstellen und dem primären Server die Berechtigung verweigern.
  • Die Möglichkeit, Azure AD-Dienstprinzipalanmeldungen mit speziellen Rollen zu verwenden, um eine vollständige Automatisierung der Benutzer- und Datenbankerstellung sowie von Azure AD auszuführen.
  • Eine genauere Funktionalität zwischen verwaltete Instanz und SQL-Datenbank, da verwaltete Instanz bereits Azure AD Anmeldungen in der Masterdatenbank unterstützt.

Weitere Informationen zur Azure AD-Authentifizierung in Azure SQL finden Sie unter Verwendung der Azure Active Directory-Authentifizierung.

Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Azure AD-Anmeldungen in der virtuellen Master-Datenbank zu verwenden oder zu erstellen.

  • Azure AD Admin-Berechtigung oder Mitgliedschaft in der loginmanager-Serverrolle. Das erste Azure AD-Login kann nur vom Azure AD-Administrator erstellt werden.
  • Muss in dem gleichen Verzeichnis, das auch für die Azure SQL-Datenbank verwendet wird, ein Azure AD-Mitglied sein

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

Syntax für Azure AD-Anmeldungen

Eine neue Syntax für Azure SQL Database zur Verwendung von Azure AD Serverprinzipale wurde mit dieser Version eingeführt.

Login-Syntax erstellen

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

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

The login_name gibt den Azure AD-Prinzipal an, der ein Azure AD-Benutzer, eine Gruppe oder eine Anwendung ist.

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

Benutzersyntax erstellen

Die folgende T-SQL-Syntax ist bereits in SQL-Datenbank verfügbar und kann zum Erstellen von Azure AD-Prinzipals auf Datenbankebene verwendet werden, die Azure AD Anmeldungen in der virtuellen Masterdatenbank zugeordnet sind.

Verwenden Sie die folgende Syntax zum Erstellen eines Azure AD-Benutzers aus Azure AD-Anmeldeinformationen. Nur der Azure AD-Administrator kann diesen Befehl in der virtuellen Masterdatenbank ausführen.

CREATE USER user_name FROM LOGIN login_name

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

Deaktivieren oder Aktivieren einer Anmeldung mithilfe der ALTER LOGIN-Syntax

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

ALTER LOGIN login_name DISABLE 

Der Azure AD-Prinzipal login_name kann sich nicht bei einer Benutzerdatenbank auf dem logischen SQL-Datenbank-Server anmelden, auf dem ein Azure AD-Benutzerprinzipal erstellt wurde, der der user_nameAnmeldung zugeordnet istlogin_name.

Hinweis

  • ALTER LOGIN login_name DISABLE wird für eigenständige Benutzer nicht unterstützt.

  • ALTER LOGIN login_name DISABLEwird für Azure AD nicht unterstützt.

  • Eine individuelle deaktivierte Anmeldung kann nicht zu einem Benutzer gehören, der Teil einer Anmeldegruppe ist, die in der Masterdatenbank erstellt wurde (z. B. Azure AD-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 Azure AD-Prinzipale

Spezielle Rollen für SQL-Datenbank können Benutzern in der virtuellen Masterdatenbank für Azure AD zugewiesen werden, einschließlich dbmanager und loginmanager.

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

Ein Tutorial zum Erteilen dieser Rollen finden Sie unter Tutorial: Erstellen und Verwenden Azure Active Directory Serveranmeldungen.

Einschränkungen und Hinweise

  • Der SQL Server-Administrator kann keine Azure AD-Anmeldungen oder Benutzer in einer Datenbank erstellen.
  • Das Ändern eines Datenbankbesitzes in Azure AD 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.
      
    • Das Ändern eines Datenbankbesitzes in einen einzelnen Benutzer wird unterstützt.
  • Ein SQL-Admin oder SQL-Benutzer kann die folgenden Azure AD-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 Azure AD Prinzipals (Anmeldungen) auf Serverebene wird nicht unterstützt:
  • Azure AD Anmeldungen, die sich mit Azure AD Administrator überschneiden, werden nicht unterstützt. Azure AD Administrator hat Vorrang vor jeder Anmeldung. Wenn ein Azure AD-Konto bereits zugriff auf den Server als Azure AD-Administrator hat, entweder direkt oder als Mitglied der Administratorgruppe, hat die für diesen Benutzer erstellte Anmeldung keine Auswirkungen. Die Erstellung der Anmeldung wird nicht durch T-SQL. Nachdem sich das Konto beim Server authentifiziert hat, verfügt die Anmeldung über die effektiven Berechtigungen eines Azure AD-Administrators und nicht über eine neu erstellte Anmeldung.
  • Das Ändern von Berechtigungen Azure AD Anmeldeobjekts wird nicht unterstützt:
    • GRANT <PERMISSION> ON LOGIN :: <Azure AD account> TO <Any other login>
  • Wenn Berechtigungen für eine Azure AD mit vorhandenen offenen Verbindungen mit einem Azure SQL-Datenbank geändert werden, sind Berechtigungen erst wirksam, wenn der Benutzer die Verbindung wiederhergestellt hat. Leeren Sie außerdem den Authentifizierungscache und den TokenAndPermUserStore-Cache. Dies gilt für die Änderung der Serverrolle mithilfe der ALTER SERVER ROLE-Anweisung.
  • Das Festlegen einer Azure AD-Anmeldung, die einer Azure AD-Gruppe zugeordnet ist, als Besitzer der Datenbank wird nicht unterstützt.
  • Azure SQL-Datenbank Serverrollen werden für gruppenseitige Azure AD nicht unterstützt.

Nächste Schritte