Dela via


Konfigurera och hantera Microsoft Entra-autentisering med Azure SQL

Gäller för:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Den här artikeln visar hur du använder Microsoft Entra-ID för autentisering med Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics.

Anmärkning

Microsoft Entra-ID kallades tidigare Azure Active Directory (Azure AD).

Du kan också konfigurera Microsoft Entra-autentisering för SQL Server på virtuella Azure-datorer.

Förutsättningar

Om du vill använda Microsoft Entra-autentisering med din Azure SQL-resurs behöver du följande krav:

Skapa och fylla i en Microsoft Entra-klientorganisation

Innan du kan konfigurera Microsoft Entra-autentisering för din Azure SQL-resurs måste du skapa en Microsoft Entra-klientorganisation och fylla den med användare och grupper. Microsoft Entra-klienter kan hanteras helt i Azure eller användas för federation av en lokal Active Directory Domain Service.

Mer information finns i:

Ange Microsoft Entra-administratör

Om du vill använda Microsoft Entra-autentisering med din resurs måste microsoft Entra-administratören ha angetts. Även om stegen konceptuellt är desamma för Azure SQL Database, Azure Synapse Analytics och Azure SQL Managed Instance, beskriver det här avsnittet i detalj de olika API:erna och portalupplevelserna för att göra det per produkt.

Microsoft Entra-administratören kan också konfigureras när Azure SQL-resursen skapas. Om en Microsoft Entra-administratör redan har konfigurerats hoppar du över det här avsnittet.

Azure SQL Database och Azure Synapse Analytics

Om du anger Microsoft Entra-administratören kan Du använda Microsoft Entra-autentisering för din logiska server för Azure SQL Database och Azure Synapse Analytics. Du kan ange en Microsoft Entra-administratör för servern med hjälp av Azure-portalen, PowerShell, Azure CLI eller REST-API:er.

I Azure-portalen hittar du det logiska servernamnet

  • I fältet servernamn på sidan Översikt i Azure SQL Database.
  • I fältet servernamn på sidan Översikt för din fristående dedikerade SQL-pool i Azure Synapse Analytics.
  • I relevant SQL-slutpunktpå översiktssidan för din Azure Synapse Analytics-arbetsyta.

Följ dessa steg för att ange Microsoft Entra-administratören för din logiska server i Azure-portalen:

  1. I fönstret Kataloger + prenumerationer i Azure-portalen väljer du den katalog som innehåller din Azure SQL-resurs som aktuell katalog.

  2. Sök efter SQL-servrar och välj sedan den logiska servern för databasresursen för att öppna FÖNSTRET SQL-server .

    Skärmbild som visar hur du söker efter och väljer SQL-servrar.

  3. I fönstret SQL Server för den logiska servern väljer du Microsoft Entra-ID under Inställningar för att öppna fönstret Microsoft Entra-ID .

  4. I fönstret Microsoft Entra-ID väljer du Ange administratör för att öppna fönstret Microsoft Entra-ID .

    Skärmbild som visar alternativet att ange Microsoft Entra-administratören för SQL-servrar.

  5. Fönstret Microsoft Entra-ID visar alla användare, grupper och program i din aktuella katalog och gör att du kan söka efter namn, alias eller ID. Leta rätt på din önskade identitet för Microsoft Entra-administratören och välj den och välj sedan Välj för att stänga fönstret.

  6. Längst upp på sidan Microsoft Entra-ID för den logiska servern väljer du Spara.

    Skärmbild som visar alternativet att spara en Microsoft Entra-administratör.

    Objekt-ID visas bredvid administratörsnamnet för Microsoft Entra-användare och -grupper. Program-ID:t visas för program (tjänstens huvudnamn).

Det kan ta flera minuter att ändra administratören. Sedan visas den nya administratören i administrationsfältet Microsoft Entra .

Om du vill ta bort administratören väljer du Ta bort administratör överst på sidan Microsoft Entra-ID och sedan Spara. Om du tar bort Microsoft Entra-administratören inaktiveras Microsoft Entra-autentisering för din logiska server.

Anmärkning

