Udostępnij za pośrednictwem


Dodawanie połączenia z usługą Azure SQL Database

Za pomocą usług połączonych programu Visual Studio można nawiązać połączenie z usługą Azure SQL Database, lokalnym emulatorem (na przykład podczas programowania) lub lokalną bazą danych programu SQL Server. Aby uzyskać informacje na temat lokalnego programu SQL Server, zobacz Połączenie z bazą danych.

Za pomocą programu Visual Studio można nawiązać połączenie z dowolnego z następujących typów projektów przy użyciu funkcji usług połączonych:

  • ASP.NET Core
  • .NET Core (w tym aplikacja konsolowa, WPF, Windows Forms, biblioteka klas)
  • Rola robocza platformy .NET Core
  • Azure Functions
  • Aplikacja konsolowa .NET Framework
  • Model ASP.NET –View-Controller (MVC) (.NET Framework)
  • Aplikacja platformy uniwersalnej systemu Windows

Funkcja połączonej usługi dodaje wszystkie wymagane odwołania i kod połączenia do projektu oraz odpowiednio modyfikuje pliki konfiguracji.

Warunki wstępne

Nawiązywanie połączenia z usługą Azure SQL Database przy użyciu połączonych usług

  1. Otwórz projekt w programie Visual Studio.

  2. W Eksploratorze rozwiązań, kliknij prawym przyciskiem myszy węzeł Usługi połączone, a następnie z menu kontekstowego wybierz Dodaj, aby otworzyć menu dostępnych usług.

    Zrzut ekranu przedstawiający opcje menu kontekstowego usług połączonych.

    Jeśli nie widzisz węzła usług połączonych, wybierz pozycję project>Connected Services>Dodaj.

  3. Wybierz SQL Server Database. Zostanie wyświetlona strona Połącz z zależnością. Powinna zostać wyświetlona kilka opcji:

    • SQL Server Express LocalDB, wbudowana oferta usługi SQL Database zainstalowana w programie Visual Studio
    • Baza danych programu SQL Server w lokalnym kontenerze na maszynie
    • Sql Server Database — lokalny program SQL Server w sieci lokalnej
    • Azure SQL Database, dla bazy danych SQL uruchomionej jako usługa Azure

    Możesz zmniejszyć koszty i uprościć wczesne programowanie, zaczynając od lokalnej bazy danych. Możesz przeprowadzić migrację do usługi na żywo na platformie Azure później, powtarzając te kroki i wybierając inną opcję. Jeśli tworzysz bazę danych lokalnie, którą chcesz ponownie utworzyć na platformie Azure, możesz przeprowadzić migrację bazy danych na platformę Azure w tym czasie.

    zrzut ekranu przedstawiający opcje usługi SQL Database.

    Jeśli chcesz nawiązać połączenie z usługą platformy Azure, przejdź do następnego kroku lub jeśli jeszcze nie zalogowałeś się, zaloguj się do swojego konta platformy Azure przed kontynuowaniem. Jeśli nie masz konta Azure, możesz zarejestrować się na bezpłatną wersję próbną.

  4. Na ekranie Konfigurowanie usługi Azure SQL Database wybierz istniejącą usługę Azure SQL Database i wybierz Dalej.

    Jeśli musisz utworzyć nowy składnik, przejdź do następnego kroku. W przeciwnym razie przejdź do kroku 7.

    zrzut ekranu przedstawiający ekran

  5. Aby utworzyć bazę danych Azure SQL Database:

    1. Wybierz pozycję Utwórz nowy przy użyciu zielonego znaku plusa.

    2. Wypełnij ekran Azure SQL Database: Utwórz nową i wybierz pozycję Utwórz.

      zrzut ekranu przedstawiający ekran

    3. Po wyświetleniu ekranu Konfigurowanie usługi Azure SQL Database nowa baza danych zostanie wyświetlona na liście. Wybierz nową bazę danych z listy, a następnie wybierz pozycję Dalej.

  6. Wprowadź nazwę parametrów połączenia lub wybierz wartość domyślną, a następnie wybierz dodatkowe ustawienia.

    zrzut ekranu przedstawiający ekran

    Notatka

    W programie Visual Studio 2022 w wersji 17.12 lub nowszej ta procedura używa tożsamości zarządzanej firmy Microsoft Entra, metody uwierzytelniania bez hasła, aby nawiązać połączenie z bazą danych. Ostrzeżenie na tym ekranie oznacza, że należy wykonać ręczny krok w witrynie Azure Portal po wykonaniu tej procedury w programie Visual Studio. Zobacz uwierzytelnianie Microsoft Entra.

  7. Wybierz, czy chcesz przechowywać ciąg połączenia w lokalnym pliku wpisów tajnych, czy w usłudze Azure Key Vault, a następnie wybierz pozycję Dalej.

    Zrzut ekranu przedstawiający opcje przechowywania parametrów połączenia usługi Azure SQL Database.

  8. Na ekranie Podsumowanie zmian są wyświetlane wszystkie modyfikacje wprowadzone w projekcie w przypadku ukończenia procesu. Jeśli zmiany wyglądają ok, wybierz pozycję Zakończ.

    Zrzut ekranu przedstawiający sekcję

    Jeśli zostanie wyświetlony monit o ustawienie reguł zapory, wybierz pozycję Tak.

    Zrzut ekranu przedstawiający reguły zapory.

  9. W Eksploratorze rozwiązań kliknij dwukrotnie węzeł Usługi połączone, aby otworzyć kartę Usługi połączone. Połączenie zostanie wyświetlone w sekcji Zależności usług.

    zrzut ekranu przedstawiający sekcję

    Jeśli klikniesz w trzy kropki obok dodanej zależności, zobaczysz różne opcje, takie jak Connect, które pozwalają ponownie otworzyć kreatora i zmienić połączenie. Możesz również kliknąć trzy kropki w prawym górnym rogu okna, aby wyświetlić opcje uruchamiania zależności lokalnych, zmiany ustawień i nie tylko.

  10. Jeśli używasz tożsamości zarządzanej (Visual Studio 17.12 lub nowszej), zobacz następną sekcję, aby skonfigurować użytkownika tożsamości zarządzanej w bazie danych Azure SQL Database.

