Azure SQL configureren en beheren met Microsoft Entra-verificatie

Van toepassing op: Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

In dit artikel leest u hoe u een Microsoft Entra-tenant maakt en vult en Microsoft Entra-id (voorheen Azure Active Directory) gebruikt met Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analytics. Zie Microsoft Entra-verificatie voor een overzicht.

Notitie

Microsoft Entra-id is de nieuwe naam voor Azure Active Directory (Azure AD). Op dit moment wordt de documentatie bijgewerkt.

Verificatiemethoden Microsoft Entra.

Microsoft Entra ID ondersteunt de volgende verificatiemethoden:

  • Identiteiten in de cloud van Microsoft Entra
  • Hybride Identiteiten van Microsoft Entra die ondersteuning bieden voor:
    • Cloudverificatie met twee opties in combinatie met naadloze eenmalige aanmelding (SSO)
      • Verificatie van wachtwoord-hash van Microsoft Entra
      • PassThrough-verificatie van Microsoft Entra
    • Federatieve verificatie

Zie De juiste verificatiemethode voor uw hybride identiteitsoplossing voor Microsoft Entra kiezen voor meer informatie over Microsoft Entra-verificatiemethoden en welke methode u moet kiezen.

Zie voor meer informatie over hybride identiteiten, installatie en synchronisatie van Microsoft Entra:

Een Microsoft Entra-tenant maken en vullen

Maak een Microsoft Entra-tenant en vul deze in met gebruikers en groepen. Microsoft Entra-tenants kunnen volledig worden beheerd in Azure of worden gebruikt voor de federatie van een on-premises Active Directory-domein Service.

Zie voor meer informatie:

Een Azure-abonnement aan Microsoft Entra-id koppelen of toevoegen

  1. Koppel uw Azure-abonnement aan Microsoft Entra-id door de map een vertrouwde directory te maken voor het Azure-abonnement dat als host fungeert voor de database. Zie Een Azure-abonnement koppelen aan of toevoegen aan uw Microsoft Entra-tenant voor meer informatie.

  2. Gebruik de directorywisselaar in Azure Portal om over te schakelen naar het abonnement dat is gekoppeld aan het domein.

    Belangrijk

    Elk Azure-abonnement heeft een vertrouwensrelatie met een Microsoft Entra-exemplaar. De directory vertrouwt op verificatie van gebruikers, services en apparaten. Meerdere abonnementen kunnen dezelfde directory vertrouwen, maar een abonnement vertrouwt slechts één directory. Deze vertrouwensrelatie die een abonnement heeft met een directory is in tegenstelling tot een abonnement met alle andere resources in Azure (websites, databases enzovoort), die meer lijken op onderliggende resources van een abonnement. Als een abonnement is verlopen, wordt toegang tot de andere resources die zijn gekoppeld aan het abonnement ook geblokkeerd. De map blijft echter aanwezig in Azure en u kunt een ander abonnement aan die directory koppelen en de directorygebruikers blijven beheren. Zie Inzicht in resourcetoegang in Azure voor meer informatie over resources. Zie Een Azure-abonnement koppelen aan of toevoegen aan Microsoft Entra ID voor meer informatie over deze vertrouwde relatie.

Microsoft Entra-beheerder met een server in SQL Database

Elke logische server in Azure (die als host fungeert voor SQL Database of Azure Synapse) begint met één serverbeheerdersaccount dat de beheerder van de hele server is. Maak een tweede beheerdersaccount als Een Microsoft Entra-account. Deze principal wordt gemaakt als een ingesloten databasegebruiker in de master database van de server. Beheer istrator-accounts zijn lid van de db_owner rol in elke gebruikersdatabase en elke gebruikersdatabase wordt ingevoerd als dbo-gebruiker. Zie Databases en aanmeldingen beheren voor meer informatie over beheerdersaccounts.

De Microsoft Entra-beheerder moet worden geconfigureerd voor zowel de primaire als de secundaire servers bij het gebruik van Microsoft Entra-id met geo-replicatie. Als een server geen Microsoft Entra-beheerder heeft, ontvangen Microsoft Entra-aanmeldingen en gebruikers een Cannot connect serverfout.

Notitie

Gebruikers die niet zijn gebaseerd op een Microsoft Entra-account (met inbegrip van het serverbeheerdersaccount) kunnen geen gebruikers op basis van Microsoft Entra maken, omdat ze geen toestemming hebben om voorgestelde databasegebruikers met Microsoft Entra-id te valideren.

Microsoft Entra-beheerder inrichten (SQL Managed Instance)

Belangrijk

Volg deze stappen alleen als u een met Azure SQL beheerd exemplaar inricht. Deze bewerking kan alleen worden uitgevoerd door Global Beheer istrator of een bevoorrechte rol Beheer istrator in Microsoft Entra-id.