Microsoft Entra-administratören lagras i serverns databas som en användare (databasens master huvudnamn). Eftersom databasens huvudnamn måste vara unika kan visningsnamnet för administratören inte vara samma som namnet på någon användare i serverns master databas. Om det redan finns en användare med namnet misslyckas konfigurationen av Microsoft Entra-administratören och återställs, vilket anger att namnet redan används.

Hanterad instans i Azure SQL

Om du ställer in Microsoft Entra-administratören aktiveras Microsoft Entra-autentisering för Azure SQL Managed Instance. Du kan ange en Microsoft Entra-administratör för din SQL-hanterade instans med hjälp av Azure-portalen, PowerShell, Azure CLI eller REST-API:er.

Om du vill ge sql-hanterad instans läsbehörighet till Microsoft Entra-ID med hjälp av Azure-portalen loggar du in som privilegierad rolladministratör och följer dessa steg:

  1. Välj ditt konto i det övre högra hörnet i Azure-portalen och välj sedan Växla kataloger för att bekräfta vilken katalog som är din aktuella katalog. Byt kataloger om det behövs.

    Skärmbild av Azure-portalen som visar var du byter katalog.

  2. I fönstret Kataloger + prenumerationer i Azure-portalen väljer du den katalog som innehåller den hanterade instansen som aktuell katalog.'''

  3. Sök efter SQL-hanterade instanser och välj sedan den hanterade instansen för att öppna fönstret SQL-hanterad instans . Välj sedan Microsoft Entra-ID under Inställningar för att öppna fönstret Microsoft Entra-ID för din instans.

    Skärmbild av Azure-portalen som visar microsoft Entra-administratörssidan öppen för den valda SQL-hanterade instansen.

  4. I fönstret Microsoft Entra-administratör väljer du Ange administratör i navigeringsfältet för att öppna fönstret Microsoft Entra-ID .

    Skärmbild som visar kommandot Ange administratör markerat på administratörssidan för Microsoft Entra för den valda SQL-hanterade instansen.

  5. I fönstret Microsoft Entra-ID söker du efter en användare, markerar kryssrutan bredvid den användare eller grupp som ska vara administratör och trycker sedan på Välj för att stänga fönstret och gå tillbaka till administratörssidan för Microsoft Entra för din hanterade instans.

    Fönstret Microsoft Entra-ID visar alla medlemmar och grupper i din aktuella katalog. Nedtonade användare eller grupper kan inte väljas eftersom de inte stöds som Microsoft Entra-administratörer. Välj den identitet som du vill tilldela som administratör.

  6. I navigeringsfältet på administratörssidan för Microsoft Entra för din hanterade instans väljer du Spara för att bekräfta Microsoft Entra-administratören.

    Skärmbild av administratörssidan för Microsoft Entra med knappen Spara på den översta raden bredvid knapparna Ange administratör och Ta bort administratör.

    När administratörsändringen har slutförts visas den nya administratören i administrationsfältet Microsoft Entra.

    Objekt-ID visas bredvid administratörsnamnet för Microsoft Entra-användare och -grupper. Program-ID:t visas för program (tjänstens huvudnamn).

Tips/Råd

Om du vill ta bort administratören väljer du Ta bort administratör överst på sidan Microsoft Entra-ID och väljer sedan Spara.

Tilldela Microsoft Graph-behörigheter

SQL Managed Instance behöver behörighet att läsa Microsoft Entra-ID för scenarier som att auktorisera användare som ansluter via medlemskap i säkerhetsgrupper och skapa nya användare. För att Microsoft Entra-autentisering ska fungera måste du tilldela den hanterade instansidentiteten till rollen Katalogläsare . Du kan göra detta med hjälp av Azure-portalen eller PowerShell.

För vissa åtgärder kräver Azure SQL Database och Azure Synapse Analytics även behörigheter för att köra frågor mot Microsoft Graph, som beskrivs i Microsoft Graph-behörigheter. Azure SQL Database och Azure Synapse Analytics har stöd för detaljerade Graph-behörigheter för dessa scenarier, medan SQL Managed Instance kräver rollen Katalogläsare . Detaljerade behörigheter och deras tilldelning beskrivs i detalj i aktivera tjänstens huvudnamn för att skapa Microsoft Entra-användare.

Katalogläsarroll

Sidan Microsoft Entra-ID för SQL Managed Instance i Azure-portalen visar en praktisk banderoll när instansen inte har tilldelats behörigheterna katalogläsare.

  1. Välj banderollen ovanpå Microsoft Entra-ID-sidan och ge behörighet till den systemtilldelade eller användartilldelade hanterade identiteten som representerar din instans. Endast en privilegierad rolladministratör eller en högre roll i klientorganisationen kan utföra den här åtgärden.

    Skärmbild av dialogrutan för att bevilja behörigheter till en SQL-hanterad instans för åtkomst till Microsoft Entra-ID med knappen Bevilja behörigheter markerad.

  2. När åtgärden lyckas visas ett meddelande om lyckat resultat i det övre högra hörnet:

    Skärmbild av ett meddelande som bekräftar att Läsbehörigheter för Microsoft Entra-ID har uppdaterats för den hanterade instansen.

Microsoft Entra-administratören kan nu användas för att skapa Microsoft Entra-serverhuvudkonton (inloggningar) och databashuvudnamn (användare). Mer information finns i Microsoft Entra-integrering med Azure SQL Managed Instance.

Skapa Microsoft Entra-huvudkonton i SQL

För att ansluta till en databas i SQL Database eller Azure Synapse Analytics med Microsoft Entra-autentisering måste ett huvudnamn konfigureras på databasen för den identiteten med minst behörigheten CONNECT .

Databasanvändarbehörigheter

När en databasanvändare skapas får den CONNECT som standard behörighet till databasen. En databasanvändare ärver också behörigheter under två omständigheter:

  • Om användaren är medlem i en Microsoft Entra-grupp som också har tilldelats behörigheter på servern.
  • Om användaren skapas från en inloggning ärver den de servertilldelade behörigheterna för den inloggning som gäller för databasen.

Hantering av behörigheter för server- och databashuvudnamn fungerar på samma sätt oavsett typ av huvudnamn (Microsoft Entra-ID, SQL-autentisering osv.). Vi rekommenderar att du beviljar behörigheter till databasroller i stället för att ge användarna direkt behörighet. Sedan kan användare läggas till i roller med lämpliga behörigheter. Detta förenklar hanteringen av långsiktiga behörigheter och minskar sannolikheten för att en identitet behåller tidigare åtkomst när det är lämpligt.

Mer information finns i:

Inhägnade databasanvändare

En innesluten databasanvändare är en typ av SQL-användare som inte är ansluten till en inloggning i master databasen. För att skapa en användare i en innesluten Microsoft Entra-databas, anslut till databasen med en Microsoft Entra-identitet som har minst behörigheten ALTER VALFRI ANVÄNDARE**. I följande T-SQL-exempel skapas ett databashuvudnamn Microsoft_Entra_principal_name från Microsoft Entra-ID.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Om du vill skapa en innesluten databasanvändare för en Microsoft Entra-grupp anger du visningsnamnet för gruppen:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Om du vill skapa en innesluten databasanvändare för en hanterad identitet eller tjänstens huvudnamn anger du identitetens visningsnamn:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Om du vill skapa en innesluten databasanvändare för en Microsoft Entra-användare anger du användarens huvudnamn för identiteten:

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Inloggningsbaserade användare

Anmärkning

Microsoft Entra-serverhuvudkonton (inloggningar) är för närvarande i offentlig förhandsversion för Azure SQL Database och Azure Synapse Analytics. Microsoft Entra-inloggningar är allmänt tillgängliga för Azure SQL Managed Instance och SQL Server 2022.

Microsoft Entra-serverhuvudkonton (eller inloggningar) stöds, vilket innebär att oberoende databasanvändare inte krävs. Databashuvudkonton (användare) kan skapas baserat på ett serverhuvudnamn, vilket innebär att Microsoft Entra-användare kan ärva tilldelade behörigheter på servernivå för en inloggning.

CREATE USER [appName] FROM LOGIN [appName];

Mer information finns i Översikt över SQL Managed Instance. Syntax för att skapa Microsoft Entra-serverhuvudkonton (inloggningar) finns i SKAPA INLOGGNING.

Externa användare

Du kan inte direkt skapa en databasanvändare för en identitet som hanteras i en annan Microsoft Entra-klientorganisation än den som är associerad med din Azure-prenumeration. Användare i andra kataloger kan dock importeras till den associerade katalogen som externa användare. De kan sedan användas för att skapa oberoende databasanvändare som har åtkomst till databasen. Externa användare kan också få åtkomst via medlemskap i Microsoft Entra-grupper.

Exempel: Så här skapar du en oberoende databasanvändare som representerar en federerad eller hanterad Domänanvändare från Microsoft Entra:

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

Ett federerat domänanvändarkonto som importeras till en hanterad domän som extern användare måste använda den hanterade domänidentiteten.

Namnöverväganden

Specialtecken som kolon : eller et-tecken & när de ingår som användarnamn i T-SQL CREATE LOGIN och CREATE USER -instruktioner stöds inte.

Microsoft Entra-ID och Azure SQL skiljer sig åt i användarhanteringsdesignen på ett viktigt sätt: Med Microsoft Entra-ID kan visningsnamn dupliceras i en klientorganisation, medan Azure SQL kräver att alla serverhuvudnamn på en server eller instans och alla databasobjekt i en databas har ett unikt namn. Eftersom Azure SQL direkt använder Microsoft Entra-visningsnamnet för identiteten när du skapar huvudkonton kan detta resultera i fel när användare skapas. För att lösa det här problemet har Azure SQL släppt förbättringen WITH OBJECT_ID för närvarande i förhandsversionen, vilket gör att användarna kan ange Microsoft Entra-objekt-ID för identiteten som läggs till på servern eller instansen.

Microsoft Graph-behörigheter

Kommandot CREATE USER ... FROM EXTERNAL PROVIDER kräver Azure SQL-åtkomst till Microsoft Entra-ID (den "externa providern") för den inloggade användarens räkning. Ibland uppstår omständigheter som gör att Microsoft Entra-ID returnerar ett undantag till Azure SQL.

  • Du kan stöta på SQL-fel 33134, som innehåller det Microsoft Entra-ID-specifika felmeddelandet. Felet säger vanligtvis att åtkomst nekas, att användaren måste registrera sig i MFA för att få åtkomst till resursen, eller att åtkomst mellan program från första part måste hanteras via förautentisering. I de första två fallen orsakas problemet vanligtvis av principer för villkorsstyrd åtkomst som anges i användarens Microsoft Entra-klientorganisation: de hindrar användaren från att komma åt den externa providern. Om du uppdaterar principerna för villkorsstyrd åtkomst för att tillåta åtkomst till programmet "00000003-0000-0000-c000-000000000000" (program-ID för Microsoft Graph API) bör problemet lösas. Om felet säger att åtkomst mellan program från första part måste hanteras via förauktorisering beror problemet på att användaren är inloggad som tjänstens huvudnamn. Kommandot bör lyckas om det körs av en användare i stället.
  • Om tidsgränsen för anslutningen har upphört att gälla kan du behöva ange parametern TransparentNetworkIPResolution för anslutningssträngen till false. Mer information finns i Timeout-problem med anslutning med .NET Framework 4.6.1 – TransparentNetworkIPResolution.

Mer information om hur du skapar oberoende databasanvändare baserat på Microsoft Entra-identiteter finns i SKAPA ANVÄNDARE.

Konfigurera multifaktorautentisering

För förbättrad säkerhet för din Azure SQL-resurs kan du överväga att konfigurera multifaktorautentisering (MFA) som uppmanar användaren att använda en andra alternativ metod för att autentisera till databasen, till exempel ett telefonsamtal eller en autentiseringsapp.

Om du vill använda multifaktorautentisering med din Azure SQL-resurs aktiverar du först multifaktorautentisering och använder sedan en princip för villkorsstyrd åtkomst för att framtvinga MFA för din Azure SQL-resurs.

Ansluta med Microsoft Entra

När Microsoft Entra-autentisering har konfigurerats kan du använda den för att ansluta till din SQL-resurs med Microsoft-verktyg som SQL Server Management Studio och SQL Server Data Tools och konfigurera klientprogram för att ansluta med Hjälp av Microsoft Entra-identiteter.

Felsöka Microsoft Entra-autentisering

Mer information om felsökningsproblem finns i Blogg: Felsöka problem som rör Microsoft Entra-autentisering med Azure SQL Database och Azure Synapse.