Uwierzytelnianie Microsoft Entra

W programie Visual Studio 2022 w wersji 17.12 lub nowszej procedura połączonych usług korzysta z uwierzytelniania Microsoft Entra, który jest najbezpieczniejszą metodą uwierzytelniania. Jednak program Visual Studio nie tworzy automatycznie administratora usługi Microsoft Entra w bazie danych Azure SQL Database. Jeśli nie ma użytkownika administratora firmy Microsoft Entra, połączenie nie powiedzie się pomyślnie.

Aby utworzyć użytkownika administratora firmy Microsoft Entra, możesz użyć witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Aby uzyskać szczegółowe instrukcje dotyczące każdej z tych metod, zobacz „Set the Microsoft Entra admin user” .

Po zakończeniu procesu usług połączonych należy utworzyć użytkownika SQL odpowiadającego tożsamości zarządzanej i ustawić uprawnienia, wykonując instrukcje SQL w bazie danych. Zaloguj się do edytora zapytań w witrynie Azure Portal jako użytkownik administracyjny firmy Microsoft Entra i wykonaj instrukcje podobne do następujących:

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> to nazwa tożsamości zarządzanej w identyfikatorze Entra firmy Microsoft. Jeśli tożsamość jest przypisana przez system, nazwa jest zawsze taka sama jak nazwa aplikacji usługi App Service. W przypadku slotu wdrożeniowego nazwa jego systemowo przypisanej tożsamości to <app-name>/slots/<slot-name>. Aby udzielić uprawnień grupie Microsoft Entra, użyj nazwy wyświetlanej tej grupy (na przykład myAzureSQLDBAccessGroup). Zobacz typy tożsamości zarządzanych i tożsamości zarządzane w usłudze Microsoft Entra for Azure SQL. Dodawane role zależą od przypadków użycia. Zobacz ALTER ROLE.