U kunt de rol Adreslijstlezers toewijzen aan een groep in Microsoft Entra-id. De groepseigenaren kunnen vervolgens de identiteit van het beheerde exemplaar toevoegen als lid van deze groep, waarmee u een Microsoft Entra-beheerder kunt inrichten voor het met SQL beheerde exemplaar. Zie de rol Directory Readers in Microsoft Entra voor Azure SQL voor meer informatie over deze functie.

Uw met SQL beheerde exemplaar moet zijn gemachtigd om Microsoft Entra-id te lezen om taken uit te voeren, zoals verificatie van gebruikers via lidmaatschap van beveiligingsgroepen of het maken van nieuwe gebruikers. Dit werkt alleen als u het sql Managed Instance toestemming geeft om Microsoft Entra-id te lezen. U kunt dit doen met behulp van Azure Portal of PowerShell.

Azure Portal

Als u uw sql Managed Instance leesmachtigingen wilt verlenen aan Microsoft Entra ID met behulp van Azure Portal, meldt u zich aan als een Global Beheer istrator en voert u de volgende stappen uit:

  1. Selecteer in azure Portal in de rechterbovenhoek uw account en kies vervolgens Schakelen tussen mappen om te bevestigen welke map uw huidige map is. Schakel indien nodig tussen mappen.

    Screenshot of the Azure portal showing where to switch your directory.

  2. Kies de juiste Microsoft Entra-map als de huidige map.

    Met deze stap koppelt u het abonnement dat is gekoppeld aan Microsoft Entra-id aan het SQL Managed Instance, zodat de Microsoft Entra-tenant en SQL Managed Instance hetzelfde abonnement gebruiken.

  3. U kunt nu uw Microsoft Entra-beheerder kiezen voor uw sql Managed Instance. Ga hiervoor naar de resource van uw beheerde exemplaar in Azure Portal en selecteer Microsoft Entra-beheerder onder Instellingen.

    Screenshot of the Azure portal showing the Microsoft Entra admin page open for the selected SQL managed instance.

  4. Selecteer de banner boven op de Microsoft Entra-beheerpagina en verdeel machtigingen aan de huidige gebruiker.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Microsoft Entra ID with the Grant permissions button selected.

  5. Nadat de bewerking is voltooid, wordt de volgende melding weergegeven in de rechterbovenhoek:

    Screenshot of a notification confirming that Microsoft Entra ID read permissions have been successfully updated for the managed instance.

  6. Selecteer Op de microsoft Entra-beheerpagina de optie Beheerder instellen in de navigatiebalk om het deelvenster Microsoft Entra-id te openen.

    Screenshot showing the Set admin command highlighted on the Microsoft Entra admin page for the selected SQL managed instance.

  7. Zoek in het deelvenster Microsoft Entra-id naar een gebruiker, schakel het selectievakje in naast de gebruiker of groep als beheerder en druk op Selecteren om het deelvenster te sluiten en terug te gaan naar de Microsoft Entra-beheerpagina voor uw beheerde exemplaar.

    In het deelvenster Microsoft Entra-id worden alle leden en groepen in uw huidige map weergegeven. Grijs weergegeven gebruikers of groepen kunnen niet worden geselecteerd omdat ze niet worden ondersteund als Microsoft Entra-beheerders. Bekijk de lijst met ondersteunde beheerders in functies en beperkingen van Microsoft Entra. Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) is alleen van toepassing op Azure Portal en wordt niet doorgegeven aan SQL Database, SQL Managed Instance of Azure Synapse.

  8. Selecteer Opslaan op de navigatiebalk van de Microsoft Entra-beheerpagina voor uw beheerde exemplaar om uw Microsoft Entra-beheerder te bevestigen.

    Screenshot of the Microsoft Entra admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    Het wijzigen van de beheerder kan enkele minuten duren. Vervolgens wordt de nieuwe beheerder weergegeven in het vak Microsoft Entra-beheer.

    De object-id wordt weergegeven naast de beheerdersnaam voor Microsoft Entra-gebruikers en -groepen. Voor toepassingen (service-principals) wordt de toepassings-id weergegeven.

Nadat u een Microsoft Entra-beheerder voor uw SQL Managed Instance hebt ingericht, kunt u beginnen met het maken van Microsoft Entra-server-principals (aanmeldingen) met de syntaxis CREATE LOGIN . Zie het overzicht van SQL Managed Instance voor meer informatie.

Tip

Als u een Beheer later wilt verwijderen, selecteert u bovenaan de Microsoft Entra-beheerpagina de optie Beheerder verwijderen en selecteert u Opslaan.

PowerShell

Als u PowerShell wilt gebruiken om uw SQL Managed Instance leesmachtigingen te verlenen aan Microsoft Entra ID, voert u dit script uit:

# This script grants "Directory Readers" permission to a service principal representing the SQL Managed Instance.
# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$managedInstanceName = "<ManagedInstanceName>" # Enter the name of your managed instance
$tenantId = "<TenantId>"                       # Enter your tenant ID

Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
 
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
    New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
    $role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}

