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 skapar och fyller i en Microsoft Entra-klientorganisation och använder Microsoft Entra-ID (tidigare Azure Active Directory) med Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics. En översikt finns i Microsoft Entra-autentisering.

Kommentar

Microsoft Entra-ID är det nya namnet för Azure Active Directory (Azure AD). Vi uppdaterar dokumentationen just nu.

Microsoft Entra-autentiseringsmetoder

Microsoft Entra ID stöder följande autentiseringsmetoder:

  • Microsoft Entra-molnbaserade identiteter
  • Microsoft Entra-hybrididentiteter som stöder:
    • Molnautentisering med två alternativ i kombination med sömlös enkel inloggning (SSO)
      • Microsoft Entra-lösenordshashautentisering
      • Microsoft Entra-direktautentisering
    • Federerad autentisering

Mer information om Microsoft Entra-autentiseringsmetoder och vilken du vill välja finns i Välja rätt autentiseringsmetod för din Hybrididentitetslösning för Microsoft Entra.

Mer information om Microsoft Entra-hybrididentiteter, konfiguration och synkronisering finns i:

Skapa och fylla i en Microsoft Entra-klientorganisation

Skapa en Microsoft Entra-klientorganisation och fyll i 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:

Associera eller lägga till en Azure-prenumeration till Microsoft Entra-ID

  1. Associera din Azure-prenumeration med Microsoft Entra-ID genom att göra katalogen till en betrodd katalog för Den Azure-prenumeration som är värd för databasen. Mer information finns i Associera eller lägga till en Azure-prenumeration i din Microsoft Entra-klientorganisation.

  2. Använd katalogväxlaren i Azure-portalen för att växla till den prenumeration som är associerad med domänen.

    Viktigt!

    Varje Azure-prenumeration har en förtroenderelation med en Microsoft Entra-instans. Den litar på att katalogen autentiserar användare, tjänster och enheter. Flera prenumerationer kan lita på samma katalog, men en prenumeration litar bara på en katalog. Den här förtroenderelationen som en prenumeration har med en katalog skiljer sig från en prenumeration med alla andra resurser i Azure (webbplatser, databaser och så vidare), som mer liknar underordnade resurser i en prenumeration. Om en prenumeration går ut stoppas även åtkomsten till de resurser som är associerade med prenumerationen. Katalogen finns dock kvar i Azure och du kan associera en annan prenumeration med katalogen och fortsätta att hantera kataloganvändare. Mer information om resurser finns i Förstå resursåtkomst i Azure. Mer information om den här betrodda relationen finns i Så här associerar eller lägger du till en Azure-prenumeration i Microsoft Entra-ID.

Microsoft Entra-administratör med en server i SQL Database

Varje logisk server i Azure (som är värd för SQL Database eller Azure Synapse) börjar med ett enda serveradministratörskonto som är administratör för hela servern. Skapa ett andra administratörskonto som ett Microsoft Entra-konto. Det här huvudkontot skapas som en innesluten master databasanvändare i serverns databas. Administratörskonton är medlemmar i den db_owner rollen i varje användardatabas och varje användardatabas anges som dbo-användare . Mer information om administratörskonton finns i Hantera databaser och inloggningar.

Microsoft Entra-administratören måste konfigureras för både de primära och sekundära servrarna när du använder Microsoft Entra-ID med geo-replikering. Om en server inte har någon Microsoft Entra-administratör får Microsoft Entra-inloggningar och användare ett Cannot connect serverfel.

Kommentar

Användare som inte är baserade på ett Microsoft Entra-konto (inklusive serveradministratörskontot) kan inte skapa Microsoft Entra-baserade användare eftersom de inte har behörighet att validera föreslagna databasanvändare med Microsoft Entra-ID.

Etablera Microsoft Entra-administratör (SQL Managed Instance)

Viktigt!

Följ bara de här stegen om du etablerar en Azure SQL Managed Instance. Den här åtgärden kan bara köras av global administratör eller privilegierad rolladministratör i Microsoft Entra-ID.

Du kan tilldela rollen Katalogläsare till en grupp i Microsoft Entra-ID. Gruppägarna kan sedan lägga till den hanterade instansidentiteten som medlem i den här gruppen, vilket gör att du kan etablera en Microsoft Entra-administratör för SQL Managed Instance. Mer information om den här funktionen finns i Katalogläsarrollen i Microsoft Entra för Azure SQL.

