Bagikan melalui


Menambahkan koneksi ke Azure SQL Database

Dengan Visual Studio Connected Services, Anda dapat terhubung ke Azure SQL Database, emulator lokal (misalnya, selama pengembangan), atau database SQL Server lokal. Untuk SQL Server lokal, lihat Menyambungkan ke database.

Dengan Visual Studio, Anda dapat terhubung dari salah satu jenis proyek berikut dengan menggunakan fitur Connected Services:

  • ASP.NET Core
  • .NET Core (termasuk aplikasi konsol, WPF, Formulir Windows, pustaka kelas)
  • Peran Pekerja .NET Core
  • Azure Functions
  • Aplikasi konsol .NET Framework
  • ASP.NET Model-View-Controller (MVC) (.NET Framework)
  • Aplikasi Universal Windows Platform

Fungsionalitas layanan terhubung menambahkan semua referensi dan kode koneksi yang diperlukan ke proyek Anda, dan memodifikasi file konfigurasi Anda dengan tepat.

Prasyarat

Menyambungkan ke Azure SQL Database menggunakan Connected Services

  1. Buka proyek Anda di Visual Studio.

  2. Di Penjelajah Solusi, klik kanan pada node Connected Services, dan, dari menu konteks, pilih Tambahkan untuk membuka menu layanan yang tersedia.

    Cuplikan layar memperlihatkan opsi menu konteks Connected Services.

    Jika Anda tidak melihat simpul Connected Services, pilih Project>Connected Services>Tambah.

  3. Pilih SQL Server Database. Halaman Sambungkan ke dependensi muncul. Anda akan melihat beberapa opsi:

    • SQL Server Express LocalDB, penawaran SQL Database bawaan yang diinstal dengan Visual Studio
    • Database SQL Server pada kontainer lokal di komputer Anda
    • SQL Server Database, SQL Server lokal di jaringan lokal
    • Azure SQL Database, untuk SQL Database yang berjalan sebagai layanan Azure

    Anda dapat mengurangi biaya dan menyederhanakan pengembangan awal dengan memulai dengan database lokal. Anda dapat bermigrasi ke layanan langsung di Azure nanti dengan mengulangi langkah-langkah ini dan memilih opsi lain. Jika Anda membuat database secara lokal yang ingin Anda buat ulang di Azure, Anda bisa memigrasikan database Anda ke Azure pada saat itu.

    Cuplikan layar memperlihatkan pilihan SQL Database.

    Jika Anda ingin menyambungkan ke layanan Azure, lanjutkan ke langkah berikutnya, atau jika Anda belum masuk, masuk ke akun Azure Anda sebelum melanjutkan. Jika Anda tidak memiliki akun Azure, Anda dapat mendaftar untuk uji coba gratis .

  4. Di layar Mengonfigurasi Azure SQL Database, pilih Azure SQL Database yang sudah ada, dan pilih Berikutnya.

    Jika Anda perlu membuat komponen baru, buka langkah berikutnya. Jika tidak, lewati ke langkah 7.

    Cuplikan layar memperlihatkan layar

  5. Untuk membuat database Azure SQL:

    1. Pilih Buat Baru dengan tanda plus hijau.

    2. Isi layar Azure SQL Database: Buat baru, dan pilih Buat.

      Cuplikan layar memperlihatkan layar

    3. Saat halaman Mengonfigurasi Azure SQL Database ditampilkan, database baru muncul dalam daftar. Pilih database baru dalam daftar, dan pilih Berikutnya.

  6. Masukkan nama string koneksi, atau pilih default, lalu pilih Pengaturan Tambahan.

    Cuplikan layar memperlihatkan layar

    Nota

    Dengan Visual Studio 2022 versi 17.12 dan yang lebih baru, prosedur ini menggunakan identitas terkelola Microsoft Entra, metode autentikasi tanpa kata sandi, untuk menyambungkan ke database. Peringatan di layar ini berarti Anda perlu melakukan langkah manual di Portal Microsoft Azure setelah menyelesaikan prosedur ini di Visual Studio. Lihat autentikasi Microsoft Entra .

  7. Pilih apakah Anda ingin string koneksi disimpan dalam file rahasia lokal, atau di Azure Key Vault, lalu pilih Berikutnya.

    Cuplikan layar memperlihatkan opsi tempat menyimpan string koneksi Azure SQL Database.

  8. Layar Ringkasan perubahan menunjukkan semua modifikasi yang akan dilakukan pada proyek Anda jika Anda menyelesaikan proses. Jika perubahan terlihat OK, pilih Selesai.

    Cuplikan layar memperlihatkan bagian

    Jika diminta untuk mengatur aturan firewall, pilih Ya.

    Cuplikan layar memperlihatkan aturan firewall.

  9. Di Penjelajah Solusi, klik dua kali pada simpul Connected Services untuk membuka tab Connected Services. Koneksi muncul di bawah bagian Dependensi Layanan:

    Cuplikan layar memperlihatkan bagian

    Jika Anda mengklik tiga titik di samping dependensi yang Anda tambahkan, Anda dapat melihat berbagai opsi seperti Sambungkan untuk membuka kembali wizard dan mengubah koneksi. Anda juga dapat mengklik tiga titik di kanan atas jendela untuk melihat opsi untuk memulai dependensi lokal, mengubah pengaturan, dan lainnya.

  10. Jika Anda menggunakan identitas terkelola (Visual Studio 17.12 dan yang lebih baru), lihat bagian berikutnya untuk menyiapkan pengguna identitas terkelola di database Azure SQL Anda.