# Get service principal for your SQL Managed Instance
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$managedInstanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($managedInstanceName)' found, make sure that managedInstanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($managedInstanceName)'"
    Write-Output $roleMember | Format-List DisplayName, Id, AppId
    exit
}

# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
    # Add principal to Directory Readers role
    Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role..."
    $body = @{
        "@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
    }
    New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
    Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role."
} else {
    Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role."
}

PowerShell voor SQL Managed Instance

Als u PowerShell-cmdlets wilt uitvoeren, moet Azure PowerShell zijn geïnstalleerd en uitgevoerd. Zie How to install and configure Azure PowerShell (Azure PowerShell installeren en configureren) voor gedetailleerde informatie.

Belangrijk

Azure SQL Managed Instance ondersteunt nog steeds de Module PowerShell Azure Resource Manager (RM), maar alle toekomstige ontwikkeling is voor de Az.Sql-module. De AzureRM-module ontvangt oplossingen voor fouten tot ten minste december 2020. De argumenten voor de opdrachten in de Az-module en in de AzureRm-modules zijn vrijwel identiek. Zie Introductie van de nieuwe Az-module van Azure PowerShell voor meer informatie over de compatibiliteit van de argumenten.

Voer de volgende Azure PowerShell-opdrachten uit om een Microsoft Entra-beheerder in te richten:

  • Verbinding maken-AzAccount
  • Select-AzSubscription

De cmdlets die worden gebruikt voor het inrichten en beheren van Microsoft Entra-beheerders voor uw SQL Managed Instance, worden vermeld in de volgende tabel:

Naam van cmdlet Beschrijving
Set-AzSqlInstanceActiveDirectory Beheer istrator Richt een Microsoft Entra-beheerder in voor het sql Managed Instance in het huidige abonnement. (Moet afkomstig zijn van het huidige abonnement)
Remove-AzSqlInstanceActiveDirectory Beheer istrator Hiermee verwijdert u een Microsoft Entra-beheerder voor het met SQL beheerde exemplaar in het huidige abonnement.
Get-AzSqlInstanceActiveDirectory Beheer istrator Retourneert informatie over een Microsoft Entra-beheerder voor het met SQL beheerde exemplaar in het huidige abonnement.

Met de volgende opdracht wordt informatie opgehaald over een Microsoft Entra-beheerder voor een SQL Managed Instance met de naam ManagedInstance01 die is gekoppeld aan een resourcegroep met de naam ResourceGroup01.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

Met de volgende opdracht richt u een Microsoft Entra-beheerdersgroep in met de naam DBA's voor sql Managed Instance met de naam ManagedInstance01. Deze server is gekoppeld aan de resourcegroep ResourceGroup01.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

Met de volgende opdracht verwijdert u de Microsoft Entra-beheerder voor het met SQL beheerde exemplaar met de naam ManagedInstanceName01 dat is gekoppeld aan de resourcegroep ResourceGroup01.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Microsoft Entra-beheerder inrichten (SQL Database)

Belangrijk

Volg deze stappen alleen als u een server inricht voor SQL Database of Azure Synapse.

De volgende twee procedures laten zien hoe u een Microsoft Entra-beheerder inricht voor uw server in Azure Portal en met behulp van PowerShell.

Azure Portal

  1. Selecteer in azure Portal in de rechterbovenhoek uw account en kies vervolgens Schakelen tussen mappen om de pagina Mappen en abonnementen te openen. Kies de Map Microsoft Entra, die uw Azure SQL Database of Azure Synapse Analytics bevat als de huidige map.

  2. Zoek naar SQL-servers en selecteer de logische server voor uw Azure SQL Database.

    Search for and select SQL servers.

    Notitie

    Op deze pagina kunt u, voordat u SQL-servers selecteert, de ster naast de naam selecteren om de categorie aan uw favorieten toe te voegen en SQL-servers toe te voegen aan het linkernavigatiemenu.

    Overweeg ook uw Azure SQL-dashboard te bezoeken.

  3. Selecteer Microsoft Entra-id op de pagina SQL Server.

  4. Selecteer Op de pagina Microsoft Entra-id de optie Beheerder instellen om het deelvenster Microsoft Entra-id te openen

    Screenshot shows the option to set the Microsoft Entra admin for SQL servers.

  5. Zoek in het deelvenster Microsoft Entra-id naar een gebruiker en selecteer vervolgens de gebruiker of groep als beheerder. Gebruik Selecteren om uw keuze te bevestigen en sluit het deelvenster om terug te keren naar de Microsoft Entra-id-pagina van uw logische server. (De In het deelvenster Microsoft Entra-id worden alle leden en groepen van uw huidige map weergegeven. Grijs weergegeven gebruikers of groepen kunnen niet worden geselecteerd omdat ze niet worden ondersteund als Microsoft Entra-beheerders. Zie de lijst met ondersteunde beheerders in de sectie functies en beperkingen van Microsoft Entra-verificatie gebruiken met SQL Database of Azure Synapse.) Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) is alleen van toepassing op de portal en wordt niet doorgegeven aan de server.

  6. Selecteer Opslaan bovenaan de pagina Microsoft Entra-id voor uw logische server.

    Screenshot shows the option to save a Microsoft Entra admin.

    De object-id wordt weergegeven naast de beheerdersnaam voor Microsoft Entra-gebruikers en -groepen. Voor toepassingen (service-principals) wordt de toepassings-id weergegeven.