Din SQL Managed Instance behöver behörighet att läsa Microsoft Entra-ID för att utföra uppgifter som autentisering av användare genom medlemskap i säkerhetsgrupper eller skapande av nya användare. För att detta ska fungera måste du ge SQL Managed Instance behörighet att läsa Microsoft Entra-ID. Du kan göra detta med hjälp av Azure-portalen eller PowerShell.

Azure Portal

Om du vill ge din SQL Managed Instance läsbehörighet till Microsoft Entra-ID med hjälp av Azure-portalen loggar du in som global administratö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.

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

  2. Välj rätt Microsoft Entra-katalog som aktuell katalog.

    Det här steget länkar prenumerationen som är associerad med Microsoft Entra-ID till SQL Managed Instance, vilket säkerställer att Microsoft Entra-klientorganisationen och SQL Managed Instance använder samma prenumeration.

  3. Nu kan du välja din Microsoft Entra-administratör för din SQL Managed Instance. För det går du till resursen för den hanterade instansen i Azure-portalen och väljer Microsoft Entra-administratör under Inställningar.

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

  4. Välj banderollen överst på administratörssidan för Microsoft Entra och ge den aktuella användaren behörighet.

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

  5. När åtgärden har slutförts visas följande meddelande i det övre högra hörnet:

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

  6. På sidan Microsoft Entra-administratör väljer du Ange administratör i navigeringsfältet för att öppna fönstret Microsoft Entra-ID.

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

  7. 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. Se listan över administratörer som stöds i Microsoft Entra-funktioner och begränsningar. Rollbaserad åtkomstkontroll i Azure (Azure RBAC) gäller endast för Azure-portalen och sprids inte till SQL Database, SQL Managed Instance eller Azure Synapse.

  8. 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.

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

    Det kan ta flera minuter att ändra administratören. Sedan visas den nya administratören i administrationsrutan för 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).

När du har etablerat en Microsoft Entra-administratör för din SQL Managed Instance kan du börja skapa Microsoft Entra-serverhuvudkonton (inloggningar) med syntaxen CREATE LOGIN . Mer information finns i Översikt över SQL Managed Instance.

Dricks

Om du vill ta bort en administratör senare väljer du Ta bort administratör överst på administratörssidan för Microsoft Entra och väljer sedan Spara.

PowerShell

Kör det här skriptet om du vill använda PowerShell för att ge din SQL Managed Instance läsbehörighet till Microsoft Entra-ID:

# 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 för SQL Managed Instance

Om du vill köra PowerShell-cmdletar måste du ha Azure PowerShell installerat och igång. Mer information finns i Så här installerar och konfigurerar du Azure PowerShell.

Viktigt!

Azure SQL Managed Instance stöder fortfarande Modulen PowerShell Azure Resource Manager (RM), men all framtida utveckling gäller för Az.Sql-modulen. AzureRM-modulen får felkorrigeringar fram till åtminstone december 2020. Argumenten för kommandona i Az-modulen och i AzureRm-modulerna är väsentligen identiska. Mer information om deras kompatibilitet finns i Introduktion till den nya Azure PowerShell Az-modulen.

Om du vill etablera en Microsoft Entra-administratör kör du följande Azure PowerShell-kommandon:

  • Anslut-AzAccount
  • Select-AzSubscription

De cmdletar som används för att etablera och hantera Microsoft Entra-administratören för din SQL Managed Instance visas i följande tabell:

Cmdlet-namn beskrivning
Set-AzSqlInstanceActiveDirectoryAdministrator Etablerar en Microsoft Entra-administratör för SQL Managed Instance i den aktuella prenumerationen. (Måste vara från den aktuella prenumerationen)
Remove-AzSqlInstanceActiveDirectoryAdministrator Tar bort en Microsoft Entra-administratör för SQL Managed Instance i den aktuella prenumerationen.
Get-AzSqlInstanceActiveDirectoryAdministrator Returnerar information om en Microsoft Entra-administratör för SQL Managed Instance i den aktuella prenumerationen.

