Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:Azure SQL Database
Programbegäranden till Azure SQL Database måste autentiseras. Även om det finns flera alternativ för autentisering till Azure SQL Database bör du prioritera lösenordslösa anslutningar i dina program när det är möjligt. Traditionella autentiseringsmetoder som använder lösenord eller hemliga nycklar skapar säkerhetsrisker och komplikationer. Gå till hubben för lösenordslösa anslutningar för Azure-tjänster för att lära dig mer om fördelarna med att flytta till lösenordslösa anslutningar. I följande självstudie beskrivs hur du migrerar ett befintligt program för att ansluta till Azure SQL Database för att använda lösenordslösa anslutningar i stället för en lösning för användarnamn och lösenord.
Konfigurera Azure SQL-databas
Lösenordslösa anslutningar använder Microsoft Entra-autentisering för att ansluta till Azure-tjänster, inklusive Azure SQL Database. Med Microsoft Entra-autentisering kan du hantera identiteter på en central plats för att förenkla behörighetshanteringen. Läs mer om hur du konfigurerar Microsoft Entra-autentisering för din Azure SQL Database:
För den här migreringsguiden kontrollerar du att du har en Microsoft Entra-administratör tilldelad till din Azure SQL Database.
Gå till Microsoft Entra-sidan på din logiska server.
Välj Ange administratör för att öppna den utfällbara menyn Microsoft Entra ID .
I den utfällbara menyn Microsoft Entra ID söker du efter den användare som du vill tilldela som administratör.
Välj användaren och välj Välj.
Konfigurera din lokala utvecklingsmiljö
Lösenordslösa anslutningar kan konfigureras för att fungera för både lokala miljöer och Azure-värdbaserade miljöer. I det här avsnittet använder du konfigurationer för att tillåta enskilda användare att autentisera till Azure SQL Database för lokal utveckling.
Logga in på Azure
För lokal utveckling kontrollerar du att du är inloggad med samma Azure AD-konto som du vill använda för att få åtkomst till Azure SQL Database. Du kan autentisera via populära utvecklingsverktyg, till exempel Azure CLI eller Azure PowerShell. De utvecklingsverktyg som du kan autentisera med varierar mellan olika språk.
Logga in på Azure via Azure CLI med följande kommando:
az login
Skapa en databasanvändare och tilldela roller
Skapa en användare i Azure SQL Database. Användaren bör motsvara det Azure-konto som du använde för att logga in lokalt via utvecklingsverktyg som Visual Studio eller IntelliJ.
I Azure-portalen bläddrar du till din SQL-databas och väljer Frågeredigeraren (förhandsversion).
Välj Fortsätt som
<your-username>till höger på skärmen för att logga in på databasen med ditt konto.Kör följande T-SQL-kommandon i frågeredigerarens vy:
CREATE USER [user@domain] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user@domain]; ALTER ROLE db_datawriter ADD MEMBER [user@domain]; ALTER ROLE db_ddladmin ADD MEMBER [user@domain]; GONär du kör de här kommandona tilldelas rollen SQL DB-deltagare till det angivna kontot. Med den här rollen kan identiteten läsa, skriva och ändra databasens data och schema. Mer information om tilldelade roller finns i Roller med fast databas.
Uppdatera konfigurationen för lokal anslutning
Befintlig programkod som ansluter till Azure SQL Database med hjälp av Microsoft.Data.SqlClient biblioteket eller Entity Framework Core fortsätter att fungera med lösenordslösa anslutningar. Du måste dock uppdatera databasanslutningssträngen för att använda det lösenordslösa formatet. Följande kod fungerar till exempel med både SQL-autentisering och lösenordslösa anslutningar:
string connectionString = app.Configuration.GetConnectionString("AZURE_SQL_CONNECTIONSTRING")!;
using var conn = new SqlConnection(connectionString);
conn.Open();
var command = new SqlCommand("SELECT * FROM Persons", conn);
using SqlDataReader reader = command.ExecuteReader();
Så här uppdaterar du den refererade anslutningssträngen (AZURE_SQL_CONNECTIONSTRING) så att det lösenordslösa anslutningssträngformatet används:
Leta upp anslutningssträngen. För lokal utveckling med .NET-program lagras detta vanligtvis på någon av följande platser:
- Konfigurationsfilen
appsettings.jsonför projektet. - Konfigurationsfilen
launchsettings.jsonför Visual Studio-projekt. - Lokala system- eller containermiljövariabler.
- Konfigurationsfilen
Ersätt anslutningssträngvärdet med följande lösenordslösa format.
<database-server-name>Uppdatera platshållarna och<database-name>med dina egna värden:Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";
Testa appen
Kör appen lokalt och kontrollera att anslutningarna till Azure SQL Database fungerar som förväntat. Tänk på att det kan ta flera minuter innan ändringar av Azure-användare och roller sprids via din Azure-miljö. Ditt program är nu konfigurerat att köras lokalt utan att utvecklare behöver hantera hemligheter i själva programmet.
Konfigurera Azure-värdmiljön
När appen har konfigurerats för att använda lösenordslösa anslutningar lokalt kan samma kod autentiseras till Azure SQL Database när den har distribuerats till Azure. I avsnitten nedan beskrivs hur du konfigurerar ett distribuerat program för att ansluta till Azure SQL Database med hjälp av en hanterad identitet. Hanterade identiteter tillhandahåller en automatiskt hanterad identitet i Microsoft Entra-ID (tidigare Azure Active Directory) för program som ska användas när de ansluter till resurser som stöder Microsoft Entra-autentisering. Läs mer om hanterade identiteter:
Skapa den hanterade identiteten
Skapa en användartilldelad hanterad identitet med hjälp av Azure-portalen eller Azure CLI. Ditt program använder identiteten för att autentisera till andra tjänster.
- Överst i Azure Portal söker du efter hanterade identiteter. Välj resultatet Hanterade identiteter .
- Välj + Skapa överst på översiktssidan för hanterade identiteter .
- På fliken Grundläggande anger du följande värden:
- Prenumeration: Välj önskad prenumeration.
- Resursgrupp: Välj önskad resursgrupp.
- Region: Välj en region nära din plats.
- Namn: Ange ett igenkännbart namn för din identitet, till exempel MigrationIdentity.
- Välj Granska och skapa längst ned på sidan.
- När verifieringen har slutförts väljer du Skapa. Azure skapar en ny användartilldelad identitet.
När resursen har skapats väljer du Gå till resurs för att visa information om den hanterade identiteten.
Associera den hanterade identiteten med din webbapp
Konfigurera webbappen så att den använder den användartilldelade hanterade identitet som du skapade.
Slutför följande steg i Azure-portalen för att associera den användartilldelade hanterade identiteten med din app. Samma steg gäller för följande Azure-tjänster:
- Azure Spring Apps
- Azure Container-applikationer
- Azure-virtuella datorer
- Azure Kubernetes Service
- Gå till översiktssidan för webbappen.
Välj Identitet i det vänstra navigeringsfältet.
På sidan Identitet växlar du till fliken Användartilldelad .
Välj + Lägg till för att öppna den utfällbara menyn Lägg till användartilldelad hanterad identitet .
Välj den prenumeration som du använde tidigare för att skapa identiteten.
Sök efter MigrationIdentity efter namn och välj den i sökresultaten.
Välj Lägg till för att associera identiteten med din app.
Skapa en databasanvändare för identiteten och tilldela roller
Skapa en SQL-databasanvändare som mappar tillbaka till den användartilldelade hanterade identiteten. Tilldela nödvändiga SQL-roller till användaren så att appen kan läsa, skriva och ändra data och schemat för databasen.
I Azure-portalen bläddrar du till din SQL-databas och väljer Frågeredigeraren (förhandsversion).
Välj Fortsätt som
<username>till höger på skärmen för att logga in på databasen med ditt konto.Kör följande T-SQL-kommandon i frågeredigerarens vy:
CREATE USER [user-assigned-identity-name] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_datawriter ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_ddladmin ADD MEMBER [user-assigned-identity-name]; GONär du kör dessa kommandon tilldelas rollen SQL DB Contributor till den användartilldelade hanterade identiteten. Med den här rollen kan identiteten läsa, skriva och ändra databasens data och schema.
Viktigt!
Var försiktig när du tilldelar databasanvändarroller i företagsproduktionsmiljöer. I dessa scenarier bör appen inte utföra alla åtgärder med en enda upphöjd identitet. Försök att implementera principen om minsta behörighet genom att konfigurera flera identiteter med specifika behörigheter för specifika uppgifter.
Du kan läsa mer om hur du konfigurerar databasroller och säkerhet på följande resurser:
Uppdatera anslutningssträngen
Uppdatera azure-appkonfigurationen så att den använder formatet för lösenordslös anslutningssträng. Anslutningssträngar lagras vanligtvis som miljövariabler i din appvärdmiljö. Följande instruktioner fokuserar på App Service, men andra Azure-värdtjänster tillhandahåller liknande konfigurationer.
Gå till konfigurationssidan för App Service-instansen och leta upp Anslutningssträngen för Azure SQL Database.
Välj redigeringsikonen och uppdatera värdet för anslutningssträngen så att det matchar följande format. Ändra platshållarna
<database-server-name>och<database-name>med värdena för din egen tjänst.Server=tcp:<database-server-name>.database.windows.net,1433;Initial Catalog=<database-name>; Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Authentication="Active Directory Default";Spara ändringarna och starta om programmet om det inte gör det automatiskt.
Testa programmet
Testa din app för att se till att allt fortfarande fungerar. Det kan ta några minuter innan alla ändringar sprids via Din Azure-miljö.