Microsoft Entra-server-principals
Van toepassing op: Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (alleen toegewezen SQL-pools)
U kunt nu server-principals maken en gebruiken vanuit Microsoft Entra ID (voorheen Azure Active Directory), die aanmeldingen zijn in de virtuele master
database van een SQL Database. Er zijn verschillende voordelen van het gebruik van Microsoft Entra-server-principals voor SQL Database:
- Ondersteuning voor Azure SQL Database-serverfuncties voor machtigingsbeheer.
- Ondersteuning voor meerdere Microsoft Entra-gebruikers met speciale rollen voor SQL Database, zoals de
loginmanager
endbmanager
rollen. - Functionele pariteit tussen SQL-aanmeldingen en Microsoft Entra-aanmeldingen.
- Verhoog de ondersteuning voor functionele verbetering, zoals het gebruik van alleen-Microsoft Entra-verificatie. Met Microsoft Entra-verificatie kan SQL-verificatie worden uitgeschakeld, waaronder de SQL Server-beheerder, SQL-aanmeldingen en gebruikers.
- Hiermee kunnen Microsoft Entra-principals geo-replica's ondersteunen. Microsoft Entra-principals kunnen verbinding maken met de geo-replica van een gebruikersdatabase, met alleen-lezen - en weigeringsmachtigingen voor de primaire server.
- Gebruik aanmeldingen van de Microsoft Entra-service-principal met speciale rollen om het maken en onderhouden van gebruikers en databases volledig te automatiseren met Microsoft Entra-toepassingen.
Zie Microsoft Entra-verificatie gebruiken voor meer informatie over Microsoft Entra-verificatie in Azure SQL.
Notitie
Microsoft Entra-server-principals (aanmeldingen) zijn momenteel beschikbaar als openbare preview voor Azure SQL Database en Azure Synapse Analytics. Microsoft Entra-aanmeldingen zijn algemeen beschikbaar voor Azure SQL Managed Instance en SQL Server 2022.
Bevoegdheden
De volgende machtigingen zijn vereist voor het gebruik of maken van Microsoft Entra-aanmeldingen in de virtuele master
database.
- Microsoft Entra-beheerdersmachtigingen of lidmaatschap van de
loginmanager
serverfunctie. De eerste Microsoft Entra-aanmelding kan alleen worden gemaakt door de Microsoft Entra-beheerder. - Moet lid zijn van de Microsoft Entra-id binnen dezelfde map die wordt gebruikt voor Azure SQL Database.
Standaard worden zojuist gemaakte Microsoft Entra-aanmeldingen in de master
database de machtiging VIEW ANY DATABASE verleend.
Syntaxis van Microsoft Entra-principals
Gebruik de volgende syntaxis om Microsoft Entra-server- en database-principals te maken en te beheren.
Aanmelding maken
Met deze syntaxis maakt u een aanmelding op serverniveau op basis van een Microsoft Entra-identiteit. Alleen de Microsoft Entra-beheerder kan deze opdracht uitvoeren in de virtuele master
database.
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
De login_name geeft de Microsoft Entra-principal op, een Microsoft Entra-gebruiker, -groep of -toepassing.
Zie CREATE LOGIN (Transact-SQL) voor meer informatie.
Gebruiker maken op aanmeldgegevens
Met de volgende T-SQL-syntaxis wordt een Microsoft Entra-principal op databaseniveau gemaakt die is toegewezen aan een Microsoft Entra-aanmelding in de virtuele master
database. Vergelijkbaar met de syntaxis voor het maken van een database in Microsoft Entra-gebruiker, is het enige verschil dat u opgeeft FROM LOGIN [login_name]
in plaats FROM EXTERNAL PROVIDER
van .
Gebruik de volgende syntaxis om een Microsoft Entra-gebruiker te maken op basis van een Microsoft Entra-aanmelding.
CREATE USER [user_name] FROM LOGIN [login_name]
U kunt de SID
kolom uit sys.database_principals gebruiken om onderscheid te maken tussen een in Microsoft Entra opgenomen databasegebruiker en een Microsoft Entra-gebruiker die is gemaakt op basis van een aanmelding. Voor een ingesloten databasegebruiker is dit SID
een binaire tekenreeks van lengte 16. Voor een gebruiker op basis van aanmelding is de SID
lengte 18 met een AADE
achtervoegsel.
Notitie
Als u het AADE
achtervoegsel aan de SID toevoegt, wordt een Microsoft Entra-gebruiker geïdentificeerd die wordt gemaakt op basis van een aanmelding. Dit betekent echter ook dat de SID's voor de aanmelding en de bijbehorende gebruikers niet overeenkomen tussen sys.server_principals
en sys.database_principals
. Als u de gebruiker wilt correleren met de aanmelding, moet het AADE
achtervoegsel eerst worden verwijderd.
Zie CREATE USER (Transact-SQL) voor meer informatie over alle syntaxis van het maken van gebruikers.
Een aanmelding uitschakelen of inschakelen met ALTER LOGIN
De DDL-syntaxis alter login (Transact-SQL) wordt gebruikt om een Microsoft Entra-aanmelding in Azure SQL Database in of uit te schakelen.
ALTER LOGIN [login_name] DISABLE
Wanneer een aanmelding is uitgeschakeld, zijn verbindingen niet langer toegestaan met die server-principal. Ook worden alle database-principals (gebruikers) die zijn gemaakt op basis van die aanmelding uitgeschakeld, zodat ze geen verbinding kunnen maken met hun respectieve databases.
Notitie
ALTER LOGIN login_name DISABLE
heeft geen invloed op ingesloten databasegebruikers, omdat ze niet zijn gekoppeld aan aanmeldingen.ALTER LOGIN login_name DISABLE
wordt niet ondersteund voor Microsoft Entra-groepen.Een individuele uitgeschakelde aanmelding kan niet behoren tot een gebruiker die deel uitmaakt van een aanmeldingsgroep die is gemaakt in de
master
database (bijvoorbeeld een Microsoft Entra-beheergroep).DISABLE
De verificatiecache en de TokenAndPermUserStore-cache moeten worden gewist met behulp van de T-SQL-opdrachten om de wijzigingenENABLE
direct van kracht te laten worden.DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Rollen voor Microsoft Entra-principals
Speciale rollen voor SQL Database kunnen worden toegewezen aan gebruikers in de virtuele master
database voor Microsoft Entra-principals, waaronder dbmanager en loginmanager.
Azure SQL Database-serverfuncties kunnen worden toegewezen aan aanmeldingen in de virtuele master
database.
Zie Zelfstudie: Microsoft Entra-serveraanmelding maken en gebruiken voor een zelfstudie over het verlenen van deze rollen.
Beperkingen en opmerkingen
- De SQL Server-beheerder kan geen Microsoft Entra-aanmeldingen of -gebruikers maken in databases.
- Een SQL-beheerder of SQL-gebruiker kan de volgende Microsoft Entra-bewerkingen niet uitvoeren:
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]
- Imitatie van Microsoft Entra-server-principals (aanmeldingen) wordt niet ondersteund voor Azure SQL Database en Azure Synapse Analytics. Het wordt ondersteund voor SQL Managed Instance:
- EXECUTE AS-component (Transact-SQL)
- EXECUTE AS (Transact-SQL)
- Imitatie van Microsoft Entra-database-principals (gebruikers) in een gebruikersdatabase wordt ondersteund op alle Microsoft SQL-producten.
- Microsoft Entra-aanmeldingen kunnen niet overlappen met de Microsoft Entra-beheerder. De Microsoft Entra-beheerder heeft voorrang op aanmeldingen. Als een Microsoft Entra-account al toegang heeft tot de server als Microsoft Entra-beheerder, afzonderlijk of als onderdeel van een groep, heeft een aanmelding voor dit account geen effect. Het maken van aanmeldingen wordt echter niet geblokkeerd via T-SQL. Nadat het account is geverifieerd bij de server, beschikt de aanmelding over de effectieve machtigingen van een Microsoft Entra-beheerder en niet over een zojuist gemaakte aanmelding.
- Het wijzigen van machtigingen voor een specifiek Microsoft Entra-aanmeldingsobject wordt niet ondersteund:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Wanneer u machtigingen voor een Microsoft Entra-aanmelding wijzigt, worden de wijzigingen standaard alleen van kracht wanneer de aanmelding de volgende keer verbinding maakt met de Azure SQL Database. Eventuele bestaande open verbindingen met de aanmelding worden niet beïnvloed. Als u wilt afdwingen dat wijzigingen van machtigingen onmiddellijk van kracht worden, kunt u de verificatie en TokenAndPermUserStore handmatig wissen, zoals eerder beschreven in het uitschakelen of inschakelen van een aanmelding met ALTER LOGIN. Dit gedrag is ook van toepassing wanneer u wijzigingen aanbrengt in het lidmaatschap van de serverfunctie met ALTER SERVER ROLE.
- In SQL Server Management Studio en Azure Data Studio controleert de scriptopdracht voor het maken van een gebruiker niet of er al een Microsoft Entra-aanmelding
master
met dezelfde naam is. Het genereert altijd de T-SQL voor een ingesloten database Microsoft Entra-gebruiker. - Er kan een fout optreden als u probeert een aanmelding of gebruiker te maken van een service-principal met een niet-aangepaste weergavenaam. Zie Microsoft Entra-aanmeldingen en gebruikers met niet-actieve weergavenamen voor meer informatie over het beperken van deze fout.
Beperkingen voor server-principals voor Microsoft Entra-groepen
Met Microsoft Entra-aanmeldingen in openbare preview voor Azure SQL Database en Azure Synapse Analytics gelden de volgende beperkingen:
- Azure SQL Database-serverfuncties worden niet ondersteund voor Microsoft Entra-groepen.
- Als uw SQL-beheerder een Microsoft Entra-groep is, zijn er enkele beperkingen wanneer gebruikers van die groep verbinding maken. Elke Microsoft Entra-gebruiker maakt niet afzonderlijk deel uit van de
sys.server_principals
tabel. Dit heeft verschillende gevolgen, waaronder oproepen om terug teSUSER_SID
kerenNULL
. - Aanmeldingen van Microsoft Entra-gebruikers die deel uitmaken van Microsoft Entra-groepsaanmelding, worden ook niet impliciet gemaakt, wat betekent dat ze geen standaardschema hebben en geen bewerkingen kunnen uitvoeren, zoals
CREATE SCHEMA
totdat een aanmelding voor de Microsoft Entra-gebruiker is gemaakt, of een standaardschema wordt toegewezen aan de groep. - Het wijzigen van het eigendom van een database in een Microsoft Entra-groep omdat de eigenaar van de database niet wordt ondersteund.
ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]
mislukt met een foutbericht:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.