Följande kommando hämtar information om en Microsoft Entra-administratör för en SQL Managed Instance med namnet ManagedInstance01 som är associerad med en resursgrupp med namnet ResourceGroup01.

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

Följande kommando etablerar en Microsoft Entra-administratörsgrupp med namnet DBAs för SQL Managed Instance med namnet ManagedInstance01. Den här servern är associerad med resursgruppen ResourceGroup01.

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

Följande kommando tar bort Microsoft Entra-administratören för SQL Managed Instance med namnet ManagedInstanceName01 som är associerad med resursgruppen ResourceGroup01.

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

Etablera Microsoft Entra-administratör (SQL Database)

Viktigt!

Följ bara de här stegen om du etablerar en server för SQL Database eller Azure Synapse.

Följande två procedurer visar hur du etablerar en Microsoft Entra-administratör för servern i Azure-portalen och med hjälp av PowerShell.

Azure Portal

  1. I det övre högra hörnet i Azure-portalen väljer du ditt konto och väljer sedan Växla katalog för att öppna sidan Kataloger + prenumerationer . Välj Katalogen Microsoft Entra, som innehåller din Azure SQL Database eller Azure Synapse Analytics som aktuell katalog.

  2. Sök efter SQL-servrar och välj den logiska servern för din Azure SQL Database.

    Search for and select SQL servers.

    Kommentar

    På den här sidan, innan du väljer SQL-servrar, kan du välja stjärnan bredvid namnet för att favoritkategorin och lägga till SQL-servrar i den vänstra navigeringsmenyn.

    Överväg även att besöka din Azure SQL-instrumentpanel.

  3. På sidan SQL-server väljer du Microsoft Entra-ID.

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

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

  5. I fönstret Microsoft Entra-ID söker du efter en användare och väljer sedan den användare eller grupp som ska vara administratör. Använd Välj för att bekräfta ditt val och stäng fönstret för att återgå till den logiska serverns Microsoft Entra-ID-sida . (Den Microsoft Entra ID-fönstret 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. Se listan över administratörer som stöds i avsnittet Microsoft Entra-funktioner och begränsningar i Använda Microsoft Entra-autentisering med SQL Database eller Azure Synapse.) Rollbaserad åtkomstkontroll i Azure (Azure RBAC) gäller endast för portalen och sprids inte till servern.

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

    Screenshot shows the option to save a Microsoft Entra admin.

    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.

Kommentar

När du konfigurerar Microsoft Entra-administratören kan det nya administratörsnamnet (användaren eller gruppen) inte redan finnas i den virtuella master databasen som en serverautentiseringsanvändare. Om den finns misslyckas och återställs konfigurationen av Microsoft Entra-administratören, vilket anger att en sådan administratör (namn) redan finns. Eftersom en serverautentiseringsanvändare inte är en del av Microsoft Entra-ID:t misslyckas alla försök att ansluta till servern med Microsoft Entra-autentisering.

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

PowerShell för SQL Database och Azure Synapse

Om du vill köra PowerShell-cmdletar måste du ha Azure PowerShell installerat och igång. Mer information finns i Så här installerar och konfigurerar du Azure PowerShell. Om du vill etablera en Microsoft Entra-administratör kör du följande Azure PowerShell-kommandon:

  • Anslut-AzAccount
  • Select-AzSubscription

Cmdletar som används för att etablera och hantera Microsoft Entra-administratörer för SQL Database och Azure Synapse:

Cmdlet-namn beskrivning
Set-AzSqlServerActiveDirectoryAdministrator Etablerar en Microsoft Entra-administratör för servern som är värd för SQL Database eller Azure Synapse. (Måste vara från den aktuella prenumerationen)
Remove-AzSqlServerActiveDirectoryAdministrator Tar bort en Microsoft Entra-administratör för servern som är värd för SQL Database eller Azure Synapse.
Get-AzSqlServerActiveDirectoryAdministrator Returnerar information om en Microsoft Entra-administratör som för närvarande har konfigurerats för servern som är värd för SQL Database eller Azure Synapse.

Använd PowerShell-kommandot get-help för att se mer information om vart och ett av dessa kommandon. Exempel: get-help Set-AzSqlServerActiveDirectoryAdministrator

