Lägga till en anslutning till en Azure SQL Database
Med Visual Studio Connected Services kan du ansluta till Azure SQL Database, en lokal emulator (till exempel under utveckling) eller en lokal SQL Server-databas. För lokal SQL Server, se Anslut till en databas.
Med Visual Studio kan du ansluta från någon av följande projekttyper med hjälp av funktionen Connected Services:
- ASP.NET Core
- .NET Core (inklusive konsolapp, WPF, Windows Forms, klassbibliotek)
- .NET Core Worker Roll
- Azure Functions
- .NET Framework-konsolapp
- ASP.NET Model –View-Controller (MVC) (.NET Framework)
- Universell Windows-plattformsapplikation
Den anslutna tjänstfunktionen lägger till alla nödvändiga referenser och anslutningskod till projektet och ändrar konfigurationsfilerna på rätt sätt.
Förutsättningar
- Visual Studio med Azure-arbetsbelastningen installerad.
- Ett projekt av någon av de typer som stöds
- Ett Azure-konto. Om du inte har något Azure-konto aktiverar du dina Azure-förmåner för Visual Studio-prenumeranter eller registrera dig för en kostnadsfri utvärderingsversion.
Ansluta till Azure SQL Database med hjälp av anslutna tjänster
Öppna projektet i Visual Studio.
I Solution Explorerhögerklickar du på noden Anslutna tjänster och väljer Lägg till på snabbmenyn för att öppna menyn med tillgängliga tjänster.
Om du inte ser noden Anslutna tjänster, välj Projekt>Anslutna tjänster>Lägg till.
Välj SQL Server Database. Sidan Anslut till beroende visas. Du bör se flera alternativ:
- SQL Server Express LocalDB, det inbyggda SQL Database-erbjudandet som är installerat med Visual Studio
- SQL Server Database på en lokal container på datorn
- SQL Server Database, en lokal SQL Server i det lokala nätverket
- Azure SQL Database, för den SQL-databas som körs som en tjänst i Azure
Du kan minska kostnaderna och förenkla tidig utveckling genom att börja med en lokal databas. Du kan migrera till livetjänsten i Azure senare genom att upprepa de här stegen och välja ett annat alternativ. Om du skapar en databas lokalt som du vill återskapa i Azure kan du migrera databasen till Azure vid den tidpunkten.
Om du vill ansluta till Azure-tjänsten fortsätter du till nästa steg, eller om du inte redan är inloggad loggar du in på ditt Azure-konto innan du fortsätter. Om du inte har något Azure-konto kan du registrera dig för en kostnadsfri utvärderingsversion.
På skärmen Konfigurera Azure SQL Database väljer du en befintlig Azure SQL Database och väljer Nästa.
Om du behöver skapa en ny komponent går du till nästa steg. Annars går du vidare till steg 7.
Så här skapar du en Azure SQL-databas:
Välj Skapa ny med det gröna plustecknet.
Fyll i Azure SQL Database: Skapa ny skärm och välj Skapa.
När skärmen Konfigurera Azure SQL Database visas, visas den nya databasen i listan. Välj den nya databasen i listan och välj Nästa.
Ange ett namn på anslutningssträngen eller välj standard och välj sedan Ytterligare inställningar.
Not
Med Visual Studio 2022 version 17.12 och senare använder den här proceduren Microsoft Entra-hanterad identitet, en lösenordslös autentiseringsmetod, för att ansluta till databasen. Varningen på den här skärmen innebär att du måste utföra ett manuellt steg i Azure-portalen när du har slutfört den här proceduren i Visual Studio. Se Microsoft Entra-autentisering.
Välj om du vill att anslutningssträngen ska lagras i en lokal hemlighetsfil eller i Azure Key Vault-och välj sedan Nästa.
Skärmen Sammanfattning av ändringar visar alla ändringar som kommer att göras i projektet om du slutför processen. Om ändringarna ser OK ut väljer du Slutför.
Om du uppmanas att ange brandväggsregler väljer du Ja.
Dubbelklicka på noden Anslutna tjänster i Solution Explorer för att öppna fliken Anslutna tjänster. Anslutningen visas under avsnittet Tjänstberoenden:
Om du klickar på de tre punkterna bredvid beroendet som du har lagt till kan du se olika alternativ, till exempel Anslut för att öppna guiden igen och ändra anslutningen. Du kan också klicka på de tre punkterna längst upp till höger i fönstret för att se alternativ för att starta lokala beroenden, ändra inställningar med mera.
Om du använder hanterad identitet (Visual Studio 17.12 och senare) läser du nästa avsnitt för att konfigurera den hanterade identitetsanvändaren i din Azure SQL-databas.
Microsoft Entra-autentisering
Med Visual Studio 2022 version 17.12 och senare använder proceduren för anslutna tjänster Microsoft Entra-autentisering, vilket är den säkraste autentiseringsmetoden. Visual Studio skapar dock inte Microsoft Entra-administratörsanvändaren i Azure SQL-databasen åt dig automatiskt. Om det inte finns någon Microsoft Entra-administratörsanvändare misslyckas anslutningen med att autentiseras.
Du kan använda Azure-portalen, PowerShell eller Azure CLI för att skapa Microsoft Entra-administratörsanvändaren. Detaljerade instruktioner för var och en av dessa metoder finns i Ange Microsoft Entra-administratörsanvändaren.
När du har slutfört processen med anslutna tjänster måste du skapa en SQL-användare som motsvarar den hanterade identiteten och ange behörigheter genom att köra SQL-instruktioner i databasen. Logga in på frågeredigeraren i Azure Portal som administratörsanvändare för Microsoft Entra och kör instruktioner som följande:
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO
<identity-name>
är namnet på den hanterade identiteten i Microsoft Entra-ID. Om identiteten är systemtilldelad är namnet alltid detsamma som namnet på din App Service-app. För ett distributionsfack är namnet på dess systemtilldelade identitet <app-name>/slots/<slot-name>
. Om du vill bevilja behörigheter för en Microsoft Entra-grupp använder du gruppens visningsnamn i stället (till exempel myAzureSQLDBAccessGroup
). Se även typer av hanterade identiteter och hanterade identiteter i Microsoft Entra för Azure SQL. Vilka roller du lägger till beror på dina användningsfall. Se ALTER ROLE.
Om koden refererar till System.Data.SqlClient
måste du uppgradera till Microsoft.Data.SqlClient
eftersom System.Data.SqlClient
inte stöder Microsoft Entra-autentisering. Om du vill uppgradera lägger du till en referens Microsoft.Data.SqlClient NuGet-paketetoch uppdaterar alla användningsdirektiv som refererar till System.Data.SqlClient
för att referera till Microsoft.Data.SqlClient
namnrymd. Det finns vissa beteendeändringar; se Porting cheat sheet.
Öppna projektet i Visual Studio.
I Solution Explorerhögerklickar du på noden Anslutna tjänster och väljer Lägg till på snabbmenyn för att öppna menyn med tillgängliga tjänster.
Om du inte ser noden Anslutna tjänster väljer du Projekt>Anslutna tjänster>Lägg till.
Välj SQL Server Database. Sidan Anslut till beroende visas. Du bör se flera alternativ:
- SQL Server Express LocalDB, det inbyggda SQL Database-erbjudandet som är installerat med Visual Studio
- SQL Server Database på en lokal container på datorn
- SQL Server Database, en lokal SQL Server i det lokala nätverket
- Azure SQL Database, som är en SQL-databas som körs som en Azure-tjänst
Du kan minska kostnaderna och förenkla tidig utveckling genom att börja med en lokal databas. Du kan migrera till livetjänsten i Azure senare genom att upprepa de här stegen och välja ett annat alternativ. Om du skapar en databas lokalt som du vill återskapa i Azure kan du migrera databasen till Azure vid den tidpunkten.
Om du vill ansluta till Azure-tjänsten fortsätter du till nästa steg, eller om du inte redan är inloggad loggar du in på ditt Azure-konto innan du fortsätter. Om du inte har något Azure-konto kan du registrera dig för en kostnadsfri utvärderingsversion.
På skärmen Konfigurera Azure SQL Database väljer du en befintlig Azure SQL Database och väljer Nästa.
Om du behöver skapa en ny komponent går du till nästa steg. Annars går du vidare till steg 7.
Så här skapar du en Azure SQL-databas:
Välj Skapa ny med det gröna plustecknet.
Fyll i Azure SQL Database: Skapa nytt fönster och välj Skapa.
När skärmen Konfigurera Azure SQL Database visas, dyker den nya databasen upp i listan. Välj den nya databasen i listan och välj Nästa.
Ange ett namn på anslutningssträngen eller välj standard och välj om du vill att anslutningssträngen ska lagras i en lokal hemlighetsfil eller i Azure Key Vault-.
Skärmen Sammanfattning av ändringar visar alla ändringar som kommer att göras i projektet om du slutför processen. Om ändringarna ser OK ut väljer du Slutför.
Om du uppmanas att ange brandväggsregler väljer du Ja.
Dubbelklicka på noden Anslutna tjänster i Solution Explorer för att öppna fliken Anslutna tjänster. Anslutningen visas under avsnittet Tjänstberoenden:
Om du klickar på de tre punkterna bredvid beroendet som du har lagt till kan du se olika alternativ, till exempel Anslut för att öppna guiden igen och ändra anslutningen. Du kan också klicka på de tre punkterna längst upp till höger i fönstret för att se alternativ för att starta lokala beroenden, ändra inställningar med mera.
Få åtkomst till anslutningssträngen
Lär dig hur du lagrar hemligheter på ett säkert sätt genom att följa Säker lagring av apphemligheter under utveckling i ASP.NET Core. För att läsa anslutningssträngen från hemlighetsarkivet kan du lägga till kod som i Läsa hemligheten via konfigurations-API:et. Se även Beroendeinmatning i ASP.NET Core.
Entity Framework-migreringar
Det kan vara praktiskt att arbeta med ett lokalt datalager under tidig utveckling, men med Entity Framework Core, när du är redo att flytta till molnet, kan du använda Visual Studio-stöd för Entity Framework-migrering för att flytta databasen eller sammanfoga ändringar med ett fjärranslutet datalager. Se Översikt över migreringar.
På fliken Anslutna tjänster hittar du migreringskommandona genom att klicka på de tre punkterna, enligt skärmbilden:
Kommandon finns där för att skapa nya migreringar, tillämpa dem direkt eller generera SQL-skript som tillämpar migreringarna.
Lägg till migrering
När en datamodelländring introduceras kan du använda Entity Framework Core-verktyg för att lägga till en motsvarande migrering som i kod beskriver de uppdateringar som krävs för att hålla databasschemat synkroniserat. Entity Framework Core jämför den aktuella modellen med en ögonblicksbild av den gamla modellen för att fastställa skillnaderna och genererar källfiler för migrering. Filerna läggs till i projektet, vanligtvis i en mapp som heter Migrations och kan spåras i projektets källkontroll som alla andra källfiler.
När du väljer det här alternativet uppmanas du att ange det kontextklassnamn som representerar det databasschema som du vill migrera.
Uppdatera databas
När en migrering har skapats kan den tillämpas på en databas. Entity Framework uppdaterar databasen och schemat med de ändringar som anges i migreringskoden. När du väljer det här alternativet uppmanas du att ange det kontextklassnamn som representerar det databasschema som du vill migrera.
Generera SQL-skript
Det rekommenderade sättet att distribuera migreringar till en produktionsdatabas är genom att generera SQL-skript. Fördelarna med den här strategin är följande:
- SQL-skript kan granskas för noggrannhet. Detta är viktigt eftersom det är en potentiellt farlig åtgärd att tillämpa schemaändringar på produktionsdatabaser som kan innebära dataförlust.
- I vissa fall kan skripten justeras så att de passar de specifika behoven i en produktionsdatabas.
- SQL-skript kan användas tillsammans med en distributionsteknik och kan även genereras som en del av din CI-process.
- SQL-skript kan tillhandahållas till en DBA och kan hanteras och arkiveras separat.
När du använder det här alternativet tillfrågas du om databaskontextklassen och platsen för skriptfilen.
Öppna i SQL Server Object Explorer
För enkelhetens skull kan du med det här kommandot hoppa till SQL Server Object Explorer, så att du kan visa tabeller och andra databasentiteter och arbeta direkt med dina data. Se objektutforskaren.
Nästa steg
Du kan fortsätta med snabbstarterna för Azure SQL Database, men i stället för att börja från början kan du börja när den första anslutningen har konfigurerats. Om du använder Entity Framework kan du börja på Lägg till koden för att ansluta till Azure SQL Database. Om du använder SqlClient
eller ADO.NET dataklasser kan du börja med Lägg till koden för att ansluta till Azure SQL Database.
Koden matchar inte exakt vad som används i snabbstarterna, som använder ett annat sätt att hämta anslutningssträngen. Anslutningssträngarna är hemligheter och lagras på ett säkert sätt enligt beskrivningen i Säker lagring av apphemligheter under utveckling i ASP.NET Core. För att läsa anslutningssträngen från hemlighetsarkivet kan du lägga till kod som i Läsa hemligheten via konfigurations-API:et.
I ASP.NET Core-projekt är anslutningsinställningen eller anslutningssträngen som skapats av Anslutna tjänster tillgänglig i ett konfigurationsobjekt. Du kan komma åt den via en egenskap i klassen WebApplicationBuilder
(builder
i många projektmallar), som i följande exempel:
var connection = builder.Configuration["ConnectionStrings:DatabaseConnection"];
Strängen som ska anges för egenskapen Konfiguration ska matcha nyckeln i secrets.json eller i Azure Key Vault, som du angav i proceduren Anslutna tjänster. Med Visual Studio 2022 17.12 och senare lagras till exempel anslutningsinställningen i secrets.json som:
{
"ConnectionStrings:DatabaseConnection": "Server=tcp:webapplication16dbserver.database.windows.net;Authentication=Active Directory Default;Database=WebApplication16_db;",
}
I ASP.NET Core-projekt är anslutningsinställningen eller anslutningssträngen som skapats av Anslutna tjänster tillgänglig i ett konfigurationsobjekt. Du kan komma åt den via en egenskap i klassen WebApplicationBuilder
(builder
i många projektmallar), som i följande exempel:
var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];