Het wijzigen van de beheerder kan enkele minuten duren. Vervolgens wordt de nieuwe beheerder weergegeven in het microsoft-entra-beheerveld .

Notitie

Bij het instellen van de Microsoft Entra-beheerder kan de nieuwe beheerdersnaam (gebruiker of groep) nog niet aanwezig zijn in de virtuele master database als serververificatiegebruiker. Indien aanwezig, mislukt de installatie van de Microsoft Entra-beheerder en wordt deze teruggedraaid, wat aangeeft dat er al een dergelijke beheerder (naam) bestaat. Omdat een gebruiker voor serververificatie geen deel uitmaakt van Microsoft Entra ID, mislukt de poging om verbinding te maken met de server met behulp van Microsoft Entra-verificatie.

Als u de beheerder later wilt verwijderen, selecteert u boven aan de pagina Microsoft Entra-id de optie Beheerder verwijderen en selecteert u Opslaan. Hierdoor wordt Microsoft Entra-verificatie voor uw logische server uitgeschakeld.

PowerShell voor SQL Database en Azure Synapse

Als u PowerShell-cmdlets wilt uitvoeren, moet Azure PowerShell zijn geïnstalleerd en uitgevoerd. Zie How to install and configure Azure PowerShell (Azure PowerShell installeren en configureren) voor gedetailleerde informatie. Voer de volgende Azure PowerShell-opdrachten uit om een Microsoft Entra-beheerder in te richten:

  • Verbinding maken-AzAccount
  • Select-AzSubscription

Cmdlets die worden gebruikt voor het inrichten en beheren van Microsoft Entra-beheerders voor SQL Database en Azure Synapse:

Naam van cmdlet Beschrijving
Set-AzSqlServerActiveDirectoryAdministrator Richt een Microsoft Entra-beheerder in voor de server die als host fungeert voor SQL Database of Azure Synapse. (Moet afkomstig zijn van het huidige abonnement)
Remove-AzSqlServerActiveDirectory Beheer istrator Hiermee verwijdert u een Microsoft Entra-beheerder voor de server die als host fungeert voor SQL Database of Azure Synapse.
Get-AzSqlServerActiveDirectory Beheer istrator Retourneert informatie over een Microsoft Entra-beheerder die momenteel is geconfigureerd voor de server waarop SQL Database of Azure Synapse wordt gehost.

Gebruik de PowerShell-opdracht get-help voor meer informatie voor elk van deze opdrachten. Bijvoorbeeld: get-help Set-AzSqlServerActiveDirectoryAdministrator.

Het volgende script richt een Microsoft Entra-beheerdersgroep in met de naam DBA_Group (object-id 40b79501-b343-44ed-9ce7-da4c8cc7353f) voor de demo_server-server in een resourcegroep met de naam Group-23:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"

De invoerparameter DisplayName accepteert de weergavenaam van de Microsoft Entra-id of de User Principal Name. Bijvoorbeeld DisplayName="John Smith" en DisplayName="johns@contoso.com". Voor Microsoft Entra-groepen wordt alleen de weergavenaam van Microsoft Entra-id ondersteund.

Notitie

Met de Azure PowerShell-opdracht Set-AzSqlServerActiveDirectoryAdministrator voorkomt u niet dat u Microsoft Entra-beheerders inricht voor niet-ondersteunde gebruikers. Een niet-ondersteunde gebruiker kan worden ingericht, maar kan geen verbinding maken met een database.

In het volgende voorbeeld wordt de optionele ObjectID gebruikt:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
    -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Notitie

De ObjectID is vereist wanneer de DisplayName niet uniek is. Als u de object-id - en DisplayName-waarden wilt ophalen, kunt u de eigenschappen van een gebruiker of groep weergeven in de sectie Microsoft Entra-id van Azure Portal.

In het volgende voorbeeld wordt informatie geretourneerd over de huidige Microsoft Entra-beheerder voor de server:

Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

In het volgende voorbeeld wordt een Microsoft Entra-beheerder verwijderd:

Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Notitie

U kunt ook een Microsoft Entra-Beheer istrator inrichten met behulp van de REST API's. Zie Service Management REST API Reference and Operations for Azure SQL Database Operations for Azure SQL Database Operations for Azure SQL Database

Uw clientcomputers configureren

Notitie

