Zelfstudie: Microsoft Entra-serveraanmelding maken en gebruiken
van toepassing op:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (alleen toegewezen SQL-pools)
In dit artikel wordt u begeleid bij het maken en gebruiken van aanmeldingen ondersteund door Microsoft Entra ID (voorheen Azure Active Directory) in de virtuele master
-database van Azure SQL.
In deze zelfstudie leert u het volgende:
- Maak een Microsoft Entra-aanmelding in de virtuele
master
-database met de nieuwe syntaxisextensie voor Azure SQL Database - Maak een gebruiker gekoppeld aan een Microsoft Entra-aanmelding in de virtuele
master
-database - Serverfuncties verlenen aan een Microsoft Entra-gebruiker
- Een aanmelding voor Microsoft Entra uitschakelen
Notitie
Microsoft Entra-serverprincipes (aanmeldingen) zijn momenteel in openbare preview voor Azure SQL Database. Azure SQL Managed Instance kan al gebruikmaken van Microsoft Entra-aanmeldingen.
Voorwaarden
- Een SQL Database of SQL Managed Instance met een database. Zie quickstart: Een individuele Azure SQL Database-database maken als u nog geen Azure SQL Database hebt gemaakt of quickstart: Een azure SQL Managed Instance maken.
- Microsoft Entra-verificatie is ingesteld voor SQL Database of SQL Managed Instance. Zie Microsoft Entra-verificatie configureren en beheren met Azure SQLvoor meer informatie.
- In dit artikel wordt uitgelegd hoe u een Microsoft Entra-aanmelding en -gebruiker maakt in de virtuele
master
-database. Alleen een Microsoft Entra-beheerder kan een gebruiker maken in de virtuelemaster
-database, dus we raden u aan het Microsoft Entra-beheerdersaccount te gebruiken bij het doorlopen van deze zelfstudie. Een Microsoft Entra-principal met de rolloginmanager
kan een aanmelding maken, maar geen gebruiker in de virtuelemaster
-database.
Microsoft Entra-aanmelding maken
Maak een Azure SQL Database-aanmelding voor een Microsoft Entra-account. In ons voorbeeld gebruiken we
bob@contoso.com
die aanwezig zijn in ons Microsoft Entra-domein met de naamcontoso
. Een aanmelding kan ook worden gemaakt vanuit een Microsoft Entra-groep of service-principal (toepassingen).mygroup
bijvoorbeeld een Microsoft Entra-groep die bestaat uit Microsoft Entra-accounts die lid zijn van die groep. Zie CREATE LOGIN (Transact-SQL)voor meer informatie.Notitie
De eerste Microsoft Entra-aanmelding moet worden gemaakt door de Microsoft Entra-beheerder. De Microsoft Entra-beheerder kan een Microsoft Entra-gebruiker of -groep zijn. Een SQL-aanmelding kan geen Microsoft Entra-aanmeldingen maken.
Gebruik SQL Server Management Studio (SSMS)om in te loggen bij uw SQL Database met het Microsoft Entra-beheerdersaccount dat is ingesteld voor de server.
Breid Databases>System Databasesuit. Klik met de rechtermuisknop op de
master
-database en selecteer Nieuwe query om een nieuw queryvenster te openen in de context van demaster
-database.Voer de volgende query uit:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER GO
Controleer de aangemaakte login in
sys.server_principals
. Voer de volgende query uit:SELECT name, type_desc, type, is_disabled FROM sys.server_principals WHERE type_desc like 'external%'
U ziet een vergelijkbare uitvoer zoals de volgende:
Name type_desc type is_disabled bob@contoso.com EXTERNAL_LOGIN E 0
De inlog
bob@contoso.com
is gemaakt in de virtuelemaster
database.
Gebruiker maken op basis van een Microsoft Entra-aanmelding
Nu we een Microsoft Entra-aanmelding hebben gemaakt, kunnen we een Microsoft Entra-gebruiker op databaseniveau maken die is toegewezen aan de Microsoft Entra-aanmelding in de virtuele
master
-database. We blijven ons voorbeeld gebruiken,bob@contoso.com
om een gebruiker te maken in de virtuelemaster
-database, omdat we willen laten zien hoe de gebruiker wordt toegevoegd aan speciale rollen. Alleen een Microsoft Entra-beheerder of SQL Server-beheerder kan gebruikers maken in de virtuelemaster
-database.We gebruiken nog steeds de virtuele
master
-database, maar u kunt opnieuw verbinding maken met een database van uw keuze als u gebruikers in andere databases wilt maken. Voer de volgende query uit.CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]
Tip
Hoewel het niet vereist is om Microsoft Entra-gebruikersaliassen te gebruiken (bijvoorbeeld
bob@contoso.com
), is het een aanbevolen best practice om dezelfde alias te gebruiken voor Microsoft Entra-gebruikers en Microsoft Entra-aanmeldingen.Controleer de aangemaakte gebruiker in
sys.database_principals
. Voer de volgende query uit:SELECT name, type_desc, type FROM sys.database_principals WHERE type_desc like 'external%'
U ziet een vergelijkbare uitvoer zoals de volgende:
Name type_desc type bob@contoso.com EXTERNAL_USER E
Notitie
De bestaande syntaxis voor het maken van een Microsoft Entra-gebruiker zonder Microsoft Entra-aanmelding wordt nog steeds ondersteund. Als u de volgende syntaxis uitvoert, wordt een ingesloten databasegebruiker gemaakt in de specifieke database waarmee u bent verbonden. Belangrijk is dat deze gebruiker niet is gekoppeld aan een aanmelding, zelfs als er een aanmelding met dezelfde naam bestaat in de virtuele master
-database.
Bijvoorbeeld CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
.
U kunt een Microsoft Entra-aanmelding maken met behulp van een service principal met een niet-unieke weergavenaam. Voor meer informatie, zie Microsoft Entra-aanmeldingen en gebruikers met niet-unieke weergavenamen
Serverniveau-rollen verlenen aan Microsoft Entra-logins
U kunt aanmeldingen toevoegen aan de functies op vaste serverniveau, zoals de ##MS_DefinitionReader#, ##MS_ServerStateReader##of ##MS_ServerStateManager## rol in de master
-database.
Notitie
De hier genoemde functies op serverniveau worden niet ondersteund voor Microsoft Entra-groepen.
ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateManager## ADD MEMBER [AzureAD_object];
Machtigingen zijn pas van kracht als de gebruiker opnieuw verbinding maakt. Maak ook de DBCC-cache leeg:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Voer de volgende query uit om te controleren welke Microsoft Entra-aanmeldingen deel uitmaken van serverfuncties:
SELECT roles.principal_id AS RolePID,roles.name AS RolePName,
server_role_members.member_principal_id AS MemberPID, members.name AS MemberPName
FROM sys.server_role_members AS server_role_members
INNER JOIN sys.server_principals AS roles
ON server_role_members.role_principal_id = roles.principal_id
INNER JOIN sys.server_principals AS members
ON server_role_members.member_principal_id = members.principal_id;
Speciale rollen verlenen voor Microsoft Entra-gebruikers
Speciale rollen voor SQL Database- kunnen worden toegewezen aan gebruikers in de virtuele master
-database.
Als u een van de speciale databaserollen aan een gebruiker wilt verlenen, moet de gebruiker bestaan in de virtuele master
-database.
Als u een gebruiker aan een rol wilt toevoegen, kunt u de volgende query uitvoeren:
ALTER ROLE [dbmanager] ADD MEMBER [AzureAD_object]
Als u een gebruiker uit een rol wilt verwijderen, voert u de volgende query uit:
ALTER ROLE [dbmanager] DROP MEMBER [AzureAD_object]
AzureAD_object
kan een Microsoft Entra-gebruiker, -groep of -service-principal zijn in Microsoft Entra-id.
In ons voorbeeld hebben we de gebruiker bob@contoso.com
gemaakt. Laten we de gebruiker de dbmanager- en loginmanager rollen geven.
Voer de volgende query uit:
ALTER ROLE [dbmanager] ADD MEMBER [bob@contoso.com] ALTER ROLE [loginmanager] ADD MEMBER [bob@contoso.com]
Controleer de toewijzing van de databaserol door de volgende query uit te voeren:
SELECT DP1.name AS DatabaseRoleName, isnull (DP2.name, 'No members') AS DatabaseUserName FROM sys.database_role_members AS DRM RIGHT OUTER JOIN sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id LEFT OUTER JOIN sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id WHERE DP1.type = 'R'and DP2.name like 'bob%'
U ziet een vergelijkbare uitvoer zoals de volgende:
DatabaseRoleName DatabaseUserName dbmanager bob@contoso.com loginmanager bob@contoso.com
Optioneel - Een aanmelding uitschakelen
De ALTER LOGIN (Transact-SQL) DDL-syntaxis kan worden gebruikt om een Microsoft Entra-aanmelding in Azure SQL Database in of uit te schakelen.
ALTER LOGIN [bob@contoso.com] DISABLE
Om de DISABLE
of ENABLE
wijzigingen onmiddellijk van kracht te laten worden, moeten de authenticatiecache en de TokenAndPermUserStore cache worden gewist met behulp van de volgende T-SQL-opdrachten:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Controleer of de aanmelding is uitgeschakeld door de volgende query uit te voeren:
SELECT name, type_desc, type
FROM sys.server_principals
WHERE is_disabled = 1
Een toepassingsgeval hiervoor is om alleen-lezen modus toe te staan op geo-replica's, maar de verbinding op een primaire server te weigeren.