Följande skript etablerar en Microsoft Entra-administratörsgrupp med namnet DBA_Group (objekt-ID 40b79501-b343-44ed-9ce7-da4c8cc7353f) för demo_server-servern i en resursgrupp med namnet Grupp-23:

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

Indataparametern DisplayName accepterar antingen visningsnamnet för Microsoft Entra-ID:t eller användarens huvudnamn. Till exempel DisplayName="John Smith" och DisplayName="johns@contoso.com". För Microsoft Entra-grupper stöds endast Microsoft Entra ID-visningsnamnet.

Kommentar

Azure PowerShell-kommandot Set-AzSqlServerActiveDirectoryAdministrator hindrar dig inte från att etablera Microsoft Entra-administratörer för användare som inte stöds. En användare som inte stöds kan etableras men kan inte ansluta till en databas.

I följande exempel används det valfria ObjectID:

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

Kommentar

ObjectID krävs när DisplayName inte är unikt. Om du vill hämta värdena ObjectID och DisplayName kan du visa egenskaperna för en användare eller grupp i avsnittet Microsoft Entra-ID i Azure-portalen.

I följande exempel returneras information om den aktuella Microsoft Entra-administratören för servern:

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

Följande exempel tar bort en Microsoft Entra-administratör:

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

Kommentar

Du kan också etablera en Microsoft Entra-administratör med hjälp av REST-API:erna. Mer information finns i Service Management REST API Reference and Operations for Azure SQL Database Operations for Azure SQL Database

Konfigurera dina klientdatorer

Kommentar

System.Data.SqlClient använder Azure Active Directory Authentication Library (ADAL), som är inaktuellt. Om du använder namnområdet System.Data.SqlClient för Microsoft Entra-autentisering migrerar du program till Microsoft.Data.SqlClient och Microsoft Authentication Library (MSAL).. Mer information finns i Använda Microsoft Entra-autentisering med SqlClient.

Om du måste fortsätta att använda ADAL.DLL i dina program kan du använda länkarna i det här avsnittet för att installera den senaste ODBC- eller OLE DB-drivrutinen, som innehåller det senaste ADAL.DLL biblioteket.

På alla klientdatorer från vilka dina program eller användare ansluter till SQL Database eller Azure Synapse med hjälp av Microsoft Entra-identiteter måste du installera följande programvara:

Du kan uppfylla dessa krav genom att:

  • Installationen av den senaste versionen av SQL Server Management Studio eller SQL Server Data Tools uppfyller kraven för .NET Framework 4.6.
    • SSMS installerar x86-versionen av ADAL.DLL.
    • SSDT installerar amd64-versionen av ADAL.DLL.
    • Den senaste Visual Studio från Visual Studio Downloads uppfyller .NET Framework 4.6-kravet men installerar inte den nödvändiga amd64-versionen av ADAL.DLL.

Skapa inneslutna användare mappade till Microsoft Entra-identiteter

Det här avsnittet går igenom kraven och viktiga överväganden för att använda Microsoft Entra-autentisering med Azure SQL Database, Azure SQL Managed Instance och Azure Synapse.

  • Microsoft Entra-autentisering med SQL Database och Azure Synapse kräver att oberoende databasanvändare används baserat på en Microsoft Entra-identitet. En innesluten master databasanvändare har ingen inloggning i databasen och mappar till en identitet i Microsoft Entra-ID:t som är associerat med databasen. Microsoft Entra-identiteten kan vara ett enskilt användarkonto, en grupp eller ett program. Mer information om användare av oberoende databas finns i avsnittet om användare av oberoende databas – så gör du din databas portabel. Mer information om hur du skapar oberoende databasanvändare baserat på Microsoft Entra-identiteter finns i CREATE USER (Transact-SQL).

  • Eftersom SQL Managed Instance stöder Microsoft Entra-serverhuvudkonton (inloggningar) krävs det inte att använda oberoende databasanvändare. På så sätt kan du skapa inloggningar från Microsoft Entra-användare, grupper eller program. Det innebär att du kan autentisera med din SQL Managed Instance med hjälp av Microsoft Entra-serverinloggningen i stället för en innesluten databasanvändare. Mer information finns i Översikt över SQL Managed Instance. Syntax för att skapa Microsoft Entra-serverhuvudkonton (inloggningar) finns i SKAPA INLOGGNING.

  • Databasanvändare (utom administratörer) kan inte skapa en databas med hjälp av Azure-portalen. Microsoft Entra-roller sprids inte till databasen i SQL Database, SQL Managed Instance eller Azure Synapse. Microsoft Entra-roller hanterar Azure-resurser och gäller inte för databasbehörigheter. Rollen SQL Server-deltagare beviljar till exempel inte åtkomst för att ansluta till databasen i SQL Database, SQL Managed Instance eller Azure Synapse. Åtkomstbehörigheten måste beviljas direkt i databasen med hjälp av Transact-SQL-instruktioner.

  • 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 SQL Database. Externa användare kan också få åtkomst via medlemskap i Microsoft Entra-grupper som innehåller databasanvändare.

  • 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.