System.Data.SqlClient maakt gebruik van de Azure Active Directory Authentication Library (ADAL), die is afgeschaft. Als u de naamruimte System.Data.SqlClient voor Microsoft Entra-verificatie gebruikt, migreert u toepassingen naar Microsoft.Data.SqlClient en de Microsoft Authentication Library (MSAL). Zie Microsoft Entra-verificatie gebruiken met SqlClient voor meer informatie.

Als u ADAL.DLL in uw toepassingen moet blijven gebruiken, kunt u de koppelingen in deze sectie gebruiken om het nieuwste ODBC- of OLE DB-stuurprogramma te installeren, dat de meest recente ADAL.DLL bibliotheek bevat.

Op alle clientcomputers van waaruit uw toepassingen of gebruikers verbinding maken met SQL Database of Azure Synapse met behulp van Microsoft Entra-identiteiten, moet u de volgende software installeren:

U kunt aan deze vereisten voldoen door:

  • Het installeren van de nieuwste versie van SQL Server Management Studio of SQL Server Data Tools voldoet aan de vereiste .NET Framework 4.6.
    • SSMS installeert de x86-versie van ADAL.DLL.
    • SSDT installeert de amd64-versie van ADAL.DLL.
    • De nieuwste versie van Visual Studio van Visual Studio Downloads voldoet aan de vereiste .NET Framework 4.6, maar installeert niet de vereiste amd64-versie van ADAL.DLL.

Ingesloten gebruikers maken die zijn toegewezen aan Microsoft Entra-identiteiten

In deze sectie worden de vereisten en belangrijke overwegingen besproken voor het gebruik van Microsoft Entra-verificatie met Azure SQL Database, Azure SQL Managed Instance en Azure Synapse.

  • Microsoft Entra-verificatie met SQL Database en Azure Synapse vereist het gebruik van ingesloten databasegebruikers op basis van een Microsoft Entra-identiteit. Een ingesloten databasegebruiker heeft geen aanmelding in de master database en wordt toegewezen aan een identiteit in de Microsoft Entra-id die is gekoppeld aan de database. De Microsoft Entra-identiteit kan een afzonderlijk gebruikersaccount, groep of toepassing zijn. Zie Contained Database Users- Making Your Database Portable (Gebruikers van ingesloten databases: een draagbare database maken) voor meer informatie over gebruikers van ingesloten databases. Zie CREATE USER (Transact-SQL) voor meer informatie over het maken van ingesloten databasegebruikers op basis van Microsoft Entra-identiteiten.

  • Omdat SQL Managed Instance microsoft Entra-server-principals (aanmeldingen) ondersteunt, is het gebruik van ingesloten databasegebruikers niet vereist. Hiermee kunt u aanmeldingen maken van Microsoft Entra-gebruikers, -groepen of -toepassingen. Dit betekent dat u zich kunt verifiëren met uw SQL Managed Instance met behulp van de aanmelding van de Microsoft Entra-server in plaats van een ingesloten databasegebruiker. Zie het overzicht van SQL Managed Instance voor meer informatie. Zie CREATE LOGIN voor syntaxis voor het maken van Microsoft Entra-server-principals (aanmeldingen).

  • Databasegebruikers (behalve beheerders) kunnen geen database maken met behulp van Azure Portal. Microsoft Entra-rollen worden niet doorgegeven aan de database in SQL Database, SQL Managed Instance of Azure Synapse. Microsoft Entra-rollen beheren Azure-resources en zijn niet van toepassing op databasemachtigingen. De rol SQL Server-inzender verleent bijvoorbeeld geen toegang om verbinding te maken met de database in SQL Database, SQL Managed Instance of Azure Synapse. De toestemming tot het verlenen van toegang moet rechtstreeks plaatsvinden in de database met behulp van Transact-SQL-instructies.

  • U kunt geen databasegebruiker maken voor een identiteit die wordt beheerd in een andere Microsoft Entra-tenant dan de tenant die is gekoppeld aan uw Azure-abonnement. Gebruikers in andere mappen kunnen echter als externe gebruikers worden geïmporteerd in de gekoppelde map. Ze kunnen vervolgens worden gebruikt om ingesloten databasegebruikers te maken die toegang hebben tot de SQL Database. Externe gebruikers kunnen ook toegang krijgen via lidmaatschap van Microsoft Entra-groepen die databasegebruikers bevatten.

  • Speciale tekens, zoals dubbele punt : of ampersand & , wanneer deze worden opgenomen als gebruikersnamen in de T-SQL CREATE LOGIN en CREATE USER instructies, worden niet ondersteund.

Belangrijk

Microsoft Entra-gebruikers en service-principals (Microsoft Entra-toepassingen) die lid zijn van meer dan 2048 Microsoft Entra-beveiligingsgroepen, worden niet ondersteund om u aan te melden bij de database in SQL Database, SQL Managed Instance of Azure Synapse.