Jeśli twój kod odwołuje się do System.Data.SqlClient, musisz przeprowadzić uaktualnienie do Microsoft.Data.SqlClient, ponieważ System.Data.SqlClient nie obsługuje uwierzytelniania Microsoft Entra. Aby uaktualnić, dodaj odwołanie do pakietu NuGet Microsoft.Data.SqlClienti zaktualizuj wszystkie dyrektywy using, które odwołują się do System.Data.SqlClient, tak aby wskazywały na przestrzeń nazw Microsoft.Data.SqlClient. Istnieją pewne zmiany zachowania; zobacz Przenoszenie ściągawek.

  1. Otwórz projekt w programie Visual Studio.

  2. W Eksploratorze rozwiązańkliknij prawym przyciskiem myszy węzeł usług połączonych, a następnie z menu kontekstowego wybierz pozycję Dodaj, aby otworzyć listę dostępnych usług.

    Zrzut ekranu przedstawiający opcje menu kontekstowego usług połączonych.

    Jeśli nie widzisz węzła Usługi Połączone, wybierz pozycję Projekt>Usługi Połączone>Dodaj.

  3. Wybierz SQL Server Database. Zostanie wyświetlona strona Połącz z zależnością. Powinna zostać wyświetlona kilka opcji:

    • SQL Server Express LocalDB, wbudowana oferta usługi SQL Database zainstalowana w programie Visual Studio
    • Baza danych programu SQL Server w lokalnym kontenerze na maszynie
    • Sql Server Database — lokalny program SQL Server w sieci lokalnej
    • Usługa Azure SQL Database dla usługi SQL Database uruchomiona jako usługa platformy Azure

    Możesz zmniejszyć koszty i uprościć wczesne programowanie, zaczynając od lokalnej bazy danych. Możesz przeprowadzić migrację do usługi na żywo na platformie Azure później, powtarzając te kroki i wybierając inną opcję. Jeśli tworzysz bazę danych lokalnie, którą chcesz ponownie utworzyć na platformie Azure, możesz przeprowadzić migrację bazy danych na platformę Azure w tym czasie.

    zrzut ekranu przedstawiający opcje usługi SQL Database.

    Jeśli chcesz nawiązać połączenie z usługą platformy Azure, przejdź do następnego kroku lub jeśli jeszcze nie zalogowałeś się, zaloguj się do swojego konta platformy Azure przed kontynuowaniem. Jeśli nie masz konta Azure, możesz zarejestrować się na bezpłatną wersję próbną .

  4. Na ekranie Konfigurowanie usługi Azure SQL Database wybierz istniejącą usługę Azure SQL Database i naciśnij Dalej.

    Jeśli musisz utworzyć nowy składnik, przejdź do następnego kroku. W przeciwnym razie przejdź do kroku 7.

    zrzut ekranu przedstawiający ekran

  5. Aby utworzyć bazę danych Azure SQL Database:

    1. Wybierz pozycję Utwórz nowy przy użyciu zielonego znaku plusa.

    2. Wypełnij formularz na ekranie Azure SQL Database: Utwórz nową i wybierz opcję Utwórz.

      zrzut ekranu przedstawiający ekran

    3. Po wyświetleniu ekranu Konfigurowanie usługi Azure SQL Database nowa baza danych zostanie wyświetlona na liście. Wybierz nową bazę danych z listy, a następnie wybierz pozycję Dalej.

  6. Wprowadź nazwę ciągu połączenia lub wybierz wartość domyślną, a następnie zdecyduj, czy ciąg połączenia ma być przechowywany w lokalnym pliku sekretów, czy w usłudze Azure Key Vault.

    zrzut ekranu przedstawiający ekran

  7. Na ekranie Podsumowanie zmian są wyświetlane wszystkie modyfikacje wprowadzone w projekcie w przypadku ukończenia procesu. Jeśli zmiany wyglądają Ok, wybierz Zakończ.

    Zrzut ekranu przedstawiający sekcję

    Jeśli zostanie wyświetlony monit o ustawienie reguł zapory, wybierz pozycję Tak.

    Zrzut ekranu przedstawiający reguły zapory.

  8. W Eksploratorze rozwiązań kliknij dwukrotnie węzeł Usługi Połączone, aby otworzyć kartę Usługi Połączone. Połączenie zostanie wyświetlone w sekcji Zależności Usługi:

    zrzut ekranu przedstawiający sekcję

    Jeśli klikniesz w trzy kropki obok dodanej zależności, możesz zobaczyć różne opcje, takie jak Connect, aby ponownie otworzyć kreatora i zmienić połączenie. Możesz również kliknąć trzy kropki w prawym górnym rogu okna, aby wyświetlić opcje uruchamiania zależności lokalnych, zmiany ustawień i nie tylko.

Uzyskiwanie dostępu do parametrów połączenia

Dowiedz się, jak bezpiecznie przechowywać wpisy tajne, korzystając z Bezpieczne przechowywanie wpisów tajnych aplikacji w trakcie programowania w ramach ASP.NET Core. Aby w szczególności odczytać parametry połączenia z magazynu tajemnic, można dodać kod, tak jak w Odczyt tajemnicy za pośrednictwem interfejsu API konfiguracji. Zobacz również wstrzykiwanie zależności w ASP.NET Core.

Migracje programu Entity Framework

Praca z lokalnym magazynem danych podczas wczesnego programowania może być wygodna, ale gdy wszystko będzie gotowe do przejścia do chmury, możesz użyć obsługi programu Visual Studio w celu przeniesienia bazy danych lub scalenia zmian ze zdalnym magazynem danych. Zobacz Omówienie migracji.

Na karcie usług połączonych można znaleźć polecenia migracji, klikając trzy kropki, jak pokazano na zrzucie ekranu:

zrzut ekranu przedstawiający polecenia migracji.

Dostępne są polecenia służące do tworzenia nowych migracji, stosowania ich bezpośrednio lub generowania skryptów SQL, które stosują migracje.

Dodawanie migracji

