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 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 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 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 PROVIDERvan .

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 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 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 wijzigingen ENABLE 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:
  • 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 te SUSER_SID keren 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 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.
      

Volgende stappen