Als u een op Microsoft Entra ID gebaseerde ingesloten databasegebruiker wilt maken (behalve de serverbeheerder die eigenaar is van de database), maakt u verbinding met de database met een Microsoft Entra-identiteit als gebruiker met ten minste de machtiging ALTER ANY USER . In het volgende T-SQL-voorbeeld Microsoft_Entra_principal_name kan dit de user principal name zijn van een Microsoft Entra-gebruiker of de weergavenaam voor een Microsoft Entra-groep.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Voorbeelden: Een ingesloten databasegebruiker maken die een federatieve of beheerde domeingebruiker van Microsoft Entra vertegenwoordigt:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Als u een ingesloten databasegebruiker wilt maken die een Microsoft Entra-groep vertegenwoordigt, geeft u de weergavenaam van de groep op:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Een ingesloten databasegebruiker maken die een toepassing vertegenwoordigt die verbinding maakt met behulp van een Microsoft Entra-token:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Voor CREATE USER ... FROM EXTERNAL PROVIDER de opdracht is SQL-toegang tot Microsoft Entra ID (de externe provider) vereist namens de aangemelde gebruiker. Soms ontstaan er omstandigheden waardoor Microsoft Entra-id een uitzondering naar SQL retourneert.

  • U kunt SQL-fout 33134 tegenkomen, die het microsoft-entra-id-specifieke foutbericht bevat. De fout geeft meestal aan dat de toegang wordt geweigerd, dat de gebruiker zich moet inschrijven bij MFA om toegang te krijgen tot de resource of dat toegang tussen toepassingen van de eerste partij moet worden afgehandeld via preauthorisatie. In de eerste twee gevallen wordt het probleem meestal veroorzaakt door beleidsregels voor voorwaardelijke toegang die zijn ingesteld in de Microsoft Entra-tenant van de gebruiker: ze voorkomen dat de gebruiker toegang krijgt tot de externe provider. Als u het beleid voor voorwaardelijke toegang bijwerkt om toegang tot de toepassing '00000003-0000-0000-c00000000000' (de toepassings-id van de Microsoft Graph API) toe te staan, moet het probleem worden opgelost. Als de fout aangeeft dat de toegang tussen toepassingen van derden moet worden verwerkt via verificatie vooraf, is het probleem omdat de gebruiker is aangemeld als een service-principal. De opdracht moet slagen als deze wordt uitgevoerd door een gebruiker.
  • Als u een time-out voor Verbinding maken ion verlopen ontvangt, moet u mogelijk de TransparentNetworkIPResolution parameter van de verbindingsreeks instellen op false. Zie Verbinding maken time-outprobleem met .NET Framework 4.6.1 - TransparentNetworkIPResolution voor meer informatie.

Belangrijk

Als u de Microsoft Entra-beheerder voor de server verwijdert, voorkomt u dat een Microsoft Entra-verificatiegebruiker verbinding maakt met de server. Indien nodig kan een SQL Database-beheerder onbruikbare Microsoft Entra-gebruikers handmatig verwijderen.

Wanneer u een databasegebruiker maakt, ontvangt die gebruiker de machtiging CONNECT en kan deze verbinding maken met die database als lid van de rol PUBLIC . In eerste instantie worden de enige machtigingen die beschikbaar zijn voor de gebruiker verleend aan de rol PUBLIC en aan alle Microsoft Entra-groepen waar ze lid zijn. Het verlenen van machtigingen aan op Microsoft Entra gebaseerde ingesloten databasegebruikers werkt op dezelfde manier als het verlenen van machtigingen aan elk ander type gebruiker. Het is raadzaam om machtigingen te verlenen aan databaserollen en gebruikers toe te voegen aan deze rollen in plaats van rechtstreeks machtigingen te verlenen aan afzonderlijke gebruikers. Zie Basisprincipes van database-enginemachtigingen voor meer informatie. Zie Databases en aanmeldingen beheren in Azure SQL Database voor meer informatie over speciale SQL Database-rollen. Een federatief domeingebruikersaccount dat als externe gebruiker wordt geïmporteerd in een beheerd domein, moet de beheerde domeinidentiteit gebruiken.

Microsoft Entra-gebruikers worden gemarkeerd in de metagegevens van de database met het type E (EXTERNAL_USER) en voor groepen met het type X (EXTERNAL_GROUPS). Zie sys.database_principals voor meer informatie.

Verbinding maken naar de database met behulp van SSMS of SSDT

Als u wilt controleren of de Microsoft Entra-beheerder juist is ingesteld, maakt u verbinding met de master database met behulp van het Microsoft Entra-beheerdersaccount. Als u een op Microsoft Entra gebaseerde ingesloten databasegebruiker wilt maken, maakt u verbinding met de database met een Microsoft Entra-identiteit met toegang tot de database en ten minste de ALTER ANY USER machtiging.

Een Microsoft Entra-identiteit gebruiken om verbinding te maken met behulp van SSMS of SSDT

