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
unddbmanager
. - 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_name
Anmeldung zugeordnet istlogin_name
.
Hinweis
ALTER LOGIN login_name DISABLE
wird für eigenständige Benutzer nicht unterstützt.ALTER LOGIN login_name DISABLE
wird 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
- oderENABLE
-Ä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:
- EXECUTE AS-Klausel (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Der Identitätswechsel Azure AD Prinzipals (Benutzer) auf Datenbankebene eines Benutzers wird weiterhin 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.