Autentikasi Microsoft Entra

Dengan Visual Studio 2022 versi 17.12 dan yang lebih baru, prosedur layanan terhubung menggunakan autentikasi Microsoft Entra, yang merupakan metode autentikasi yang paling aman. Namun, Visual Studio tidak membuat pengguna admin Microsoft Entra di database Azure SQL untuk Anda secara otomatis. Jika tidak ada pengguna admin Microsoft Entra, koneksi akan gagal diautentikasi dengan sukses.

Anda dapat menggunakan Portal Microsoft Azure, PowerShell, atau Azure CLI untuk membuat pengguna admin Microsoft Entra. Untuk instruksi terperinci untuk setiap metode ini, lihat bagian Mengonfigurasi pengguna admin Microsoft Entra.

Setelah menyelesaikan proses Connected Services, Anda harus membuat pengguna SQL yang sesuai dengan identitas terkelola, dan mengatur izin dengan menjalankan pernyataan SQL dalam database. Masuk ke editor kueri di Portal Microsoft Azure sebagai pengguna admin Microsoft Entra Anda, dan jalankan pernyataan seperti berikut ini:

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> adalah nama identitas terkelola di ID Microsoft Entra. Jika identitas ditetapkan sistem, nama selalu sama dengan nama aplikasi App Service Anda. Untuk slot penyebaran, nama identitas yang ditetapkan oleh sistemnya adalah <app-name>/slots/<slot-name>. Untuk memberikan izin untuk grup Microsoft Entra, gunakan nama tampilan grup sebagai gantinya (misalnya, myAzureSQLDBAccessGroup). Lihat Jenis Identitas Terkelola dan Identitas Terkelola di Microsoft Entra untuk Azure SQL. Peran yang Anda tambahkan bergantung pada kasus penggunaan Anda. Lihat UBAH PERAN.