De volgende procedures laten zien hoe u verbinding maakt met SQL Database met een Microsoft Entra-identiteit met behulp van SQL Server Management Studio (SSMS) of SQL Server Database Tools (SSDT).

Microsoft Entra-id - Geïntegreerd

Gebruik deze methode als u bent aangemeld bij Windows met uw Microsoft Entra-referenties van een federatief domein of een beheerd domein dat is geconfigureerd voor naadloze eenmalige aanmelding voor passthrough- en wachtwoord-hashverificatie. Zie voor meer informatie Naadloze eenmalige aanmelding van Microsoft Entra.

  1. Start SSMS of SSDT en selecteer in het dialoogvenster Verbinding maken naar Server (of Verbinding maken naar Database Engine) in het vak Verificatie de optie Azure Active Directory - Geïntegreerd. U hoeft geen wachtwoord in te voeren omdat uw bestaande referenties worden weergegeven voor de verbinding.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Selecteer de knop Opties en typ op de pagina Verbinding maken eigenschappen in het vak Verbinding maken naar database de naam van de gebruikersdatabase waarmee u verbinding wilt maken.

    Screenshot from SSMS of the Options menu.

Microsoft Entra-id - Wachtwoord

Gebruik deze methode wanneer u verbinding maakt met een Microsoft Entra-principalnaam met behulp van het door Microsoft Entra beheerde domein. U kunt deze ook gebruiken voor federatieve accounts zonder toegang tot het domein, bijvoorbeeld wanneer u op afstand werkt.

Gebruik deze methode om te verifiëren bij de database in SQL Database of het SQL Managed Instance met gebruikers van identiteiten in de cloud van Microsoft Entra, of voor gebruikers die hybride identiteiten van Microsoft Entra gebruiken. Deze methode ondersteunt gebruikers die hun Windows-referenties willen gebruiken, maar hun lokale computer is niet gekoppeld aan het domein (bijvoorbeeld met externe toegang). In dit geval kan een Windows-gebruiker zijn of haar domeinaccount en wachtwoord aangeven en kan deze verifiëren bij de database in SQL Database, het beheerde SQL-exemplaar of Azure Synapse.

  1. Start SSMS of SSDT en selecteer in het dialoogvenster Verbinding maken naar Server (of Verbinding maken naar Database Engine) de optie Azure Active Directory - Wachtwoord in het vak Verificatie.

  2. Typ uw Microsoft Entra-gebruikersnaam in het vak Gebruikersnaam in de notatie username\@domain.com. Gebruikersnamen moeten een account zijn van Microsoft Entra ID of een account uit een beheerd of federatief domein met Microsoft Entra-id.

  3. Typ in het vak Wachtwoord uw gebruikerswachtwoord voor het Microsoft Entra-account of het beheerde/federatieve domeinaccount.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Selecteer de knop Opties en typ op de pagina Verbinding maken eigenschappen in het vak Verbinding maken naar database de naam van de gebruikersdatabase waarmee u verbinding wilt maken. (Zie de afbeelding in de vorige optie.)

Microsoft Entra-id - Universeel met MFA

Gebruik deze methode voor interactieve verificatie met meervoudige verificatie (MFA), waarbij het wachtwoord interactief wordt aangevraagd. Deze methode kan worden gebruikt om te verifiëren bij databases in SQL Database, SQL Managed Instance en Azure Synapse voor gebruikers van identiteiten in de cloud van Microsoft Entra, of voor gebruikers die hybride identiteiten van Microsoft Entra gebruiken.

Zie Multi-Factor Microsoft Entra-verificatie gebruiken met SQL Database en Azure Synapse (SSMS-ondersteuning voor MFA) voor meer informatie.

Microsoft Entra-id - Service-principal

Gebruik deze methode om te verifiëren bij de database in SQL Database of SQL Managed Instance met Microsoft Entra-service-principals (Microsoft Entra-toepassingen). Zie Microsoft Entra-service-principal met Azure SQL voor meer informatie.

Microsoft Entra-id - Beheerde identiteit

Gebruik deze methode om te verifiëren bij de database in SQL Database of SQL Managed Instance met door Microsoft Entra beheerde identiteiten. Zie Beheerde identiteiten in Microsoft Entra voor Azure SQL voor meer informatie.

Microsoft Entra-id - Standaard

De optie Standaardverificatie met Microsoft Entra-id maakt verificatie mogelijk die wordt uitgevoerd via wachtwoordloze en niet-interactieve mechanismen, waaronder beheerde identiteiten.

Microsoft Entra-identiteit gebruiken om verbinding te maken met behulp van de Query-editor van Azure Portal voor Azure SQL Database

