Delen via


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 Azure SQL Database (preview) en Azure SQL Managed Instance.

Opmerking

Microsoft Entra serverprincipals (logins) zijn momenteel in 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 en hoger.

Er zijn verschillende voordelen van het gebruik van Microsoft Entra-server-principals met uw Azure SQL-resource:

  • Ondersteuning voor Azure SQL Database-serverfuncties voor machtigingsbeheer.
  • Ondersteuning voor meerdere Microsoft Entra-gebruikers met speciale rollen voor SQL Database, zoals de loginmanager en dbmanager 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 weigeren-machtigingen voor de primaire server.
  • Gebruik Microsoft Entra-service-principal-accounts met speciale rollen om het volledige proces van het maken en onderhouden van gebruikers en databases te automatiseren met behulp van Microsoft Entra- toepassingen.

Zie Microsoft Entra-verificatie gebruiken voor meer informatie over Microsoft Entra-verificatie in Azure SQL.

Machtigingen

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 krijgen nieuw aangemaakte Microsoft Entra-aanmeldingen in de master database de machtiging VIEW ANY DATABASE verleend.

Syntaxis van Microsoft Entra-principalen

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 aanmaken vanuit inloggegevens

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 Microsoft Entra-gebruiker in de database, is het enige verschil dat u FROM LOGIN [login_name] opgeeft in plaats van FROM EXTERNAL PROVIDER.

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 microsoft Entra-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 die zich aanmeldt, is de SID 18 tekens lang met een AADE achtervoegsel.

Opmerking

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 inlog, moet het AADE achtervoegsel eerst worden verwijderd.

Zie ingesloten databasegebruikers voor meer informatie over het conceptuele verschil tussen gebruikers op basis van aanmeldingen en ingesloten databasegebruikers.

Zie CREATE USER (Transact-SQL) voor meer informatie over alle syntaxis voor het aanmaken 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.

Opmerking

  • 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 ENABLE moeten worden gewist met behulp van de T-SQL-opdrachten om de wijzigingen 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]
  • Nabootsing 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 prioriteit boven elke aanmelding. 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 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 login of gebruiker aan te maken vanuit een service-principal met een niet-unieke weergavenaam. Zie Microsoft Entra-aanmeldingen en gebruikers met niet-unieke weergavenamen voor meer informatie over het beperken van deze fout.
  • In Azure SQL Database en Azure Synapse Analytics kunnen databasegebruikers die zijn gemaakt met behulp van Microsoft Entra-aanmeldingen vertragingen ondervinden bij het verlenen van rollen en machtigingen. Omdat deze functie nog steeds in openbare preview is, moeten de volgende opdrachten worden gebruikt om deze problemen op te lossen.
    • Verwijder de gebruiker uit de gebruikersdatabase.
    • Voer DBCC FREESYSTEMCACHE('TokenAndPermUserStore') uit om beveiligingscaches op de database te wissen.
    • Voer deze opdracht uit DBCC FLUSHAUTHCACHE om de cache met federatieve verificatiecontext te wissen.
    • Maak de gebruiker op basis van de aanmelding.

Beperkingen van serverprincipals voor groepen in Microsoft Entra

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 dat oproepen naar SUSER_SID leiden tot NULL.
  • 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 is niet ondersteund om het eigendom van een database te wijzigen naar een Microsoft Entra-groep als eigenaar van de database.
    • 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.
      

Volgende stappen