Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel leidt je bij het aanmaken en gebruiken van logins die zijn gebaseerd op Microsoft Entra ID (voorheen Azure Active Directory) binnen de virtuele master database van een Azure Synapse Analytics dedicated SQL-pool (voorheen SQL DW). Dedicated SQL pools in Azure Synapse Analytics workspaces gebruiken geen logische SQL-servers.
Note
Microsoft Entra Server Principals zijn momenteel in preview voor Azure Synapse Analytics.
In deze handleiding leer je hoe je:
- Maak een Microsoft Entra-login aan in de virtuele
masterdatabase - Maak een gebruiker gekoppeld aan een Microsoft Entra-aanmelding in de virtuele
master-database - Gebruik de
WITH OBJECT_ID-syntaxis voor niet-unieke weergavenamen - Serverfuncties verlenen aan een Microsoft Entra-gebruiker
- Een aanmelding voor Microsoft Entra uitschakelen
Prerequisites
- Een Azure Synapse Analytics dedicated SQL pool en een database.
- Microsoft Entra authentication configured for Azure Synapse Analytics. Voor meer informatie, zie Configureren en beheren Microsoft Entra-authenticatie met Azure Synapse Analytics.
- 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 rolloginmanagerkan een aanmelding maken, maar geen gebruiker in de virtuelemaster-database.
Note
Voor organisaties die te maken hebben met niet-unieke weergavenamen in Microsoft Entra ID (met name voor service-principals) is het belangrijk dat de Object ID-informatie beschikbaar is voor alle service-principals waarvoor u aanmeldingen wilt maken. De WITH OBJECT_ID syntaxisextensie kan helpen bij het oplossen van deze scenario's.
Microsoft Entra-aanmelding maken
Maak inloggegevens aan voor een Microsoft Entra-account. In dit voorbeeld gebruikt u
bob@contoso.com, dat bestaat in het Microsoft Entra-domein genaamdcontoso. Je kunt ook een login aanmaken vanuit een Microsoft Entra-groep of service principal (applicaties). Zie CREATE LOGIN (Transact-SQL)voor meer informatie.Note
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-authenticatielogin kan geen Microsoft Entra-logins aanmaken.
Tip
Als je problemen ondervindt met niet-unieke weergavenamen in Microsoft Entra ID, gebruik dan de
WITH OBJECT_IDsyntaxextensie. Deze functie is met name handig voor service-principals met dubbele weergavenamen. Voorbeeld:CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb'Voor meer informatie, zie Overwegingen bij namen.
Met SQL Server Management Studio (SSMS) kunt u inloggen op uw toegewijde SQL-pool met het Microsoft Entra beheerdersaccount.
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 GOControleer 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%'Je ziet een vergelijkbare output als het volgende:
Name type_desc type is_disabled bob@contoso.com EXTERNAL_LOGIN E 0De login
bob@contoso.comwordt aangemaakt in de virtuelemasterdatabase.
Gebruiker maken op basis van een Microsoft Entra-aanmelding
Nadat je een Microsoft Entra-login hebt aangemaakt, maak je een Microsoft Entra-gebruiker op databaseniveau aan die is gekoppeld aan de Microsoft Entra-login in de virtuele
masterdatabase. Om te laten zien hoe je de gebruiker aan speciale rollen kunt toevoegen, gebruik ons voorbeeld,bob@contoso.com, om een gebruiker aan te maken in de virtuelemasterdatabase. Alleen een Microsoft Entra-beheerder of SQL Server-beheerder kan gebruikers maken in de virtuelemaster-database.Gebruik de virtuele
masterdatabase, maar je kunt opnieuw verbinden met een database van je keuze als je gebruikers in andere databases wilt aanmaken. 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.Als je een gebruiker direct van een externe provider met een specifieke Object ID moet aanmaken (bijvoorbeeld om problemen met niet-unieke weergavenamen op te lossen), gebruik dan de volgende syntaxis:
CREATE USER [user_name] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'objectid'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%'Je ziet een vergelijkbare output als het volgende:
Name type_desc type bob@contoso.com EXTERNAL_USER E
Note
De bestaande syntaxis voor het maken van een Microsoft Entra-gebruiker zonder Microsoft Entra-aanmelding wordt nog steeds ondersteund. Als je de volgende syntaxis uitvoert, maak je een ingesloten databasegebruiker aan in de specifieke database waar je mee verbonden bent. Deze gebruiker is niet gekoppeld aan een login, zelfs niet als er een login met dezelfde naam in de virtuele master database staat.
Bijvoorbeeld: CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER.
Je kunt een Microsoft Entra-login aanmaken door een serviceprincipal te gebruiken met een niet-unieke weergavenaam. Voor meer informatie, zie Overwegingen voor namen.
Serverniveau-rollen verlenen aan Microsoft Entra-logins
Je kunt aanmeldingen toevoegen aan vaste serverniveau-rollen, zoals de ##MS_DefinitionReader##, ##MS_ServerStateReader## of ##MS_ServerStateManager## rol in de master database.
Note
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
Je kunt speciale rollen toewijzen voor Azure Synapse Analytics aan gebruikers in de virtuele master database.
Om een van de speciale databaserollen aan een gebruiker toe te kennen, moet de gebruiker in de virtuele master database bestaan.
Om een gebruiker aan een rol toe te voegen, voer je de volgende query uit:
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 het volgende voorbeeld maak je de gebruiker bob@contoso.com. Wijs de rollen dbmanager en loginmanager toe aan de gebruiker.
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%'Je ziet een vergelijkbare output als het volgende:
DatabaseRoleName DatabaseUserName dbmanager bob@contoso.com loginmanager bob@contoso.com
Optioneel - Een aanmelding uitschakelen
Gebruik de DDL-syntaxis ALTER LOGIN (Transact-SQL) om een Microsoft Entra-login in een speciale SQL-pool in of uit te schakelen.
ALTER LOGIN [bob@contoso.com] DISABLE
Om DISABLE- of ENABLE-wijzigingen direct van kracht te laten worden, wis je de authenticatiecache en de TokenAndPermUserStore-cache met de volgende T-SQL-commando's:
DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Controleer of het inloggen is uitgeschakeld door de volgende query uit te voeren:
SELECT name, type_desc, type
FROM sys.server_principals
WHERE is_disabled = 1