Zie de quickstart: De query-editor van Azure Portal gebruiken om een query uit te voeren op Azure SQL Database voor meer informatie over de Query-editor van Azure Portal voor Azure SQL Database.

  1. Navigeer naar uw SQL-database in Azure Portal. Ga bijvoorbeeld naar uw Azure SQL-dashboard.

  2. Selecteer query-editor in het linkermenu op de overzichtspagina van uw SQL-databasein Azure Portal.

  3. Selecteer Doorgaan als uw gebruikers- of groeps-id> in het aanmeldingsscherm onder Welkom bij SQL Database Power Query-editor.<

    Screenshot showing sign-in to the Azure portal Query editor with Microsoft Entra authentication.

Een Microsoft Entra-identiteit gebruiken om verbinding te maken vanuit een clienttoepassing

In de volgende procedures ziet u hoe u vanuit een clienttoepassing verbinding maakt met een SQL Database met een Microsoft Entra-identiteit. Dit is geen uitgebreide lijst met verificatiemethoden bij het gebruik van een Microsoft Entra-identiteit. Zie Verbinding maken naar Azure SQL met Microsoft Entra-verificatie en SqlClient voor meer informatie.

Geïntegreerde Microsoft Entra-verificatie

Als u geïntegreerde Windows-verificatie wilt gebruiken, moet Active Directory van uw domein worden gefedereerd met Microsoft Entra-id of moet het een beheerd domein zijn dat is geconfigureerd voor naadloze eenmalige aanmelding voor passthrough- of wachtwoord-hashverificatie. Zie voor meer informatie Naadloze eenmalige aanmelding van Microsoft Entra.

Uw clienttoepassing (of een service) die verbinding maakt met de database, moet worden uitgevoerd op een computer die lid is van een domein onder de domeinreferenties van een gebruiker.

Als u verbinding wilt maken met een database met geïntegreerde verificatie en een Microsoft Entra-identiteit, moet het trefwoord Verificatie in de database verbindingsreeks zijn ingesteld op Active Directory Integrated. Vervang door <database_name> de naam van uw database. In het volgende C#-codevoorbeeld wordt ADO .NET gebruikt.

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Het trefwoord Integrated Security=True verbindingsreeks wordt niet ondersteund voor het maken van verbinding met Azure SQL Database. Wanneer u een ODBC-verbinding maakt, moet u spaties verwijderen en verificatie instellen op ActiveDirectoryIntegrated.

Wachtwoordverificatie voor Microsoft Entra

Als u verbinding wilt maken met een database met behulp van gebruikersaccounts voor identiteiten in de cloud van Microsoft Entra of gebruikers die hybride Identiteiten van Microsoft Entra gebruiken, moet het trefwoord Verificatie worden ingesteld op Active Directory Password. De verbindingsreeks moet gebruikers-id/UID en wachtwoord/PWD-trefwoorden en -waarden bevatten. Vervang , <email_address>en <password> door <database_name>de juiste waarden. In het volgende C#-codevoorbeeld wordt ADO .NET gebruikt.

string ConnectionString =
@"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Meer informatie over Microsoft Entra-verificatiemethoden met behulp van de democodevoorbeelden die beschikbaar zijn op GitHub-demo voor Microsoft Entra-verificatie.

Microsoft Entra ID-toegangstoken

Met deze verificatiemethode kunnen services in de middelste laag JSON-webtokens (JWT) verkrijgen om verbinding te maken met de database in SQL Database, sql Managed Instance of Azure Synapse door een token van Microsoft Entra ID te verkrijgen. Deze methode maakt verschillende toepassingsscenario's mogelijk, waaronder service-id's, service-principals en toepassingen met behulp van verificatie op basis van certificaten. U moet vier basisstappen uitvoeren voor het gebruik van Microsoft Entra-tokenverificatie:

  1. Registreer uw toepassing bij Microsoft Entra ID en haal de client-id voor uw code op.
  2. Maak een databasegebruiker die de toepassing vertegenwoordigt. (Voltooid eerder in de sectie Maak ingesloten gebruikers die zijn toegewezen aan Microsoft Entra-identiteiten.)
  3. Maak een certificaat op de clientcomputer waarop de toepassing wordt uitgevoerd.
  4. Voeg het certificaat toe als sleutel voor uw toepassing.

Voorbeeld verbindingsreeks. Vervang door <database_name> de databasenaam:

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

Zie sql Server Security Blog voor meer informatie. Zie Aan de slag met verificatie op basis van certificaten in Microsoft Entra-id voor meer informatie over het toevoegen van een certificaat.

sqlcmd

De volgende instructies maken verbinding met versie 13.1 van sqlcmd. Download Microsoft Command Line Utilities 14.0 voor SQL Server.

Notitie

sqlcmd met de -G opdracht werkt niet met systeemidentiteiten en is een gebruikersprincipaalaanmelding vereist.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

Problemen met Microsoft Entra-verificatie oplossen

Zie Blog: Problemen oplossen met betrekking tot Azure AD-verificatie met Azure SQL DB en DW voor hulp bij het oplossen van problemen met Microsoft Entra-verificatie.