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.
Van toepassing op:Azure SQL Database
Azure SQL Managed Instance
Microsoft Entra ID (voorheen Azure Active Directory) ondersteunt twee typen beheerde identiteiten: door het systeem toegewezen beheerde identiteit (SMI) en door de gebruiker toegewezen beheerde identiteit (UMI). Zie Beheerde identiteitstypen voor meer informatie.
Een SMI wordt automatisch toegewezen aan Azure SQL Managed Instance wanneer deze wordt gemaakt. Wanneer u Microsoft Entra-verificatie gebruikt met Azure SQL Database, moet u een SMI toewijzen wanneer Azure-service-principals worden gebruikt om Microsoft Entra-gebruikers te maken in SQL Database.
Voorheen kon alleen een SMI worden toegewezen aan de azure SQL Managed Instance- of SQL Database-serveridentiteit. Nu kan een UMI worden toegewezen aan SQL Managed Instance of SQL Database als instantie of serveridentiteit.
Naast het gebruik van een UMI en een SMI als instantie- of serveridentiteit, kunt u deze gebruiken voor toegang tot de database met behulp van de optie Authentication=Active Directory Managed IdentitySQL-verbindingsreeks. U moet een SQL-gebruiker maken op basis van de beheerde identiteit in de doeldatabase met behulp van de instructie CREATE USER . Zie Microsoft Entra-verificatie gebruiken met SqlClientvoor meer informatie.
Als u de huidige UMIs of SMI voor Azure SQL Managed Instance of Azure SQL Database wilt ophalen, raadpleegt u Een beheerde identiteit ophalen of instellen voor een logische server of een beheerd exemplaar verderop in dit artikel.
Voordelen van het gebruik van door de gebruiker toegewezen beheerde identiteiten
Er zijn verschillende voordelen van het gebruik van een UMI als serveridentiteit:
Gebruikers hebben de flexibiliteit om hun eigen UMI's voor een tenant te maken en te onderhouden. U kunt UMIs gebruiken als serveridentiteiten voor Azure SQL. Een UMI wordt beheerd door de gebruiker, terwijl een SMI uniek is gedefinieerd per server en wordt toegewezen door het systeem.
In het verleden had u de rol Microsoft Entra Directory Readers nodig bij het gebruik van een SMI als server- of instantie-identiteit. Met de introductie van toegang tot Microsoft Entra ID via Microsoft Graph kunnen gebruikers die zich bezighouden met het verlenen van machtigingen op hoog niveau, zoals de rol Adreslijstlezers aan de SMI of UMI, ook machtigingen op lager niveau geven, zodat de server- of exemplaaridentiteit toegang heeft tot Microsoft Graph.
Zie voor meer informatie over het verlenen van machtigingen voor Directory Readers en hun functie, de rol van Directory Readers in Microsoft Entra ID voor Azure SQL.
Gebruikers kunnen een specifieke UMI kiezen als server- of exemplaaridentiteit voor alle databases of beheerde exemplaren in de tenant. Of ze kunnen meerdere UMI's hebben toegewezen aan verschillende servers of instanties.
UMIS's kunnen op verschillende servers worden gebruikt om verschillende functies weer te geven. Een UMI kan bijvoorbeeld TDE (Transparent Data Encryption) op één server leveren en een UMI kan Microsoft Entra-verificatie op een andere server verwerken.
U hebt een UMI nodig om een logische server te maken in Azure die is geconfigureerd met TDE met door de klant beheerde sleutels (CMK's). Zie Door de klant beheerde transparante gegevensversleuteling met behulp van door de gebruiker toegewezen beheerde identiteit voor meer informatie.
UMI's zijn onafhankelijk van logische servers of beheerde exemplaren. Wanneer een logische server of instantie wordt verwijderd, wordt de SMI ook verwijderd. UMIs worden niet verwijderd met de server.
Opmerking
U moet de instantie-id (SMI of UMI) inschakelen om ondersteuning voor Microsoft Entra-verificatie in SQL Managed Instance toe te staan. Voor SQL Database is het inschakelen van de serveridentiteit optioneel en alleen vereist als een Microsoft Entra-service-principal (Microsoft Entra-toepassing) toezicht houdt op het maken en beheren van Microsoft Entra-gebruikers, -groepen of -toepassingen op de server. Zie Microsoft Entra-service-principal met Azure SQL voor meer informatie.
Maak een door de gebruiker toegewezen beheerde identiteit
Zie Door de gebruiker toegewezen beheerde identiteiten beheren voor meer informatie over het maken van een UMI.
Machtigingen
Nadat de UMI is gemaakt zijn er enkele machtigingen nodig zodat de UMI kan lezen van Microsoft Graph als serveridentiteit. Verken de volgende machtigingen of geef de UMI de rol Directory Readers .
Deze machtigingen moeten worden verleend voordat u een logische server of een beheerd exemplaar inricht. Nadat u de machtigingen aan de UMI hebt verleend, worden deze ingeschakeld voor alle servers of exemplaren die zijn gemaakt met de UMI die als serveridentiteit is toegewezen.
Belangrijk
Alleen een beheerder van bevoorrechte rollen of een hogere rol kan deze machtigingen verlenen.
- User.Read.All: staat toegang tot Microsoft Entra-gebruikersgegevens toe.
- GroupMember.Read.All: hiermee heeft u toegang tot microsoft Entra-groepsinformatie.
- Application.Read.ALL: hiermee hebt u toegang tot microsoft Entra-service-principalgegevens (toepassingsinformatie).
Machtigingen voor SMI
Dezelfde Machtigingen voor Microsoft Graph-toepassingen zijn nodig bij de SMI.
Alleen van toepassing op Azure SQL Database: het gebruik van een SMI biedt de mogelijkheid om de Microsoft Graph-machtigingen niet expliciet in te richten. De Microsoft Entra-gebruikers kunnen nog steeds worden gemaakt zonder de benodigde Microsoft Graph-machtiging met behulp van de CREATE USER T-SQL-syntaxis. Hiervoor zijn de SID en TYPE syntaxis vereist, zoals beschreven in het artikel CREATE USER (Transact-SQL).
CREATE USER
{
Microsoft_Entra_principal FROM EXTERNAL PROVIDER [ WITH <limited_options_list> [ ,... ] ]
| Microsoft_Entra_principal WITH <options_list> [ ,... ]
}
[ ; ]
<limited_options_list> ::=
DEFAULT_SCHEMA = schema_name
| OBJECT_ID = 'objectid'
<options_list> ::=
DEFAULT_SCHEMA = schema_name
| SID = sid
| TYPE = { X | E }
Met de bovenstaande syntaxis kunnen Microsoft Entra-gebruikers zonder validatie worden gemaakt. Dit werkt alleen als de Object Id Microsoft Entra-principal moet worden opgegeven en gebruikt als een SID in de T-SQL-instructie, zoals wordt uitgelegd in Een ingesloten databasegebruiker maken van een Microsoft Entra-principal zonder validatie.
De geldigheidscontrole van de object-id is de verantwoordelijkheid van de gebruiker die de T-SQL-instructie uitvoert.
Machtigingen verlenen
Het volgende PowerShell-voorbeeldscript verleent de benodigde machtigingen voor een beheerde identiteit. In dit voorbeeld worden machtigingen toegewezen aan de door de gebruiker toegewezen beheerde identiteit umiservertest.
Als u het script wilt uitvoeren, moet u zich aanmelden als een gebruiker met een beheerder voor bevoorrechte rollen of een hogere rol.
Het script verleent de User.Read.All, GroupMember.Read.Allen Application.Read.ALL machtigingen aan een beheerde identiteit voor toegang tot Microsoft Graph.
# Script to assign permissions to an existing UMI
# The following required Microsoft Graph permissions will be assigned:
# User.Read.All
# GroupMember.Read.All
# Application.Read.All
Import-Module Microsoft.Graph.Authentication
Import-Module Microsoft.Graph.Applications
$tenantId = "<tenantId>" # Your tenant ID
$MSIName = "<managedIdentity>"; # Name of your managed identity
# Log in as a user with the "Privileged Role Administrator" role
Connect-MgGraph -TenantId $tenantId -Scopes "AppRoleAssignment.ReadWrite.All,Application.Read.All"
# Search for Microsoft Graph
$MSGraphSP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'";
$MSGraphSP
# Sample Output
# DisplayName Id AppId SignInAudience ServicePrincipalType
# ----------- -- ----- -------------- --------------------
# Microsoft Graph 47d73278-e43c-4cc2-a606-c500b66883ef 00000003-0000-0000-c000-000000000000 AzureADMultipleOrgs Application
$MSI = Get-MgServicePrincipal -Filter "DisplayName eq '$MSIName'"
if($MSI.Count -gt 1)
{
Write-Output "More than 1 principal found with that name, please find your principal and copy its object ID. Replace the above line with the syntax $MSI = Get-MgServicePrincipal -ServicePrincipalId <your_object_id>"
Exit
}
# Get required permissions
$Permissions = @(
"User.Read.All"
"GroupMember.Read.All"
"Application.Read.All"
)
# Find app permissions within Microsoft Graph application
$MSGraphAppRoles = $MSGraphSP.AppRoles | Where-Object {($_.Value -in $Permissions)}
# Assign the managed identity app roles for each permission
foreach($AppRole in $MSGraphAppRoles)
{
$AppRoleAssignment = @{
principalId = $MSI.Id
resourceId = $MSGraphSP.Id
appRoleId = $AppRole.Id
}
New-MgServicePrincipalAppRoleAssignment `
-ServicePrincipalId $AppRoleAssignment.PrincipalId `
-BodyParameter $AppRoleAssignment -Verbose
}
Machtigingen controleren voor door de gebruiker toegewezen beheerde identiteit
Als u machtigingen voor een UMI wilt controleren, gaat u naar Azure Portal. Ga in de Microsoft Entra ID-resource naar Bedrijfstoepassingen. Selecteer Alle toepassingen voor toepassingstype en zoek naar de UMI die is gemaakt.
Selecteer de UMI en ga naar de instellingen voor machtigingen onder Beveiliging.
Een beheerde identiteit ophalen of instellen voor een logische server of een beheerde instantie
Als u een server wilt maken met behulp van een UMI, raadpleegt u de volgende handleiding: Een logische Azure SQL-server maken met behulp van een door de gebruiker toegewezen beheerde identiteit.
SMI voor de logische server van Azure SQL Database ophalen
In Azure Portal wordt de door het systeem toegewezen beheerde identiteit -id (SMI) weergegeven in het menu Eigenschappen van de logische Server van Azure SQL Database.
- Als u de UMIs voor Azure SQL Managed Instance of Azure SQL Database wilt ophalen, gebruikt u de volgende PowerShell- of Azure CLI-voorbeelden.
- Als u de SMI voor Azure SQL Managed Instance wilt ophalen, gebruikt u de volgende PowerShell- of Azure CLI-voorbeelden.
Een beheerde identiteit instellen in Azure Portal
De door de gebruiker beheerde identiteit instellen voor de logische Azure SQL Database-server of Azure SQL Managed Instance in Azure Portal:
- Ga naar uw SQL Server - of SQL Managed Instance-resource .
- Selecteer onder Beveiliging de instelling Identiteit .
- Selecteer Toevoegen onder Door de gebruiker toegewezen beheerde identiteit.
- Selecteer een abonnement en selecteer vervolgens voor primaire identiteit een beheerde identiteit voor het abonnement. Kies vervolgens de knop Selecteer.
Een beheerde identiteit maken of instellen met behulp van de Azure CLI
De Azure CLI 2.26.0 (of hoger) is vereist om deze opdrachten uit te voeren met een UMI.
Beheerde identiteit van Azure SQL Database met behulp van de Azure CLI
Als u een nieuwe server wilt inrichten met een door de gebruiker toegewezen beheerde identiteit, gebruikt u de opdracht az sql server create .
Gebruik de opdracht az sql server show om de beheerde identiteiten voor een logische server te verkrijgen.
Als u bijvoorbeeld de door de gebruiker toegewezen beheerde identiteiten van een logische server wilt ophalen, zoekt u naar de
principalIdvan elk.az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.userAssignedIdentitiesDe door het systeem toegewezen beheerde identiteit van een logische Azure SQL Database-server ophalen:
az sql server show --resource-group "resourcegroupnamehere" --name "sql-logical-server-name-here" --query identity.principalId
Als u de serverinstelling van de UMI wilt bijwerken, gebruikt u de opdracht az sql server update .
Beheerde identiteit van Azure SQL Managed Instance met behulp van de Azure CLI
Als u een nieuw beheerd exemplaar wilt inrichten met een UMI, gebruikt u de opdracht az sql mi create .
Gebruik de opdracht az sql mi show om de door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten voor beheerde exemplaren te verkrijgen.
nl-NL: Als u bijvoorbeeld de UMI('s) voor een beheerd exemplaar wilt ophalen, zoekt u naar de
principalIdvan elk:az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.userAssignedIdentitiesDe SMI van een beheerd exemplaar ophalen:
az sql mi show --resource-group "resourcegroupnamehere" --name "sql-mi-name-here" --query identity.principalId
Gebruik de opdracht az sql mi update om de instelling van het beheerde exemplaar van UMI bij te werken.
Een beheerde identiteit maken of instellen met behulp van PowerShell
Az.Sql-module 3.4 of hoger is vereist voor het gebruik van PowerShell met een UMI. De nieuwste versie van PowerShell wordt aanbevolen of gebruik de Azure Cloud Shell in Azure Portal.
Beheerde identiteit van Azure SQL Database met behulp van PowerShell
Als u een nieuwe server wilt inrichten met een UMI, gebruikt u de opdracht New-AzSqlServer .
Gebruik de opdracht Get-AzSqlServer om de beheerde identiteiten voor een logische server te verkrijgen.
Als u bijvoorbeeld de UMI's van een logische server wilt ophalen, zoekt u de
principalIdvan elk.$MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here" $MI.Identity.UserAssignedIdentities | ConvertTo-JsonGa als volgt te werk om de SMI van een logische Azure SQL Database-server op te halen:
$MI = Get-AzSqlServer -ResourceGroupName "resourcegroupnamehere" -Name "sql-logical-server-name-here" $MI.Identity.principalId
Als u de serverinstelling van de UMI wilt bijwerken, gebruikt u de opdracht Set-AzSqlServer .
Beheerde identiteit van Azure SQL Managed Instance door gebruik te maken van PowerShell
Als u een nieuw beheerd exemplaar wilt inrichten met een UMI, gebruikt u de opdracht New-AzSqlInstance .
Gebruik de opdracht Get-AzSqlInstance om de beheerde identiteiten voor een beheerd exemplaar te verkrijgen.
Als u bijvoorbeeld de UMI's van een beheerd exemplaar wilt ophalen, zoekt u naar de
principalIdvan elk exemplaar.$MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here" $MI.Identity.UserAssignedIdentities | ConvertTo-JsonDe SMI van een beheerd exemplaar ophalen:
$MI = Get-AzSqlInstance -ResourceGroupName "resourcegroupnamehere" -Name "sql-mi-name-here" $MI.Identity.principalId
Als u de instelling van het beheerde exemplaar van UMI wilt bijwerken, gebruikt u de opdracht Set-AzSqlInstance .
Een beheerde identiteit maken of instellen met behulp van de REST API
Als u de UMI-instellingen voor de server wilt bijwerken, kunt u ook het REST API-inrichtingsscript gebruiken dat wordt gebruikt in Een logische server maken met behulp van een door de gebruiker toegewezen beheerde identiteit of een beheerd exemplaar maken met behulp van een door de gebruiker toegewezen beheerde identiteit. Voer de voorzieningsopdracht opnieuw uit in de handleiding met de bijgewerkte door de gebruiker toegewezen beheerde identiteitseigenschap die u wilt bijwerken.
Een beheerde identiteit maken of instellen met behulp van een ARM-sjabloon
Als u de UMI-instellingen voor de server wilt bijwerken, kunt u ook de Azure Resource Manager-sjabloon (ARM-sjabloon) gebruiken die wordt gebruikt in Een logische server maken met behulp van een door de gebruiker toegewezen beheerde identiteit of een beheerd exemplaar maken met behulp van een door de gebruiker toegewezen beheerde identiteit. Voer de inrichtingsopdracht opnieuw uit volgens de handleiding met de bijgewerkte eigenschap van de door de gebruiker toegewezen beheerde identiteit die u wilt aanpassen.
Opmerking
U kunt de serverbeheerder of het wachtwoord niet wijzigen of de Microsoft Entra-beheerder wijzigen door de inrichtingsopdracht voor de ARM-sjabloon opnieuw uit te voeren.
Beperkingen en bekende problemen
- Nadat u een beheerd exemplaar hebt gemaakt, wordt op de Microsoft Entra-beheerpagina voor uw beheerde exemplaar in Azure Portal een waarschuwing weergegeven:
Managed Instance needs permissions to access Microsoft Entra ID. Click here to grant "Read" permissions to your Managed Instance.Als u de UMI de juiste machtigingen hebt gegeven die eerder in dit artikel zijn besproken, kunt u deze waarschuwing negeren. - Als u een SMI of een UMI als server- of exemplaar-id gebruikt, zorgt het verwijderen van de identiteit ervoor dat de server of het exemplaar geen toegang heeft tot Microsoft Graph. Microsoft Entra-verificatie en andere functies mislukken. Als u microsoft Entra-functionaliteit wilt herstellen, wijst u een nieuwe SMI of UMI toe aan de server met de juiste machtigingen.
- Als u machtigingen wilt verlenen voor toegang tot Microsoft Graph via een SMI of een UMI, moet u PowerShell gebruiken. U kunt deze machtigingen niet verlenen met behulp van Azure Portal.