Zelfstudie: Microsoft Entra-verificatie instellen voor SQL Server
van toepassing op: SQL Server 2022 (16.x)
In dit artikel wordt een stapsgewijs proces beschreven voor het instellen van verificatie met Microsoft Entra-id en wordt gedemonstreerd hoe u verschillende Microsoft Entra-verificatiemethoden gebruikt.
Notitie
Microsoft Entra ID voorheen Azure Active Directory (Azure AD) werd genoemd.
In deze zelfstudie leert u het volgende:
- Een Microsoft Entra-toepassing maken en registreren
- Machtigingen verlenen aan de Microsoft Entra-toepassing
- Een certificaat maken en toewijzen
- Microsoft Entra-verificatie configureren voor SQL Server via Azure Portal
- Aanmeldingen en gebruikers maken
- Verbinding maken met een ondersteunde verificatiemethode
Voorwaarden
Een fysieke of virtuele Windows Server on-premises met een exemplaar van SQL Server 2022 (16.x).
Raadpleeg Microsoft Entra-verificatie voor SQL Server 2022 op azure-VM'svoor SQL Server op azure-VM's.
De server en het exemplaar dat zijn ingeschakeld door Azure Arc. Zie Uw SQL Server verbinden met Azure Arcvoor meer informatie.
Toegang tot Microsoft Entra-id is beschikbaar voor verificatiedoeleinden. Zie Microsoft Entra-verificatie voor SQL Server-voor meer informatie.
SQL Server Management Studio (SSMS) versie 18.0 of hoger is geïnstalleerd op de clientcomputer. Of download de nieuwste Azure Data Studio.
Verificatievereisten
Notitie
Uitgebreide functionaliteit is geïmplementeerd in Azure om het automatisch maken van het Azure Key Vault-certificaat en de Microsoft Entra-toepassing mogelijk te maken tijdens het instellen van een Microsoft Entra-beheerder voor de SQL Server. Zie Zelfstudie: Automatisering gebruiken om de Microsoft Entra-beheerder voor SQL Server-in te stellen voor meer informatie.
Registratie van Microsoft Entra-toepassingen voor SQL Server. Als u een SQL Server-exemplaar registreert als een Microsoft Entra-toepassing, kan het exemplaar een query uitvoeren op Microsoft Entra-id en kan de Microsoft Entra-toepassing worden geverifieerd namens het SQL Server-exemplaar. Voor toepassingsregistratie zijn ook enkele machtigingen vereist, die worden gebruikt door SQL Server voor bepaalde query's.
SQL Server gebruikt een certificaat voor deze verificatie, dat is opgeslagen in Azure Key Vault (AKV). De Azure Arc-agent downloadt het certificaat naar de SQL Server-exemplaarhost.
Waarschuwing
Verbindingen die worden geverifieerd door de Microsoft Entra-id, worden altijd versleuteld. Als SQL Server een zelfondertekend certificaat gebruikt, moet u trust server cert = true
toevoegen aan de verbindingsreeks. Voor geverifieerde SQL Server- en Windows-verbindingen is geen versleuteling vereist, maar het wordt sterk aanbevolen.
Een Microsoft Entra-toepassing maken en registreren
- Ga naar de Azure Portalen selecteer Microsoft Entra ID>App-registraties>Nieuwe registratie.
- Geef een naam op: in het voorbeeld in dit artikel wordt SQLServerCTP1-gebruikt.
- Selecteer Ondersteunde accounttypen en gebruik alleen Accounts in deze organisatiemap
- Stel geen omleidings-URI in
- Selecteer registreren
Zie de onderstaande toepassingsregistratie:
Applicatiemachtigingen verlenen
Selecteer de zojuist gemaakte toepassing en selecteer in het menu aan de linkerkant API-machtigingen.
Selecteer Een machtiging toevoegen>Microsoft Graph>Toepassingsmachtigingen
- Controleer Directory.Read.All
- Selecteer Machtigingen toevoegen
Selecteer Een machtiging toevoegen>Microsoft Graph>Gedelegeerde machtigingen
- Controleer Application.Read.All
- Controleer Directory.AccessAsUser.All
- Controleer Group.Read.All
- Controleer User.Read.All
- Selecteer Machtigingen toevoegen
Selecteer Beheerderstoestemming verlenen
Notitie
Als u beheerderstoestemming wilt verlenen aan de bovenstaande machtigingen, vereist uw Microsoft Entra-account de rol Beheerder met bevoorrechte rollen of hogere machtigingen.
Een certificaat maken en toewijzen
Ga naar de Azure-portal, selecteer Sleutelkluizenen selecteer de sleutelkluis die u wilt gebruiken of maak een nieuwe sleutelkluis. Selecteer certificaten> genereren/importeren
Gebruik voor de methode voor het maken van certificatenGenereren.
Voeg een certificaatnaam en onderwerp toe.
De aanbevolen geldigheidsperiode is maximaal 12 maanden. De rest van de waarden kan standaard worden achtergelaten.
Selecteer maak.
Notitie
Zodra het certificaat is gemaakt, kan het aangeven dat het uitgeschakeldis. Vernieuw de site en het certificaat wordt weergegeven als ingeschakeld.
Navigeer naar het nieuwe certificaat en selecteer de rij voor de nieuwste versie van het certificaat. Selecteer Downloaden in CER-indeling om de openbare sleutel van het certificaat op te slaan.
Notitie
Dit hoeft niet te worden gedaan op de SQL Server-host. Integendeel, elke client die toegang zal hebben tot de Azure-portal voor de volgende stap.
Navigeer in Azure Portal naar de app-registratie die hierboven is gemaakt en selecteer certificaten lijst
- Selecteer uploadcertificaat.
- Selecteer de openbare sleutel (.cer bestand) die u in de laatste stap hebt gedownload.
- Selecteer toevoegen.
Haal in Azure Portal de object-id van de Azure Arc-machine op.
Selecteer de machine onder Azure Arc-resources>Machines.
Zoek JSON-weergavein Overzicht.
Kopieer onder Identityde waarde voor principalId.
Navigeer in de portal naar het Azure Key Vault-exemplaar waar het certificaat is opgeslagen en verkreeg toegang tot de Azure Machine-resource(s). Navigeer in het navigatiemenu van Azure Key Vault naar Instellingenen Access-configuratie. Raadpleeg Azure-rollen toewijzen met behulp van de Azure-portalvoor gedetailleerde stappen voor het beheren van roltoewijzingen.
Uw ervaring is afhankelijk van de toegangsconfiguratie van uw sleutelkluis:
op rollen gebaseerd toegangsbeheer van Azure gebruiken (aanbevolen):
Voeg de volgende rollen toe aan uw resource.
- Key Vault-certificaatgebruiker
- Key Vault-geheimengebruiker
Controleer de rollen op deze locatie:
Vault-toegangsbeleid gebruiken:
Selecteer Toegangsbeleid in het navigatiemenu.
Selecteer Maak.
Voor geheime machtigingenselecteert u Ophalen>Lijst.
Selecteer voor certificaatmachtigingen>lijst ophalen.
Selecteer Volgende.
Zoek voor Principal-pagina naar de naam van uw Machine - Azure Arc-exemplaar. Dit is de hostnaam van de SQL Server-host.
Selecteer Beoordelen enmaken.
Controleer of de waarde voor Principal>Object-id overeenkomt met de Principal-id van de beheerde identiteit die is toegewezen aan het exemplaar.
Als u dit wilt bevestigen, gaat u naar de resourcepagina en selecteert u JSON-weergave in de rechterbovenhoek van het vak Essentials op de pagina Overzicht. Onder identiteit vind je de principalId
Selecteer maken.
U moet Creëren selecteren om ervoor te zorgen dat de toestemmingen worden toegepast. Als u wilt controleren of machtigingen zijn opgeslagen, vernieuwt u het browservenster en controleert u of uw Azure Arc-exemplaar aanwezig is.
Microsoft Entra-verificatie configureren voor SQL Server via Azure Portal
Notitie
U kunt Microsoft Entra-verificatie configureren met een van de volgende ervaringen:
- Azure CLI
- PowerShell
- ARM-sjabloon
Ga naar de Azure-portalen selecteer SQL Server – Azure Arcen selecteer het exemplaar voor uw SQL Server-host.
Controleer de status van uw SQL Server - Azure Arc-resource en kijk of deze is verbonden door naar het menu Eigenschappen te gaan. Zie De SQL Server - Azure Arc-resourcesvalideren voor meer informatie.
Selecteer Microsoft Entra-id en Purview- onder Instellingen in het resourcemenu.
Selecteer Stel Beheerder in om het deelvenster Microsoft Entra ID te openen en kies een account om te gebruiken als beheerdersaanmelding voor SQL Server.
Selecteer door de klant beheerde certificaat en Selecteer een certificaat.
Selecteer Wijzig certificaaten kies uw AKV-exemplaar en certificaat dat u eerder hebt gemaakt in het nieuwe deelvenster.
Selecteer door de klant beheerde app-registratie.
Selecteer App-registratie wijzigenen selecteer de app-registratie die u eerder hebt gemaakt.
Selecteer opslaan. Hiermee wordt een aanvraag verzonden naar de Arc-serveragent, waarmee Microsoft Entra-verificatie voor dat SQL Server-exemplaar wordt geconfigureerd.
Het duurt enkele minuten om certificaten te downloaden en instellingen te configureren. Nadat u alle parameters hebt ingesteld en opslaan hebt geselecteerd in Azure Portal, kan het volgende bericht worden weergegeven:
SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing
. Wacht totdat het opslagproces is bevestigd metSaved successfully
, voordat u een Microsoft Entra-aanmelding probeert uit te voeren.De Azure Arc-serveragent kan alleen worden bijgewerkt nadat de vorige actie is voltooid. Dit betekent dat het opslaan van een nieuwe Microsoft Entra-configuratie voordat de laatste configuratie is voltooid een fout kan veroorzaken. Als het bericht uitgebreide oproep is mislukt wordt weergegeven wanneer u Opslaanselecteert, wacht u vijf minuten en probeert u het opnieuw.
Notitie
Zodra de Microsoft Entra-beheerdersaanmelding is verleend aan de
sysadmin
rol, zorgt het wijzigen van de Microsoft Entra-beheerder in de Azure Portal er niet voor dat de vorige aanmelding wordt verwijderd, deze blijft als eensysadmin
bewaard. Als u de aanmelding wilt verwijderen, moet deze handmatig worden verwijderd.De Microsoft Entra-beheerderwijziging voor het SQL Server-exemplaar vindt plaats zonder opnieuw opstarten van de server, zodra het proces is voltooid met de Azure Arc-agent van SQL Server. Om de nieuwe beheerder weer te geven in
sys.server_principals
, moet het SQL Server-exemplaar opnieuw worden opgestart en tot die tijd wordt de oude beheerder weergegeven. De huidige Microsoft Entra-beheerder kan worden ingecheckt in Azure Portal.
Aanmeldingen en gebruikers maken
Nadat de Azure Arc-agent op de SQL Server-host de bewerking heeft voltooid, wordt het beheerdersaccount dat is geselecteerd in het Microsoft Entra ID menu in de portal een sysadmin
op het SQL Server-exemplaar. Meld u aan bij SQL Server met het Microsoft Entra-beheerdersaccount met sysadmin
machtigingen op de server met behulp van een client zoals SSMS- of Azure Data Studio-.
Notitie
Alle verbindingen met SQL Server die worden uitgevoerd met Microsoft Entra-verificatie, vereisen een versleutelde verbinding. Als de databasebeheerder (DBA) geen vertrouwd SSL/TLS-certificaat voor de server heeft ingesteld, mislukken aanmeldingen waarschijnlijk met het bericht De certificaatketen is uitgegeven door een instantie die niet wordt vertrouwd. Om dit op te lossen, configureert u het SQL Server-exemplaar voor het gebruik van een SSL/TLS-certificaat dat wordt vertrouwd door de client of selecteert u vertrouwensservercertificaat in de geavanceerde verbindingseigenschappen. Zie Versleutelde verbindingen met de database-engine inschakelenvoor meer informatie.
Aanmeldingssyntaxis maken
Dezelfde syntaxis voor het maken van Microsoft Entra-aanmeldingen en -gebruikers in Azure SQL Database en Azure SQL Managed Instance kan nu worden gebruikt op SQL Server.
Notitie
Op SQL Server kan elk account met de machtiging ALTER ANY LOGIN
of ALTER ANY USER
microsoft Entra-aanmeldingen of -gebruikers maken. Het account hoeft geen Microsoft Entra-aanmelding te zijn.
Als u een aanmelding voor een Microsoft Entra-account wilt maken, voert u de volgende T-SQL-opdracht uit in de master
-database:
CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;
Voor gebruikers moet de principal-naam de indeling user@tenant.com
hebben. In Microsoft Entra ID is dit de principal-naam van de gebruiker. Voor alle andere accounttypen, zoals Microsoft Entra-groepen of -toepassingen, is de principal-naam de naam van het Microsoft Entra-object.
Hier volgen enkele voorbeelden:
-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO
Als u de Microsoft Entra-aanmeldingen in de master
-database wilt weergeven, voert u de T-SQL-opdracht uit:
SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');
Als u een Microsoft Entra-gebruikerslidmaatschap wilt verlenen aan de sysadmin
-rol (bijvoorbeeld admin@contoso.com
), voert u de volgende opdrachten uit in master
:
CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO
De sp_addsrvrolemember
opgeslagen procedure moet worden uitgevoerd als lid van de SQL Server-sysadmin
-serverfunctie.
Gebruikerssyntaxis maken
U kunt een databasegebruiker maken op basis van Microsoft Entra ID als een databasegebruiker die is gekoppeld aan een server-principal (aanmelding) of als een ingesloten databasegebruiker.
Als u een Microsoft Entra-gebruiker wilt maken vanuit een Microsoft Entra-aanmelding in een SQL Server-database, gebruikt u de volgende syntaxis:
CREATE USER [principal_name] FROM LOGIN [principal_name];
De principal_name
-syntaxis is hetzelfde als voor inloggen.
Hier volgen enkele voorbeelden:
-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO
Als u een in Microsoft Entra opgenomen databasegebruiker wilt maken, die een gebruiker is die niet is gekoppeld aan een serveraanmelding, kan de volgende syntaxis worden uitgevoerd:
CREATE USER [principal name] FROM EXTERNAL PROVIDER;
Gebruik de microsoft Entra-groepsnaam of microsoft Entra-toepassingsnaam als <principal name>
bij het maken van een Microsoft Entra-databasegebruiker van een groep of toepassing.
Hier volgen enkele voorbeelden:
-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
Voer de volgende T-SQL-opdracht uit om de gebruikers weer te geven die in de database zijn gemaakt:
SELECT * FROM sys.database_principals;
Een nieuwe database heeft standaard connect--machtiging. Alle andere SQL Server-machtigingen moeten expliciet worden verleend door geautoriseerde grantors.
Microsoft Entra-gastaccounts
De syntaxis van de CREATE LOGIN
en CREATE USER
ondersteunt ook gastgebruikers. Als testuser@outlook.com
bijvoorbeeld wordt uitgenodigd voor de contoso.com
-tenant, kan deze worden toegevoegd als een aanmelding bij SQL Server met dezelfde syntaxis als het maken van een andere Microsoft Entra-gebruiker of aanmelding. Wanneer u gastgebruikers en aanmeldingen maakt, gebruikt u de oorspronkelijke e-mail van het gastaccount, niet de principal-naam van de gebruiker in de tenant. In de voorbeelden wordt outlook.com
opgegeven, ook al is het account geregistreerd in de contoso.com
tenant.
Een gastgebruiker maken op basis van een bestaande aanmelding
CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];
Een gastgebruiker maken als een ingesloten gebruiker
CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;
Verbinding maken met een ondersteunde verificatiemethode
SQL Server ondersteunt verschillende Microsoft Entra-verificatiemethoden:
- Verstek
- Gebruikersnaam en wachtwoord
- Geïntegreerd
- Universeel met meervoudige verificatie
- Service-principal
- Beheerde identiteit
- Toegangstoken
Gebruik een van deze methoden om verbinding te maken met het SQL Server-exemplaar. Zie Microsoft Entra-verificatie voor SQL Server-voor meer informatie.
Verificatievoorbeeld met behulp van SSMS
Notitie
Hoewel Microsoft Entra ID de nieuwe naam is voor Azure Active Directory (Azure AD), om te voorkomen dat bestaande omgevingen worden onderbroken, blijft Azure AD in sommige hardcoded elementen, zoals ui-velden, verbindingsproviders, foutcodes en cmdlets. In dit artikel zijn de twee namen uitwisselbaar.
Hieronder ziet u de momentopname van de SSMS-verbindingspagina (SQL Server Management Studio) met behulp van de verificatiemethode Azure Active Directory - Universeel met MFA-.
Tijdens het verificatieproces moet een database waarin de gebruiker is gemaakt expliciet worden aangegeven in SSMS. Vouw -opties uit > verbindingseigenschappen > Verbinding maken met database: database_name
.
Zie Microsoft Entra-meervoudige verificatie gebruikenvoor meer informatie.
SQL Server-hulpprogramma's die ondersteuning bieden voor Microsoft Entra-verificatie voor Azure SQL, worden ook ondersteund voor SQL Server 2022 (16.x).
Locatie waar Microsoft Entra ID-parameters worden opgeslagen
Waarschuwing
Microsoft Entra ID-parameters worden geconfigureerd door de Azure Arc-agent en moeten niet handmatig opnieuw worden geconfigureerd.
In Linux worden microsoft Entra ID-parameters opgeslagen in mssql-conf
. Zie SQL Server configureren in Linux met het hulpprogramma mssql-confvoor meer informatie over de configuratieopties in Linux.
Bekende problemen
- Het bijwerken van het certificaat wordt niet doorgegeven:
Zodra Microsoft Entra-verificatie is geconfigureerd voor SQL Server, kan het certificaat in SQL Server - Azure Arc resource's Microsoft Entra ID en het Purview deelvenster mogelijk niet volledig worden doorgegeven. Dit resulteert in het opslaan is geslaagd, maar de oude waarde wordt nog steeds weergegeven. Ga als volgt te werk om het certificaat bij te werken:
- Selecteer Beheerverwijderen.
- Selecteer opslaan.
- Selecteer Beheer- instellen en configureer Microsoft Entra-verificatie opnieuw met het nieuwe certificaat.
- Selecteer opslaan.