Jika kode Anda mereferensikan System.Data.SqlClient, Anda harus meningkatkan ke Microsoft.Data.SqlClient, karena System.Data.SqlClient tidak mendukung autentikasi Microsoft Entra. Untuk melakukan upgrade, tambahkan referensi paket NuGet Microsoft.Data.SqlClient , dan perbarui semua direktif using yang mereferensikan System.Data.SqlClient untuk mereferensikan namespace Microsoft.Data.SqlClient. Ada beberapa perubahan perilaku; lihat Lembar contekan porting.

  1. Buka proyek Anda di Visual Studio.

  2. Di Penjelajah Solusi, klik kanan pada simpul Connected Services, lalu pilih Tambahkan dari menu konteks untuk membuka menu layanan yang tersedia.

    Cuplikan layar memperlihatkan opsi menu konteks Connected Services.

    Jika Anda tidak melihat simpul Connected Services, pilih Project>Connected Services>Tambahkan.

  3. Pilih SQL Server Database. Halaman Sambungan ke dependensi muncul. Anda akan melihat beberapa opsi:

    • SQL Server Express LocalDB, penawaran SQL Database bawaan yang diinstal dengan Visual Studio
    • Database SQL Server pada kontainer lokal di komputer Anda
    • Database SQL Server, sebuah SQL Server on-premises di jaringan lokal
    • Azure SQL Database, merupakan SQL Database yang dioperasikan sebagai layanan Azure

    Anda dapat mengurangi biaya dan menyederhanakan pengembangan awal dengan memulai dengan database lokal. Anda dapat bermigrasi ke layanan langsung di Azure nanti dengan mengulangi langkah-langkah ini dan memilih opsi lain. Jika Anda membuat database secara lokal yang ingin Anda buat ulang di Azure, Anda bisa memigrasikan database Anda ke Azure pada saat itu.

    Cuplikan layar memperlihatkan pilihan SQL Database.

    Jika Anda ingin menyambungkan ke layanan Azure, lanjutkan ke langkah berikutnya, atau jika Anda belum masuk, masuk ke akun Azure Anda sebelum melanjutkan. Jika Anda tidak memiliki akun Azure, Anda dapat mendaftar untuk uji coba gratis .

  4. Di layar Mengonfigurasi Azure SQL Database, pilih Azure SQL Database yang sudah ada, dan pilih Berikutnya.

    Jika Anda perlu membuat komponen baru, buka langkah berikutnya. Jika tidak, lewati ke langkah 7.

    Cuplikan layar memperlihatkan layar

  5. Untuk membuat database Azure SQL:

    1. Pilih Buat Baru dengan tanda plus hijau.

    2. Isi layar Azure SQL Database: Buat layar baru, dan pilih Buat.

      Cuplikan layar memperlihatkan layar

    3. Saat layar Mengonfigurasi Azure SQL Database ditampilkan, database baru muncul di dalam daftar. Pilih database baru dalam daftar, dan pilih Berikutnya.

  6. Masukkan nama string koneksi, atau pilih default, dan pilih apakah Anda ingin string koneksi disimpan dalam file rahasia lokal, atau di Azure Key Vault.

    Cuplikan layar memperlihatkan layar

  7. Layar Ringkasan perubahan menunjukkan semua modifikasi yang akan dilakukan pada proyek Anda jika Anda menyelesaikan proses. Jika perubahan terlihat OK, pilih Selesai.

    Cuplikan layar memperlihatkan bagian

    Jika diminta untuk mengatur aturan firewall, pilih Ya.

    Cuplikan layar memperlihatkan aturan firewall.

  8. Di Penjelajah Solusi, klik dua kali pada simpul Connected Services untuk membuka tab Connected Services. Koneksi muncul di bawah bagian Dependensi Layanan:

    Cuplikan layar memperlihatkan bagian

    Jika Anda mengklik tiga titik di samping dependensi yang Anda tambahkan, Anda dapat melihat berbagai opsi seperti Sambungkan untuk membuka kembali wizard dan mengubah koneksi. Anda juga dapat mengklik tiga titik di kanan atas jendela untuk melihat opsi untuk memulai dependensi lokal, mengubah pengaturan, dan lainnya.

Mengakses string koneksi

Pelajari cara menyimpan rahasia dengan aman dengan mengikuti panduan penyimpanan aman rahasia aplikasi dalam pengembangan di ASP.NET Core. Secara khusus, untuk membaca string koneksi dari penyimpanan rahasia, Anda dapat menambahkan kode seperti dalam Membaca rahasia melalui API konfigurasi. Lihat juga injeksi ketergantungan di ASP.NET Core .

Migrasi Kerangka Kerja Entitas

Mungkin lebih mudah untuk bekerja dengan penyimpanan data lokal selama pengembangan awal, tetapi dengan Entity Framework Core, ketika Anda siap untuk pindah ke cloud, Anda dapat menggunakan dukungan Visual Studio untuk migrasi Kerangka Kerja Entitas untuk memindahkan database Anda, atau menggabungkan perubahan dengan penyimpanan data jarak jauh. Lihat gambaran umum Migrasi .

Pada tab Connected Services, Anda dapat menemukan perintah migrasi dengan mengklik tiga titik, seperti yang ditunjukkan pada cuplikan layar:

Cuplikan layar memperlihatkan perintah migrasi.

Perintah tersedia di sana untuk membuat migrasi baru, menerapkannya secara langsung, atau menghasilkan skrip SQL yang menerapkan migrasi.

Menambahkan migrasi