Po wprowadzeniu zmiany modelu danych można użyć narzędzi Platformy Entity Framework Core, aby dodać odpowiednią migrację, która opisuje w kodzie aktualizacje niezbędne do synchronizacji schematu bazy danych. Program Entity Framework Core porównuje bieżący model z migawką starego modelu w celu określenia różnic i generuje pliki źródłowe migracji. Pliki są dodawane do projektu, zwykle w folderze o nazwie Migrations i można je śledzić w kontroli źródła projektu, podobnie jak w przypadku każdego innego pliku źródłowego.

Po wybraniu tej opcji zostanie wyświetlona prośba o podanie nazwy klasy kontekstowej reprezentującej schemat bazy danych, który chcesz przeprowadzić migrację.

Zrzut ekranu przedstawiający dodawanie migracji w programie Entity Framework.

Aktualizowanie bazy danych

Po utworzeniu migracji można ją zastosować do bazy danych. Program Entity Framework aktualizuje bazę danych i schemat wraz ze zmianami określonymi w kodzie migracji. Po wybraniu tej opcji zostanie wyświetlona prośba o podanie nazwy klasy kontekstowej reprezentującej schemat bazy danych, który chcesz przeprowadzić migrację.

Generowanie skryptu SQL

Zalecanym sposobem wdrażania migracji do produkcyjnej bazy danych jest generowanie skryptów SQL. Zalety tej strategii obejmują następujące elementy:

  • Skrypty SQL można przeglądać pod kątem dokładności; Jest to ważne, ponieważ stosowanie zmian schematu w produkcyjnych bazach danych jest potencjalnie niebezpieczną operacją, która może obejmować utratę danych.
  • W niektórych przypadkach skrypty można dostosować do określonych potrzeb produkcyjnej bazy danych.
  • Skrypty SQL mogą być stosowane w połączeniu z technologią deploymentu, a nawet mogą być generowane w ramach procesu CI.
  • Skrypty SQL mogą być udostępniane administratorowi bazy danych i mogą być zarządzane i archiwizowane oddzielnie.

W przypadku korzystania z tej opcji zostanie wyświetlona prośba o klasę kontekstu bazy danych i lokalizację pliku skryptu.

Zrzut ekranu przedstawiający opcję Generuj skrypt SQL.

Otwórz w Eksploratorze obiektów programu SQL Server

Dla wygody to polecenie umożliwia przejście do Eksploratora obiektów programu SQL Server, dzięki czemu można wyświetlać tabele i inne jednostki bazy danych oraz pracować bezpośrednio z danymi. Zobacz Eksplorator obiektów.

zrzut ekranu przedstawiający Eksplorator obiektów programu SQL Server.

Następne kroki

Możesz kontynuować pracę z przewodnikami szybkiego startu dla usługi Azure SQL Database, ale zamiast zaczynać od początku, możesz rozpocząć od momentu skonfigurowania pierwotnego połączenia. Jeśli używasz programu Entity Framework, możesz rozpocząć od Dodaj kod, aby nawiązać połączenie z usługą Azure SQL Database. Jeśli używasz klas danych SqlClient lub ADO.NET, możesz rozpocząć od Dodawanie kodu w celu nawiązania połączenia z usługą Azure SQL Database.

Kod nie będzie dokładnie zgodny z tym, co jest używane w przewodnikach szybkiego startu, które używają innego sposobu pobierania ciągu połączenia. Łańcuchy połączeń są tajne i są bezpiecznie przechowywane zgodnie z opisem w Bezpieczny magazyn tajemnic aplikacji podczas rozwoju w ASP.NET Core. W szczególności, aby odczytać parametry połączenia z magazynu wpisów tajnych, można dodać kod, tak jak w Odczyt wpisu tajnego za pośrednictwem interfejsu API konfiguracji.

W projektach ASP.NET Core ustawienie połączenia lub parametry połączenia utworzone przez usługi połączone są dostępne w obiekcie konfiguracji. Dostęp do niego można uzyskać za pomocą właściwości w klasie WebApplicationBuilder (builder w wielu szablonach projektów), jak w poniższym przykładzie:

var connection = builder.Configuration["ConnectionStrings:DatabaseConnection"];

Ciąg umożliwiający podanie właściwości Configuration powinien być zgodny z kluczem w secrets.json lub w usłudze Azure Key Vault, który został podany w procedurze Połączonych usług. Na przykład w programie Visual Studio 2022 w wersji 17.12 lub nowszej ustawienie połączenia jest przechowywane w secrets.json jako:

{
  "ConnectionStrings:DatabaseConnection": "Server=tcp:webapplication16dbserver.database.windows.net;Authentication=Active Directory Default;Database=WebApplication16_db;",
}

W projektach ASP.NET Core ustawienie połączenia lub parametry połączenia utworzone przez usługi połączone są dostępne w obiekcie konfiguracji. Dostęp do niego można uzyskać za pomocą właściwości w klasie WebApplicationBuilder (builder w wielu szablonach projektów), jak w poniższym przykładzie:

var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];