Een verbinding toevoegen aan een Azure SQL Database
Met Visual Studio Connected Services kunt u verbinding maken met Azure SQL Database, een lokale emulator (bijvoorbeeld tijdens de ontwikkeling) of een on-premises SQL Server-database. Zie Verbinding maken met een databasevoor on-premises SQL Server.
Met Visual Studio kunt u verbinding maken vanuit een van de volgende projecttypen met behulp van de functie Connected Services:
- ASP.NET Core
- .NET Core (inclusief console-applicatie, WPF, Windows Forms, klassebibliotheek)
- .NET Core Worker rol
- Azure Functions
- .NET Framework-console-app
- ASP.NET Model-View-Controller (MVC) (.NET Framework)
- Universele Windows-platform-app
De functionaliteit van de verbonden service voegt alle benodigde verwijzingen en verbindingscode toe aan uw project en wijzigt uw configuratiebestanden op de juiste manier.
Voorwaarden
- Visual Studio waarop de Azure-workload is geïnstalleerd.
- Een project van een van de ondersteunde typen
- Een Azure-account. Als u geen Azure-account hebt, activeert u uw Azure-voordelen voor abonnees van Visual Studio of zich aan te melden voor een gratis proefversie.
Verbinding maken met Azure SQL Database met behulp van Connected Services
Open uw project in Visual Studio.
Klik in Solution Explorermet de rechtermuisknop op het knooppunt Connected Services en selecteer in het contextmenu Toevoegen om het menu met beschikbare services te openen.
Als u het knooppunt Connected Services niet ziet, kiest u Project>Connected Services>Add.
Kies SQL Server Database-. De pagina Verbinding maken met afhankelijkheid wordt weergegeven. U ziet nu verschillende opties:
- SQL Server Express LocalDB, de ingebouwde SQL Database-aanbieding geïnstalleerd met Visual Studio
- SQL Server Database op een lokale container op uw computer
- SQL Server Database, een on-premises SQL Server op het lokale netwerk
- Azure SQL Database, voor de SQL Database die wordt uitgevoerd als een Azure-service
U kunt de kosten verlagen en vroege ontwikkeling vereenvoudigen door te beginnen met een lokale database. U kunt later migreren naar de liveservice in Azure door deze stappen te herhalen en een andere optie te kiezen. Als u een database lokaal maakt die u opnieuw wilt maken in Azure, kunt u uw database op dat moment migreren naar Azure.
Als u verbinding wilt maken met de Azure-service, gaat u verder met de volgende stap of als u nog niet bent aangemeld, meldt u zich aan bij uw Azure-account voordat u doorgaat. Als u geen Azure-account hebt, kunt u zich aanmelden voor een gratis proefversie van .
Selecteer in het scherm het configureren van Azure SQL Database een bestaande Azure SQL Database en selecteer Volgende.
Als u een nieuw onderdeel wilt maken, gaat u naar de volgende stap. Ga anders verder met stap 7.
Een Azure SQL-database maken:
Selecteer Nieuwe maken door het groene plusteken.
Vul het Azure SQL Database in: maak een nieuw scherm en selecteer maken.
Wanneer het scherm Azure SQL Database configureren wordt weergegeven, wordt de nieuwe database weergegeven in de lijst. Selecteer de nieuwe database in de lijst en selecteer Volgende.
Voer de naam van een verbindingsreeks in of kies de standaardwaarde en kies vervolgens Aanvullende instellingen.
Notitie
Met Visual Studio 2022 versie 17.12 en hoger maakt deze procedure gebruik van door Microsoft Entra beheerde identiteit, een verificatiemethode zonder wachtwoord, om verbinding te maken met de database. De waarschuwing op dit scherm betekent dat u een handmatige stap in Azure Portal moet uitvoeren nadat u deze procedure in Visual Studio hebt voltooid. Zie Microsoft Entra-authenticatie.
Kies of u de verbindingsreeks wilt opslaan in een lokaal geheimenbestand of in Azure Key Vault-en kies vervolgens Volgende.
In het scherm Samenvatting van wijzigingen worden alle wijzigingen weergegeven die in uw project worden aangebracht als u het proces voltooit. Als de wijzigingen er OK uitzien, kies voltooien.
Als u wordt gevraagd een firewallregels in te stellen, kiest u Ja.
Dubbelklik in Solution Explorer op het knooppunt Connected Services om het tabblad Connected Services te openen. De verbinding wordt weergegeven onder de sectie Serviceafhankelijkheden:
Als u op de drie puntjes naast de afhankelijkheid klikt die u hebt toegevoegd, ziet u verschillende opties, zoals Verbinding maken om de wizard opnieuw te openen en de verbinding te wijzigen. U kunt ook op de drie puntjes rechtsboven in het venster klikken om opties weer te geven om lokale afhankelijkheden te starten, instellingen te wijzigen en meer.
Als u een beheerde identiteit gebruikt (Visual Studio 17.12 en hoger), raadpleegt u de volgende sectie voor het instellen van de gebruiker van de beheerde identiteit in uw Azure SQL-database.
Microsoft Entra-verificatie
Met Visual Studio 2022 versie 17.12 en hoger maakt de procedure voor verbonden services gebruik van Microsoft Entra-verificatie. Dit is de veiligste verificatiemethode. Echter, Visual Studio maakt de Microsoft Entra-beheerder niet automatisch aan in de Azure SQL-database. Als er geen Microsoft Entra-beheerdergebruiker is, kan de verbinding niet worden geverifieerd.
U kunt de Azure-portal, PowerShell of de Azure CLI gebruiken om de Microsoft Entra-beheerdergebruiker te maken. Zie Stel de Microsoft Entra-beheerder invoor gedetailleerde instructies voor elk van deze methoden.
Nadat u het connected services-proces hebt voltooid, moet u een SQL-gebruiker maken die overeenkomt met de beheerde identiteit en machtigingen instellen door SQL-instructies in de database uit te voeren. Meld u aan bij de query-editor in Azure Portal als uw Microsoft Entra-beheerdergebruiker en voer instructies uit zoals de volgende:
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
De <identity-name>
is de naam van de beheerde identiteit in Microsoft Entra-id. Als de identiteit is toegewezen aan het systeem, is de naam altijd gelijk aan de naam van uw App Service-app. Voor een implementatieslot is de naam van de door het systeem toegewezen identiteit <app-name>/slots/<slot-name>
. Als u machtigingen wilt verlenen voor een Microsoft Entra-groep, gebruikt u in plaats daarvan de weergavenaam van de groep (bijvoorbeeld myAzureSQLDBAccessGroup
). Zie Beheerde identiteitstypen en Beheerde identiteiten in Microsoft Entra voor Azure SQL. De rollen die u toevoegt, zijn afhankelijk van uw use cases. Zie ALTER ROLE.
Als uw code verwijst naar System.Data.SqlClient
, moet u upgraden naar Microsoft.Data.SqlClient
, omdat System.Data.SqlClient
geen ondersteuning biedt voor Microsoft Entra-verificatie. Als u een upgrade wilt uitvoeren, voegt u een verwijzing toe naar het NuGet-pakket Microsoft.Data.SqlClienten werkt u alle gebruiksrichtlijnen bij die verwijzen naar System.Data.SqlClient
om te verwijzen naar de Microsoft.Data.SqlClient
naamruimte. Er zijn enkele gedragswijzigingen; zie Porting-overzicht.
Open uw project in Visual Studio.
Klik in Solution Explorermet de rechtermuisknop op het knooppunt Connected Services en selecteer in het contextmenu Toevoegen om het menu met beschikbare services te openen.
Als u het knooppunt Connected Services niet ziet, kiest u Project>Connected Services>Add.
Kies SQL Server Database-. De pagina Verbinding maken met afhankelijkheid wordt weergegeven. U ziet nu verschillende opties:
- SQL Server Express LocalDB, de ingebouwde SQL Database-aanbieding geïnstalleerd met Visual Studio
- SQL Server Database op een lokale container op uw computer
- SQL Server Database, een on-premises SQL Server op het lokale netwerk
- Azure SQL Database, voor de SQL Database die wordt uitgevoerd als een Azure-service
U kunt de kosten verlagen en vroege ontwikkeling vereenvoudigen door te beginnen met een lokale database. U kunt later migreren naar de liveservice in Azure door deze stappen te herhalen en een andere optie te kiezen. Als u een database lokaal maakt die u opnieuw wilt maken in Azure, kunt u uw database op dat moment migreren naar Azure.
Als u verbinding wilt maken met de Azure-service, gaat u verder met de volgende stap of als u nog niet bent aangemeld, meldt u zich aan bij uw Azure-account voordat u doorgaat. Als u geen Azure-account hebt, kunt u zich aanmelden voor een gratis proefversie van .
Selecteer in het scherm Azure SQL Database configureren een bestaande Azure SQL Database en selecteer vervolgens Volgende.
Als u een nieuw onderdeel wilt maken, gaat u naar de volgende stap. Ga anders verder met stap 7.
Een Azure SQL-database maken:
Selecteer Nieuwe maken door het groene plusteken.
Vul het Azure SQL Database in: maak een nieuw scherm en selecteer maken.
Wanneer het scherm Azure SQL Database configureren wordt weergegeven, wordt de nieuwe database weergegeven in de lijst. Selecteer de nieuwe database in de lijst en selecteer Volgende.
Voer de naam van een verbindingsreeks in of kies de standaardwaarde en kies of u de verbindingsreeks wilt opslaan in een lokaal geheimenbestand of in Azure Key Vault-.
In het scherm Samenvatting van wijzigingen worden alle wijzigingen weergegeven die in uw project worden aangebracht als u het proces voltooit. Als de wijzigingen er OK uitzien, kiest u Voltooien.
Als u wordt gevraagd een firewallregels in te stellen, kiest u Ja.
Dubbelklik in Solution Explorer op het knooppunt Connected Services om het tabblad Connected Services te openen. De verbinding wordt weergegeven onder de sectie Serviceafhankelijkheden:
Als u op de drie puntjes naast de afhankelijkheid klikt die u hebt toegevoegd, ziet u verschillende opties, zoals Verbinding maken om de wizard opnieuw te openen en de verbinding te wijzigen. U kunt ook op de drie puntjes rechtsboven in het venster klikken om opties weer te geven om lokale afhankelijkheden te starten, instellingen te wijzigen en meer.
Toegang tot de verbindingsreeks
Leer hoe je geheimen veilig kunt opslaan door de richtlijnen in Veilige opslag van app-geheimen tijdens de ontwikkeling in ASP.NET Corete volgen. Als u de verbindingsreeks uit het geheimenarchief wilt lezen, kunt u code toevoegen zoals in Het geheim lezen via de configuratie-API. Zie ook Afhankelijkheidsinjectie in ASP.NET Core.
Entity Framework-migraties
Het kan handig zijn om tijdens een vroege ontwikkeling met een lokaal gegevensarchief te werken, maar als u klaar bent om naar de cloud te gaan, kunt u visual Studio-ondersteuning voor Entity Framework-migratie gebruiken om uw database te verplaatsen of wijzigingen samen te voegen met een extern gegevensarchief. Zie Overzicht van migraties.
Op het tabblad Connected Services kunt u de migratieopdrachten vinden door op de drie puntjes te klikken, zoals wordt weergegeven in de schermopname:
Er zijn opdrachten beschikbaar om nieuwe migraties te maken, deze rechtstreeks toe te passen of SQL-scripts te genereren die de migraties toepassen.
Migratie toevoegen
Wanneer een gegevensmodelwijziging wordt geïntroduceerd, kunt u Entity Framework Core-hulpprogramma's gebruiken om een bijbehorende migratie toe te voegen die in de code wordt beschreven welke updates nodig zijn om het databaseschema gesynchroniseerd te houden. Entity Framework Core vergelijkt het huidige model met een momentopname van het oude model om de verschillen te bepalen en genereert migratiebronbestanden. De bestanden worden toegevoegd aan uw project, meestal in een map met de naam Migrations en kunnen worden bijgehouden in het broncodebeheer van uw project, net als elk ander bronbestand.
Wanneer u deze optie kiest, wordt u gevraagd de naam van de contextklasse op te geven die het databaseschema vertegenwoordigt dat u wilt migreren.
Database bijwerken
Nadat een migratie is gemaakt, kan deze worden toegepast op een database. Entity Framework werkt uw database en uw schema bij met de wijzigingen die zijn opgegeven in de migratiecode. Wanneer u deze optie kiest, wordt u gevraagd de naam van de contextklasse op te geven die het databaseschema vertegenwoordigt dat u wilt migreren.
SQL-script genereren
De aanbevolen manier om migraties naar een productiedatabase te implementeren, is door SQL-scripts te genereren. De voordelen van deze strategie zijn onder andere:
- SQL-scripts kunnen worden gecontroleerd op nauwkeurigheid; dit is belangrijk omdat het toepassen van schemawijzigingen op productiedatabases een potentieel gevaarlijke bewerking is waarbij gegevens verloren kunnen gaan.
- In sommige gevallen kunnen de scripts worden afgestemd op de specifieke behoeften van een productiedatabase.
- SQL-scripts kunnen worden gebruikt in combinatie met een implementatietechnologie en kunnen zelfs worden gegenereerd als onderdeel van uw CI-proces.
- SQL-scripts kunnen worden verstrekt aan een DBA en kunnen afzonderlijk worden beheerd en gearchiveerd.
Wanneer u deze optie gebruikt, wordt u gevraagd de databasecontextklasse en de locatie voor het scriptbestand.
Openen in SQL Server Object Explorer
Voor het gemak kunt u met deze opdracht naar de SQL Server-objectverkenner gaan, zodat u tabellen en andere databaseentiteiten kunt bekijken en rechtstreeks met uw gegevens kunt werken. Zie Objectverkenner.
Volgende stappen
U kunt doorgaan met de quickstarts voor Azure SQL Database, maar in plaats van vanaf het begin te beginnen, kunt u beginnen nadat de eerste verbinding is ingesteld. Als u Entity Framework gebruikt, kunt u beginnen bij De code toevoegen om verbinding te maken met Azure SQL Database. Als u SqlClient
of ADO.NET gegevensklassen gebruikt, kunt u beginnen bij De code toevoegen om verbinding te maken met Azure SQL Database.
Uw code komt niet precies overeen met wat er in de quickstarts wordt gebruikt, die een andere manier gebruiken om de verbindingsreeks op te halen. De verbindingsreeksen zijn geheimen en worden veilig opgeslagen zoals uitgelegd in Veilige opslag van app-geheimen in ontwikkeling in ASP.NET Core. Als u de verbindingsreeks uit het geheimenarchief wilt lezen, kunt u code toevoegen zoals in Het geheim lezen via de configuratie-API.
In ASP.NET Core-projecten is de verbindingsinstelling of verbindingsreeks die door Connected Services is gemaakt, beschikbaar in een configuratieobject. U kunt deze openen via een eigenschap in de klasse WebApplicationBuilder
(builder
in veel projectsjablonen), zoals in het volgende voorbeeld:
var connection = builder.Configuration["ConnectionStrings:DatabaseConnection"];
De tekenreeks die moet worden opgegeven voor de eigenschap Configuratie moet overeenkomen met de sleutel in secrets.json of in Azure Key Vault, die u hebt opgegeven in de procedure Verbonden services. Met Visual Studio 2022 17.12 en hoger wordt de verbindingsinstelling bijvoorbeeld opgeslagen in secrets.json als:
{
"ConnectionStrings:DatabaseConnection": "Server=tcp:webapplication16dbserver.database.windows.net;Authentication=Active Directory Default;Database=WebApplication16_db;",
}
In ASP.NET Core-projecten is de verbindingsinstelling of verbindingsreeks die door Connected Services is gemaakt, beschikbaar in een configuratieobject. U kunt deze openen via een eigenschap in de klasse WebApplicationBuilder
(builder
in veel projectsjablonen), zoals in het volgende voorbeeld:
var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];