Självstudie: Konfigurera Microsoft Entra-autentisering för SQL Server
gäller för: SQL Server 2022 (16.x)
Den här artikeln beskriver en stegvis process för att konfigurera autentisering med Microsoft Entra-ID och visar hur du använder olika Microsoft Entra-autentiseringsmetoder.
Not
Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).
I den här guiden lär du dig hur du:
- Skapa och registrera ett Microsoft Entra-program
- Bevilja behörigheter till Microsoft Entra-programmet
- Skapa och tilldela ett certifikat
- Konfigurera Microsoft Entra-autentisering för SQL Server via Azure-portalen
- Skapa inloggningar och användare
- Ansluta med en autentiseringsmetod som stöds
Förutsättningar
En fysisk eller virtuell Windows Server lokalt med en instans av SQL Server 2022 (16.x).
För SQL Server på virtuella Azure-datorer läser du Microsoft Entra-autentisering för SQL Server 2022 på virtuella Azure-datorer.
Servern och instansen som aktiveras av Azure Arc. Mer information finns i Ansluta SQL Server till Azure Arc.
Åtkomst till Microsoft Entra-ID är tillgängligt för autentisering. Mer information finns i Microsoft Entra-autentisering för SQL Server.
SQL Server Management Studio (SSMS) version 18.0 eller senare är installerad på klientdatorn. Eller ladda ned den senaste Azure Data Studio .
Autentiseringskrav
Not
Utökade funktioner har implementerats i Azure för att göra det möjligt att automatiskt skapa Azure Key Vault-certifikatet och Microsoft Entra-programmet när du konfigurerar en Microsoft Entra-administratör för SQL Server. Mer information finns i Självstudie: Använda automatisering för att konfigurera Microsoft Entra-administratören för SQL Server.
Microsoft Entra-programregistrering för SQL Server. Genom att registrera en SQL Server-instans som ett Microsoft Entra-program kan instansen köra frågor mot Microsoft Entra-ID och göra det möjligt för Microsoft Entra-programmet att autentisera åt SQL Server-instansen. Programregistrering kräver också några behörigheter som används av SQL Server för vissa frågor.
SQL Server använder ett certifikat för den här autentiseringen, som lagras i Azure Key Vault (AKV). Azure Arc-agenten laddar ner certifikatet till värddatorn för SQL Server-instansen.
Varning
Anslutningar som autentiseras av Microsoft Entra-ID krypteras alltid. Om SQL Server använder ett självsignerat certifikat måste du lägga till trust server cert = true
i anslutningssträngen. SQL Server- och Windows-autentiserade anslutningar kräver inte kryptering, men det rekommenderas starkt.
Skapa och registrera ett Microsoft Entra-program
- Gå till Azure-portalenoch välj Microsoft Entra ID>App-registreringar>Ny registrering.
- Ange ett namn – Exemplet i den här artikeln använder SQLServerCTP1.
- Välj kontotyper som stöds och använd endast -konton i den här organisationskatalogen
- Ange inte en omdirigerings-URI
- Välj Registrera
Se applikationsregistreringen nedan:
Bevilja applikationsbehörigheter
Välj det nyligen skapade programmet och välj API-behörigheterpå menyn till vänster.
Välj Lägg till en behörighet>Microsoft Graph>Programbehörigheter
- Kontrollera Directory.Read.All
- Välj Lägg till behörigheter
Välj Lägg till en behörighet>Microsoft Graph>Delegerade behörigheter
- Kontrollera Application.Read.All
- Kontrollera Directory.AccessAsUser.All
- Kontrollera Group.Read.All
- Kontrollera User.Read.All
- Välj Lägg till behörigheter
Välj Bevilja administratörsmedgivande
Anteckning
För att ge administratörsmedgivande till behörigheterna ovan kräver ditt Microsoft Entra-konto rollen Privilegierad rolladministratör eller högre behörigheter.
Skapa och tilldela ett certifikat
Gå till Azure-portalen, välj Nyckelvalvoch välj det nyckelvalv som du vill använda eller skapa ett nytt. Välj certifikat>generera/importera
Använd Genereraför metod för att skapa certifikat.
Lägg till ett certifikatnamn och ämne.
Den rekommenderade giltighetsperioden är högst 12 månader. Resten av värdena kan lämnas som standard.
Välj Skapa.
Not
När certifikatet har skapats kan det stå att det är inaktiverat. Uppdatera webbplatsen så visas certifikatet som aktiverat.
Gå till det nya certifikatet och välj raden för certifikatets senaste version. Välj Ladda ned i CER-format för att spara certifikatets offentliga nyckel.
Notera
Detta behöver inte göras på SQL Server-värddatorn. Vilken klient som helst som har åtkomst till Azure-portalen för det nästa steget.
I Azure-portalen går du till appregistreringen som skapades ovan och väljer certifikat lista
- Välj ladda upp certifikatet.
- Välj den offentliga nyckel (.cer fil) som laddades ned i det senaste steget.
- Välj Lägg till.
Hämta objekt-ID för Azure Arc-datorn i Azure-portalen.
Under Azure Arc-resurser>Datorerväljer du datorn.
I Översikthittar du JSON View.
Under Identitykopierar du värdet för principalId.
I portalen navigerar du till Azure Key Vault-instansen där certifikatet lagras och beviljar åtkomst till Azure Machine-resurserna. I navigeringsmenyn i Azure Key Vault går du till Inställningaroch Åtkomstkonfiguration. Detaljerade steg för att hantera rolltilldelningar finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Din upplevelse beror på åtkomstkonfigurationen för nyckelvalvet:
Så här använder du rollbaserad åtkomstkontroll i Azure (rekommenderas):
Lägg till följande roller i resursen.
- Key Vault-certifikatanvändare
- Nyckelvalvshemlighetsanvändare
Kontrollera rollerna på den här platsen:
Så här använder du Vault-åtkomstprincipen:
Välj Åtkomstprinciper på navigeringsmenyn.
Välj Skapa.
För Hemliga behörigheterväljer du Hämta>Lista.
För certifikatbehörigheterväljer du Hämta>lista.
Välj Nästa.
För sidan Principal söker du efter namnet på din maskin – Azure Arc-instans, som är värdnamnet för SQL Server-värden.
Välj Granska + skapa.
Kontrollera att värdet för Principal>Object ID matchar Principal ID för den hanterade identitet som tilldelats instansen.
Bekräfta genom att gå till resurssidan och välja JSON-vy längst upp till höger i rutan Essentials på sidan Översikt. Under identitet hittar du principalId
Välj Skapa.
Du måste välja Skapa för att säkerställa att behörigheterna tillämpas. För att säkerställa att behörigheter har lagrats uppdaterar du webbläsarfönstret och bekräftar att din Azure Arc-instans finns.
Konfigurera Microsoft Entra-autentisering för SQL Server via Azure-portalen
Anteckning
Du kan konfigurera Microsoft Entra-autentisering med någon av följande funktioner:
Gå till Azure-portalenoch välj SQL Server – Azure Arcoch välj instansen för din SQL Server-värd.
Kontrollera statusen för din SQL Server – Azure Arc resurs och se om den är ansluten genom att gå till menyn Egenskaper. Mer information finns i Verifiera SQL Server – Azure Arc-resurser.
Välj Microsoft Entra-ID och Purview- under Inställningar på resursmenyn.
Välj Set Admin för att öppna fönstret Microsoft Entra ID och välj ett konto att ställa in som administratörsinloggning för SQL Server.
Välj kundhanterat certifikat och Välj ett certifikat.
Välj Ändra certifikatoch välj din AKV-instans och ditt certifikat som du skapade tidigare i det nya fönstret.
Välj kundhanterad appregistrering.
Välj Ändra appregistreringoch välj den appregistrering som du skapade tidigare.
Välj Spara. Detta skickar en begäran till Arc-serveragenten, som konfigurerar Microsoft Entra-autentisering för den SQL Server-instansen.
Det tar flera minuter att ladda ned certifikat och konfigurera inställningar. När du har angett alla parametrar och valt Spara på Azure-portalen kan följande meddelande visas:
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
. Vänta tills spara-processen har bekräftats medSaved successfully
innan du försöker logga in på Microsoft Entra.Azure Arc-serveragenten kan bara uppdateras när den föregående åtgärden har slutförts. Det innebär att om du sparar en ny Microsoft Entra-konfiguration innan den senaste har slutförts kan det orsaka ett fel. Om du ser meddelandet utökat anrop misslyckades när du väljer Spara, vänta i 5 minuter och försök sedan igen.
Obs
När Microsoft Entra-administratörsinloggning tilldelas rollen
sysadmin
, ändras inte den tidigare inloggningen som fortfarande finns kvar som ensysadmin
, även om du byter Microsoft Entra-administratör i Azure-portalen. Om du vill ta bort inloggningen måste den tas bort manuellt.Microsoft Entra-administratörsändringen för SQL Server-instansen sker utan omstart av servern när processen har slutförts med SQL Server Azure Arc-agenten. För att den nya administratören ska visas i
sys.server_principals
måste SQL Server-instansen startas om och tills dess visas den gamla administratören. Den aktuella Microsoft Entra-administratören kan kontrolleras i Azure-portalen.
Skapa inloggningar och användare
När Azure Arc-agenten på SQL Server-värden har slutfört sin åtgärd, kommer det administratörskonto som valts i Microsoft Entra ID-menyn i portalen att bli en sysadmin
på SQL Server-instansen. Logga in på SQL Server med microsoft Entra-administratörskontot som har sysadmin
behörigheter på servern med hjälp av en klient som SSMS eller Azure Data Studio.
Anmärkning
Alla anslutningar till SQL Server som görs med Microsoft Entra-autentisering kräver en krypterad anslutning. Om databasadministratören (DBA) inte har konfigurerat ett betrott SSL/TLS-certifikat för servern misslyckas inloggningarna troligen med meddelandet Certifikatkedjan har utfärdats av en utfärdare som inte är betrodd. Om du vill åtgärda detta konfigurerar du antingen SQL Server-instansen så att den använder ett SSL/TLS-certifikat som är betrott av klienten eller väljer förtroendeservercertifikat i de avancerade anslutningsegenskaperna. Mer information finns i Aktivera krypterade anslutningar till databasmotorn.
Skapa inloggningssyntax
Samma syntax för att skapa Microsoft Entra-inloggningar och användare i Azure SQL Database och Azure SQL Managed Instance kan nu användas på SQL Server.
Not
På SQL Server kan alla konton som har behörigheten ALTER ANY LOGIN
eller ALTER ANY USER
skapa Microsoft Entra-inloggningar respektive användare. Kontot behöver inte vara en Microsoft Entra-inloggning.
Om du vill skapa en inloggning för ett Microsoft Entra-konto kör du följande T-SQL-kommando i master
-databasen:
CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;
För användare måste huvudnamnet ha formatet user@tenant.com
. I Microsoft Entra-ID är detta användarens huvudnamn. För alla andra kontotyper, till exempel Microsoft Entra-grupper eller program, är huvudnamnet namnet på Microsoft Entra-objektet.
Här är några exempel:
-- 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
Kör T-SQL-kommandot för att visa en lista över Microsoft Entra-inloggningar i master
-databasen:
SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');
Om du vill bevilja ett Microsoft Entra-användarmedlemskap till rollen sysadmin
(till exempel admin@contoso.com
) kör du följande kommandon i master
:
CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO
Den lagrade proceduren sp_addsrvrolemember
måste köras som medlem i serverrollen sysadmin
för SQL Server.
Skapa användarsyntax
Du kan skapa en databasanvändare från Microsoft Entra-ID antingen som en databasanvändare som är associerad med ett serverhuvudnamn (inloggning) eller som en innesluten databasanvändare.
Om du vill skapa en Microsoft Entra-användare från en Microsoft Entra-inloggning i en SQL Server-databas använder du följande syntax:
CREATE USER [principal_name] FROM LOGIN [principal_name];
Syntaxen för principal_name
är densamma som för inloggningar.
Här följer några exempel:
-- 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
Om du vill skapa en Microsoft Entra-innesluten databasanvändare, som är en användare som inte är kopplad till en serverinloggning, kan följande syntax köras:
CREATE USER [principal name] FROM EXTERNAL PROVIDER;
Använd Microsoft Entra-gruppnamnet eller Microsoft Entra-programnamnet som <principal name>
när du skapar en Microsoft Entra-databasanvändare från en grupp eller ett program.
Här följer några exempel:
-- 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
Kör följande T-SQL-kommando för att lista de användare som skapats i databasen:
SELECT * FROM sys.database_principals;
En ny databas har som standard behörigheten Anslut . Alla andra SQL Server-behörigheter måste uttryckligen beviljas av auktoriserade beviljare.
Microsoft Entra-gästkonton
Syntaxen CREATE LOGIN
och CREATE USER
stöder även gästanvändare. Till exempel, om testuser@outlook.com
bjuds in till contoso.com
som hyresgäst, kan den läggas till som inloggning i SQL Server med samma syntax som när du skapar någon annan Microsoft Entra-användare eller inloggning. När du skapar gästanvändare och inloggningar använder du gästkontots ursprungliga e-post, inte användarens huvudnamn i klientorganisationen. I exemplen tillhandahålls outlook.com
, även om kontot är registrerat hos klientorganisationen contoso.com
.
Skapa en gästanvändare från en befintlig inloggning
CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];
Skapa en gästanvändare som en innesluten användare
CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;
Ansluta med en autentiseringsmetod som stöds
SQL Server stöder flera Microsoft Entra-autentiseringsmetoder:
- Förvalt
- Användarnamn och lösenord
- Integrerad
- Universell med multifaktorautentisering
- Service Principal
- Hanterad identitet
- Åtkomsttoken
Använd någon av dessa metoder för att ansluta till SQL Server-instansen. Mer information finns i Microsoft Entra-autentisering för SQL Server.
Autentiseringsexempel med SSMS
Not
Trots att Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), för att undvika att störa befintliga miljöer, kvarstår Azure AD i vissa hårdkodade komponenter som UI-fält, anslutningsproviders, felkoder och cmdletar. I den här artikeln är de två namnen utbytbara.
Nedan visas ögonblicksbilden av anslutningssidan för SQL Server Management Studio (SSMS) med hjälp av autentiseringsmetoden Azure Active Directory – Universal med MFA.
Under autentiseringsprocessen måste en databas där användaren skapades uttryckligen anges i SSMS. Expandera Alternativ > Anslutningsegenskaper > Anslut till databas: database_name
.
För mer information, se Använda Microsoft Entra multifaktorautentisering.
SQL Server-verktyg som stöder Microsoft Entra-autentisering för Azure SQL stöds också för SQL Server 2022 (16.x).
Plats där Microsoft Entra ID-parametrar lagras
Varning
Microsoft Entra-ID-parametrar konfigureras av Azure Arc-agenten och bör inte konfigureras om manuellt.
I Linux lagras Microsoft Entra-ID-parametrar i mssql-conf
. Mer information om konfigurationsalternativen i Linux finns i Konfigurera SQL Server på Linux med verktyget mssql-conf.
Kända problem
- Uppdatering av certifikat sprids inte:
När Microsoft Entra-autentisering har konfigurerats för SQL Server, kan det hända att uppdatering av certifikatet i SQL Server – Azure Arc resursens Microsoft Entra-ID och Purview-fönstret inte propageras helt. Detta resulterar i att spara blir lyckad men det gamla värdet visas fortfarande. Gör följande för att uppdatera certifikatet:
- Välj Ta bort administratörs.
- Välj Spara.
- Välj Ange administratör och konfigurera om Microsoft Entra-autentisering med det nya certifikatet.
- Välj Spara.