Ansluta till Azure SQL Database med Microsoft Entra multifaktorautentisering
gäller för:Azure SQL Database
SQL-databas i Fabric
Den här artikeln innehåller ett C#-program som ansluter till Azure SQL Database. Programmet använder interaktiv lägesautentisering, som stöder multifaktorautentisering med hjälp av Microsoft Entra-ID (tidigare Azure Active Directory).
Mer information om stöd för multifaktorautentisering för SQL-verktyg finns i Använda Microsoft Entra multifaktorautentisering.
Note
Microsoft Entra ID tidigare kallades Azure Active Directory (Azure AD).
Multifaktorautentisering för Azure SQL Database
Active Directory Interactive
-autentisering stöder multifaktorautentisering med hjälp av Microsoft.Data.SqlClient för att ansluta till Azure SQL-datakällor. I ett klientprogram i C# anvisar uppräkningsvärdet systemet att använda Microsoft Entras interaktiva läge som stöder multifaktorautentisering för att ansluta till Azure SQL Database. Användaren som kör programmet ser följande dialogrutor:
En dialogruta som visar ett Microsoft Entra-användarnamn och frågar efter användarens lösenord.
Om användarens domän är federerad med Microsoft Entra-ID visas inte dialogrutan eftersom inget lösenord behövs.
Om Microsoft Entra-principen tillämpar multifaktorautentisering på användaren visas en dialogruta för att logga in på ditt konto.
Första gången en användare genomgår multifaktorautentisering visar systemet en dialogruta som ber om ett mobiltelefonnummer att skicka sms till. Varje meddelande innehåller verifieringskod som användaren måste ange i nästa dialogruta.
En dialogruta som ber om en verifieringskod för multifaktorautentisering som systemet har skickat till en mobiltelefon.
Information om hur du konfigurerar Microsoft Entra-ID för att kräva multifaktorautentisering finns i Komma igång med Microsoft Entra multifaktorautentisering i molnet.
Skärmbilder av dessa dialogrutor finns i Using Microsoft Entra multifactor authentication.
Tips
Du kan söka i .NET Framework-API:er med verktygssidan .NET API Browser.
Du kan också söka direkt med valfria ?term=<sökvärde> parametern.
Förutsättning
Innan du börjar bör du ha en logisk SQL-server skapad och tillgänglig.
Ange en Microsoft Entra-administratör för servern
För att C#-exemplet ska kunna köras, måste en logisk server administratör tilldela en Microsoft Entra-administratör från Microsoft Entra ID för din server.
På sidan SQL Server i Azure-portalen väljer du Microsoft Entra-ID på resursmenyn och väljer sedan Ange administratör.
Mer information om Microsoft Entra-administratörer och användare för Azure SQL Database finns i skärmbilderna i Konfigurera och hantera Microsoft Entra-autentisering med SQL Database.
Microsoft.Data.SqlClient
C#-exemplet förlitar sig på Microsoft.Data.SqlClient namnområde. Mer information finns i Använda Microsoft Entra-autentisering med SqlClient.
Not
System.Data.SqlClient använder Azure Active Directory Authentication Library (ADAL), som är inaktuellt. Om du använder System.Data.SqlClient namnområde för Microsoft Entra-autentisering migrerar du program till Microsoft.Data.SqlClient och Microsoft Authentication Library (MSAL). Mer information om hur du använder Microsoft Entra-autentisering med SqlClient finns i Använda Microsoft Entra-autentisering med SqlClient.
Verifiera med SQL Server Management Studio
Innan du kör C#-exemplet är det en bra idé att kontrollera att konfigurationerna är korrekta i SQL Server Management Studio (SSMS). Eventuella C#-programfel kan sedan begränsas till källkod.
Verifiera IP-adresser för brandvägg på servernivå
Kör SSMS från samma dator, i samma byggnad, där du planerar att köra C#-exemplet. För det här testet är alla autentiseringslägen OK. Om det finns något som tyder på att servern inte accepterar din IP-adress kan du läsa brandväggsregler på servernivå och databasnivå om du behöver hjälp.
Verifiera Microsoft Entra multifaktorautentisering
Kör SSMS igen, den här gången med Authentication inställt på Azure Active Directory – Universal med MFA. Det här alternativet kräver SSMS version 18.6 eller senare.
För mer information, se Använda Microsoft Entra multifaktorautentisering.
Not
För SSMS-versioner före 18.x måste gästanvändare ange Microsoft Entra-domännamnet eller klient-ID:t för databasen: Välj Alternativ>AD-domännamn eller klient-ID. SSMS 18.x och senare identifierar klientorganisationen automatiskt.
Om du vill hitta domännamnet i Azure-portalen väljer du Microsoft Entra-ID>anpassade domännamn. I C#-exempelprogrammet är det inte nödvändigt att ange ett domännamn.
C#-kodexempel
Not
Om du använder .NET Core vill du använda namnområdet Microsoft.Data.SqlClient. Mer information finns i följande blogg.
Det här är ett exempel på C#-källkod.
using System;
using Microsoft.Data.SqlClient;
public class Program
{
public static void Main(string[] args)
{
// Use your own server, database, and user ID.
// Connection string - user ID is not provided and is asked interactively.
string ConnectionString = @"Server=<your server>.database.windows.net; Authentication=Active Directory Interactive; Database=<your database>";
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
Console.WriteLine("ConnectionString2 succeeded.");
using (var cmd = new SqlCommand("SELECT @@Version", conn))
{
Console.WriteLine("select @@version");
var result = cmd.ExecuteScalar();
Console.WriteLine(result.ToString());
}
}
Console.ReadKey();
}
}
Det här är ett exempel på C#-testutdata.
ConnectionString2 succeeded.
select @@version
Microsoft SQL Azure (RTM) - 12.0.2000.8
...