Viktigt!

Microsoft Entra-användare och tjänsthuvudnamn (Microsoft Entra-program) som är medlemmar i fler än 2048 Microsoft Entra-säkerhetsgrupper stöds inte för att logga in på databasen i SQL Database, SQL Managed Instance eller Azure Synapse.

Om du vill skapa en Microsoft Entra-ID-baserad innesluten databasanvändare (förutom serveradministratören som äger databasen) ansluter du till databasen med en Microsoft Entra-identitet som användare med minst behörigheten ALTER ANY USER . I följande T-SQL-exempel Microsoft_Entra_principal_name kan vara användarens huvudnamn för en Microsoft Entra-användare eller visningsnamnet för en Microsoft Entra-grupp.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

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 [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

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

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Så här skapar du en innesluten databasanvändare som representerar ett program som ansluter med en Microsoft Entra-token:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Kommandot CREATE USER ... FROM EXTERNAL PROVIDER kräver 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 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 du får en tidsgräns för Anslut ion har upphört att gälla kan du behöva ange parametern TransparentNetworkIPResolution för anslutningssträng till false. Mer information finns i timeoutproblem för Anslut ion med .NET Framework 4.6.1 – TransparentNetworkIPResolution.

Viktigt!

Om du tar bort Microsoft Entra-administratören för servern förhindras alla Microsoft Entra-autentiseringsanvändare från att ansluta till servern. Vid behov kan en SQL Database-administratör släppa oanvändbara Microsoft Entra-användare manuellt.

När du skapar en databasanvändare får den användaren behörigheten CONNECT och kan ansluta till databasen som medlem i public-rollen. Inledningsvis beviljas de enda behörigheter som är tillgängliga för användaren till public-rollen och till alla Microsoft Entra-grupper där de är medlemmar. Att bevilja behörigheter till Microsoft Entra-baserade inneslutna databasanvändare fungerar på samma sätt som att ge behörighet till andra typer av användare. Vi rekommenderar att du beviljar behörigheter till databasroller och lägger till användare i dessa roller i stället för att direkt bevilja behörigheter till enskilda användare. Mer information finns i Grundläggande om behörigheter för databasmotorn. Mer information om särskilda SQL Database-roller finns i Hantera databaser och inloggningar i Azure SQL Database. Ett federerat domänanvändarkonto som importeras till en hanterad domän som extern användare måste använda den hanterade domänidentiteten.

Microsoft Entra-användare markeras i databasmetadata med typ E (EXTERNAL_USER) och för grupper med typ X (EXTERNAL_GROUPS). Mer information finns i sys.database_principals.

Anslut till databasen med SSMS eller SSDT

Om du vill bekräfta att Microsoft Entra-administratören har konfigurerats korrekt ansluter du till master databasen med hjälp av Microsoft Entra-administratörskontot. Om du vill skapa en Microsoft Entra-baserad innesluten databasanvändare ansluter du till databasen med en Microsoft Entra-identitet med åtkomst till databasen och åtminstone behörigheten ALTER ANY USER .

Använda en Microsoft Entra-identitet för att ansluta med SSMS eller SSDT

Följande procedurer visar hur du ansluter till SQL Database med en Microsoft Entra-identitet med hjälp av SQL Server Management Studio (SSMS) eller SQL Server Database Tools (SSDT).

Microsoft Entra-ID – integrerat

Använd den här metoden om du är inloggad i Windows med dina Microsoft Entra-autentiseringsuppgifter från en federerad domän eller en hanterad domän som har konfigurerats för sömlös enkel inloggning för direkt- och lösenordshashautentisering. Mer information finns i Sömlös enkel inloggning med Microsoft Entra.

  1. Starta SSMS eller SSDT och i dialogrutan Anslut till server (eller Anslut till databasmotorn) går du till rutan Autentisering och väljer Azure Active Directory – Integrerad. Du behöver inte ange ett lösenord eftersom dina befintliga autentiseringsuppgifter visas för anslutningen.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Välj knappen Alternativ och på sidan egenskaper för Anslut ion skriver du namnet på den användardatabas som du vill ansluta till i rutan Anslut till databas.

    Screenshot from SSMS of the Options menu.

Microsoft Entra-ID – Lösenord

Använd den här metoden när du ansluter med ett Microsoft Entra-huvudnamn med hjälp av den Microsoft Entra-hanterade domänen. Du kan också använda den för federerade konton utan åtkomst till domänen, till exempel när du arbetar via fjärranslutning.

Använd den här metoden för att autentisera till databasen i SQL Database eller SQL Managed Instance med microsoft entra-molnbaserade identitetsanvändare eller de som använder Microsoft Entra-hybrididentiteter. Den här metoden stöder användare som vill använda sina Windows-autentiseringsuppgifter, men deras lokala dator är inte ansluten till domänen (till exempel med fjärråtkomst). I det här fallet kan en Windows-användare ange sitt domänkonto och lösenord och kan autentisera till databasen i SQL Database, SQL Managed Instance eller Azure Synapse.

  1. Starta SSMS eller SSDT och i dialogrutan Anslut till server (eller Anslut till databasmotorn) går du till rutan Autentisering och väljer Azure Active Directory – Lösenord.

  2. I rutan Användarnamn skriver du ditt Microsoft Entra-användarnamn i formatet username\@domain.com. Användarnamn måste vara ett konto från Microsoft Entra-ID eller ett konto från en hanterad eller federerad domän med Microsoft Entra-ID.

  3. I rutan Lösenord skriver du ditt användarlösenord för Microsoft Entra-kontot eller det hanterade/federerade domänkontot.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Välj knappen Alternativ och på sidan egenskaper för Anslut ion skriver du namnet på den användardatabas som du vill ansluta till i rutan Anslut till databas. (Se bilden i föregående alternativ.)

Microsoft Entra-ID – Universellt med MFA

Använd den här metoden för interaktiv autentisering med multifaktorautentisering (MFA), där lösenordet begärs interaktivt. Den här metoden kan användas för att autentisera till databaser i SQL Database, SQL Managed Instance och Azure Synapse för identitetsanvändare med endast Microsoft Entra-moln, eller för dem som använder Microsoft Entra-hybrididentiteter.

Mer information finns i Använda Multi-Factor Microsoft Entra-autentisering med SQL Database och Azure Synapse (SSMS-stöd för MFA).

Microsoft Entra-ID – Tjänstens huvudnamn

Använd den här metoden för att autentisera till databasen i SQL Database eller SQL Managed Instance med Microsoft Entra-tjänstens huvudnamn (Microsoft Entra-program). Mer information finns i Microsoft Entra-tjänstens huvudnamn med Azure SQL.

Microsoft Entra-ID – Hanterad identitet

Använd den här metoden för att autentisera till databasen i SQL Database eller SQL Managed Instance med Microsoft Entra-hanterade identiteter. Mer information finns i Hanterade identiteter i Microsoft Entra för Azure SQL.

Microsoft Entra-ID – standard

Alternativet Standardautentisering med Microsoft Entra-ID möjliggör autentisering som utförs via lösenordslösa och icke-interaktiva mekanismer, inklusive hanterade identiteter.

Använda Microsoft Entra-identitet för att ansluta med azure-portalens frågeredigerare för Azure SQL Database

Mer information om Azure-portalens frågeredigerare för Azure SQL Database finns i Snabbstart: Använd Azure-portalens frågeredigerare för att köra frågor mot Azure SQL Database.

  1. Gå till DIN SQL-databas i Azure-portalen. Besök till exempel din Azure SQL-instrumentpanel.

  2. På sidan Översikt över SQL-databas i Azure-portalen väljer du Frågeredigeraren på den vänstra menyn.

  3. På inloggningsskärmen under Välkommen till SQL Database Power Query-redigeraren väljer du Fortsätt som <användare eller grupp-ID>.

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

Använda en Microsoft Entra-identitet för att ansluta från ett klientprogram

Följande procedurer visar hur du ansluter till en SQL Database med en Microsoft Entra-identitet från ett klientprogram. Det här är inte en omfattande lista över autentiseringsmetoder när du använder en Microsoft Entra-identitet. Mer information finns i Anslut till Azure SQL med Microsoft Entra-autentisering och SqlClient.

Microsoft Entra-integrerad autentisering

Om du vill använda integrerad Windows-autentisering måste domänens Active Directory federeras med Microsoft Entra-ID, eller vara en hanterad domän som är konfigurerad för sömlös enkel inloggning för direkt- eller lösenordshashautentisering. Mer information finns i Sömlös enkel inloggning med Microsoft Entra.

Klientprogrammet (eller en tjänst) som ansluter till databasen måste köras på en domänansluten dator under en användares domänautentiseringsuppgifter.

Om du vill ansluta till en databas med integrerad autentisering och en Microsoft Entra-identitet måste nyckelordet Autentisering i databasen anslutningssträng anges till Active Directory Integrated. Ersätt <database_name> med databasnamnet. Följande C#-kodexempel använder ADO .NET.

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

Nyckelordet anslutningssträng Integrated Security=True stöds inte för anslutning till Azure SQL Database. När du skapar en ODBC-anslutning måste du ta bort blanksteg och ange autentisering till ActiveDirectoryIntegrated.

Microsoft Entra-lösenordsautentisering

Om du vill ansluta till en databas med microsoft entra-identitetsanvändarkonton i molnet, eller de som använder Microsoft Entra-hybrididentiteter, måste nyckelordet Autentisering vara inställt på Active Directory Password. Anslutningssträng måste innehålla nyckelord och värden för användar-ID/UID och lösenord/PWD. Ersätt <database_name>, <email_address>och <password> med lämpliga värden. Följande C#-kodexempel använder ADO .NET.

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();

Läs mer om Microsoft Entra-autentiseringsmetoder med demokodexempel som är tillgängliga på GitHub Demo för Microsoft Entra-autentisering.

Åtkomsttoken för Microsoft Entra-ID

Med den här autentiseringsmetoden kan mellannivåtjänster hämta JSON-webbtoken (JWT) för att ansluta till databasen i SQL Database, SQL Managed Instance eller Azure Synapse genom att hämta en token från Microsoft Entra-ID. Den här metoden möjliggör olika programscenarier, inklusive tjänstidentiteter, tjänstens huvudnamn och program med hjälp av certifikatbaserad autentisering. Du måste utföra fyra grundläggande steg för att använda Microsoft Entra-tokenautentisering:

  1. Registrera ditt program med Microsoft Entra-ID och hämta klient-ID:t för din kod.
  2. Skapa en databasanvändare som representerar programmet. (Slutfördes tidigare i avsnittet Skapa inneslutna användare som mappats till Microsoft Entra-identiteter.)
  3. Skapa ett certifikat på klientdatorn kör programmet.
  4. Lägg till certifikatet som en nyckel för ditt program.

Exempel på anslutningssträng. Ersätt <database_name> med databasnamnet:

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

Mer information finns i SQL Server-säkerhetsbloggen. Information om hur du lägger till ett certifikat finns i Kom igång med certifikatbaserad autentisering i Microsoft Entra-ID.

sqlcmd

Följande instruktioner ansluter med version 13.1 av sqlcmd. Ladda ned Microsoft Command Line Utilities 14.0 för SQL Server.

Kommentar

sqlcmd-G med kommandot fungerar inte med systemidentiteter och kräver en inloggning med användarens huvudnamn.

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

Felsöka Microsoft Entra-autentisering

Vägledning om felsökning av problem med Microsoft Entra-autentisering finns i Blogg: Felsöka problem som rör Azure AD-autentisering med Azure SQL DB och DW.