Saat perubahan model data diperkenalkan, Anda dapat menggunakan alat Entity Framework Core untuk menambahkan migrasi terkait yang menjelaskan dalam kode pembaruan yang diperlukan untuk menjaga skema database tetap sinkron. Entity Framework Core membandingkan model saat ini dengan rekam jepret model lama untuk menentukan perbedaan, dan menghasilkan file sumber migrasi. File ditambahkan ke proyek Anda, biasanya dalam folder yang disebut Migrasi dan dapat dilacak dalam kontrol sumber proyek Anda seperti file sumber lainnya.

Saat Anda memilih opsi ini, Anda diminta untuk memberikan nama kelas konteks yang mewakili skema database yang ingin Anda migrasikan.

Cuplikan layar memperlihatkan penambahan migrasi Kerangka Kerja Entitas.

Memperbarui database

Setelah migrasi dibuat, migrasi dapat diterapkan ke database. Entity Framework memperbarui database dan skema Anda dengan perubahan yang ditentukan dalam kode migrasi. Saat Anda memilih opsi ini, Anda diminta untuk memberikan nama kelas konteks yang mewakili skema database yang ingin Anda migrasikan.

Hasilkan skrip SQL

Cara yang disarankan untuk menyebarkan migrasi ke database produksi adalah dengan menghasilkan skrip SQL. Keuntungan dari strategi ini meliputi:

  • Skrip SQL dapat ditinjau untuk akurasi; ini penting karena menerapkan perubahan skema pada database produksi adalah operasi yang berpotensi berbahaya yang dapat melibatkan kehilangan data.
  • Dalam beberapa kasus, skrip dapat disetel agar sesuai dengan kebutuhan spesifik database produksi.
  • Skrip SQL dapat digunakan bersama dengan teknologi penyebaran, dan bahkan dapat dihasilkan sebagai bagian dari proses CI Anda.
  • Skrip SQL dapat disediakan untuk DBA, dan dapat dikelola dan diarsipkan secara terpisah.

Saat Anda menggunakan opsi ini, Anda akan dimintai kelas konteks database dan lokasi untuk file skrip.

Cuplikan layar memperlihatkan opsi Hasilkan skrip SQL.

Buka di SQL Server Object Explorer

Untuk kenyamanan, perintah ini memungkinkan Anda melompat ke SQL Server Object Explorer, sehingga Anda dapat melihat tabel dan entitas database lainnya, dan bekerja langsung dengan data Anda. Lihat Object explorer.

Cuplikan layar memperlihatkan SQL Server Object Explorer.

Langkah berikutnya

Anda dapat melanjutkan dengan panduan mulai cepat untuk Azure SQL Database, tanpa harus memulai dari awal, Anda dapat memulai setelah koneksi awal disiapkan. Jika Anda menggunakan Entity Framework, Anda dapat memulai dari Menambahkan kode untuk menyambungkan ke Azure SQL Database. Jika Anda menggunakan kelas data SqlClient atau ADO.NET, Anda bisa mulai dari Menambahkan kode untuk menyambungkan ke Azure SQL Database.

Kode Anda tidak akan persis sama dengan yang digunakan dalam panduan memulai cepat, yang menggunakan cara berbeda untuk mendapatkan string koneksi. String koneksi adalah rahasia dan disimpan dengan aman, sebagaimana dijelaskan dalam Penyimpanan Aman rahasia aplikasi selama pengembangan di ASP.NET Core. Secara khusus, untuk membaca string koneksi dari penyimpanan rahasia, Anda dapat menambahkan kode seperti dalam Membaca rahasia melalui API konfigurasi.

Dalam proyek ASP.NET Core, pengaturan koneksi atau string koneksi yang dibuat oleh Connected Services tersedia dalam objek konfigurasi. Anda dapat mengaksesnya dengan properti di kelas WebApplicationBuilder (builder di banyak templat proyek), seperti dalam contoh berikut:

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

String yang akan disediakan ke properti Konfigurasi harus cocok dengan kunci di secrets.json atau di Azure Key Vault, yang Anda sediakan dalam prosedur Connected Services. Misalnya, dengan Visual Studio 2022 17.12 dan yang lebih baru, pengaturan koneksi disimpan di secrets.json sebagai:

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

Dalam proyek ASP.NET Core, pengaturan koneksi atau string koneksi yang dibuat oleh Connected Services tersedia dalam objek konfigurasi. Anda dapat mengaksesnya dengan properti di kelas WebApplicationBuilder (builder di banyak templat proyek), seperti dalam contoh berikut:

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