Aturan firewall IP Azure SQL Database dan Azure Synapse

BERLAKU UNTUK: Azure SQL Database Azure Synapse Analytics

Saat Anda membuat server baru di Azure SQL Database atau Azure Synapse Analytics dengan nama mysqlserver, contohnya, firewall level-server memblokir semua akses ke endpoint publik untuk server (yang dapat diakses di mysqlserver.database.windows.net). Untuk kemudahan, SQL Database digunakan untuk merujuk ke SQL Database dan Azure Synapse Analytics.

Penting

Artikel ini tidak berlaku untuk Azure SQL Managed Instance. Untuk informasi tentang konfigurasi jaringan, lihat Hubungkan aplikasi Anda ke Azure SQL Managed Instance.

Azure Synapse hanya mendukung aturan firewall IP level-server. Ini tidak mendukung aturan firewall IP level-database.

Cara firewall bekerja

Percobaan Koneksi dari internet dan Azure harus melewati firewall sebelum mereka sampai di server atau database Anda, seperti yang ditunjukkan pada diagram berikut.

Firewall configuration diagram

Aturan firewall IP level-server

Aturan ini memungkinkan klien untuk mengakses seluruh server Anda, yang mana, semua database dikelola server. Aturan disimpan di database master. Anda dapat memiliki maksimum 128 aturan firewall IP level-server untuk satu server. Jika Anda membuat pengaturan Allow Azure Services dan sumber daya untuk mengakses server ini diaktifkan, ini dihitung sebagai satu aturan firewall untuk server.

Anda dapat mengonfigurasi aturan firewall IP level-server dengan menggunakan portal Microsoft Azure, PowerShell, atau Pernyataan Transact-SQL.

  • Untuk menggunakan portal atau PowerShell, Anda harus ada di pemilik langganan atau kontributor langganan.
  • Untuk menggunakan Transact-SQL, Anda harus terhubung ke database master sebagai login utama level-server atau sebagai administrator Azure Active Directory. (Aturan firewall IP level-server harus dibuat dahulu oleh pengguna yang memiliki izin level-Azure.)

Catatan

Secara default, selama pembuatan server SQL logis baru dari portal Microsoft Azure, Allow Azure Services dan sumber daya untuk mengakses pengaturan server ini diatur ke No.

Aturan firewall IP level-database

Aturan firewall IP level-database memungkinkan klien untuk mengakses database (aman) tertentu. Anda membuat aturan untuk setiap database (termasuk data master), dan aturan tersebut disimpan dalam database individual.

  • Anda hanya dapat membuat dan mengelola aturan firewall IP level-database untuk database pengguna dan master dengan menggunakan pernyataan Transact-SQL dan hanya setelah Anda mengonfigurasi firewall level-server terlebih dahulu.
  • Jika Anda menetapkan rentang alamat IP dalam aturan firewall IP level-database yang ada di luar rentang dalam aturan firewall IP level-server, hanya klien yang memiliki alamat IP dalam rentang level-database dapat mengakses database.
  • Anda dapat memiliki maksimum 128 aturan firewall IP level-database untuk satu database. Untuk informasi tentang mengonfigurasi aturan firewall IP level-database, lihat contoh berikut di artikel ini dan lihat sp_set_database_firewall_rule (Azure SQL Database).

Rekomendasi cara untuk mengatur aturan firewall

Kami menyarankan Anda menggunakan aturan firewall IP level-database bila memungkinkan. Praktik ini meningkatkan keamanan dan membuat database Anda lebih portabel. Gunakan aturan firewall IP level-server untuk administrator. Gunakan juga saat Anda memiliki banyak database yang memiliki persyaratan akses yang sama, dan Anda tidak ingin mengonfigurasi setiap database secara individual.

Catatan

Untuk informasi tentang database portabel dalam konteks kelangsungan bisnis, lihat persyaratan Otentikasi untuk pemulihan bencana.

Aturan firewall IP level-server versus level-database

Bagaimana jika pengguna salah satu database sepenuhnya terisolasi dari database lainnya?

Jika ya, gunakan aturan firewall IP level-database untuk memberikan akses. Metode ini menghindari pengguna menggunakan aturan firewall IP level-server, yang mengizinkan akses melalui firewall semua database. Itu akan mengurangi kedalaman pertahanan Anda.

Apakah pengguna alamat IP memerlukan akses ke semua database?

Jika ya, gunakan aturan firewall IP level-server untuk mengurangi berapa kali Anda harus mengonfigurasi aturan firewall IP.

Apakah seseorang atau tim yang mengonfigurasi aturan firewall IP hanya memiliki akses melalui portal Microsoft Azure, PowerShell, atau REST API?

Jika demikian, Anda harus menggunakan aturan firewall IP level-server. Aturan firewall IP level-database hanya dapat dikonfigurasi melalui Transact-SQL.

Apakah seseorang atau tim yang mengonfigurasi aturan firewall IP dilarang memiliki izin level-tinggi dalam level database?

Jika demikian, gunakan aturan firewall IP level-server. Anda setidaknya memerlukan izin DATABASE KONTROL di level database untuk mengonfigurasi aturan firewall IP level-database melalui Transact-SQL.

Apakah seseorang tau tim yang mengonfigurasi atau mengaudit aturan firewall IP mengelola secara terpusat aturan firewall IP untuk banyak (mungkin ratusan) database?

Dalam skenario ini, praktik terbaik ditentukan oleh kebutuhan dan lingkungan Anda. Aturan firewall IP level-server mungkin lebih mudah untuk mengonfigurasi, tetapi pembuatan skrip dapat mengonfigurasi aturan di level-database. Bahkan jika Anda menggunakan aturan firewall IP tingkat server, Anda mungkin perlu mengaudit aturan firewall IP tingkat database untuk melihat apakah pengguna dengan izin CONTROL pada database membuat aturan firewall IP tingkat database.

Dapatkah saya menggunakan campuran aturan firewall IP level-server dan level-database?

Ya. Beberapa pengguna, seperti administrator, mungkin memerlukan aturan firewall IP level-server. Pengguna lainnya, seperti pengguna aplikasi database, mungkin memerlukan aturan firewall IP level-database.

Koneksi dari internet

Saat komputer mencoba untuk terhubung ke server Anda dari internet, firewall memeriksa terlebih dahulu alamat IP permintaan yang asli terhadap aturan firewall IP level-database untuk database yang diminta koneksi.

  • Jika alamat ada di dalam rentang yang ditentukan dalam aturan firewall IP level-database, koneksi diberikan ke database yang memuat aturan.
  • Jika alamat tidak dalam rentang di aturan firewall IP level-database, firewall memeriksa aturan firewall IP level-server. Jika alamat dalam rentang tang ada di aturan firewall IP level-server, koneksi diberikan. Aturan firewall IP level-server berlaku untuk semua database yang dikelola oleh server.
  • Jika alamat tidak dalam rentang yang ada di level-database mana pun atau aturan firewall IP level-server, permintaan koneksi gagal.

Catatan

Untuk mengakses Azure SQL Database dari komputer lokal Anda, pastikan firewall pada jaringan dan komputer lokal Anda memungkinkan komunikasi keluar pada port TCP 1433.

Koneksi dari dalam Azure

Untuk memungkinkan aplikasi yang dihosting di dalam Azure untuk menghubungkan ke server SQL Anda, koneksi Azure harus diaktifkan. Untuk mengaktifkan koneksi Azure, harus ada aturan firewall dengan memulai dan mengakhiri set alamat IP ke 0.0.0.0. Aturan yang direkomendasikan ini hanya berlaku untuk Azure SQL Database.

Saat aplikasi dari Azure mencoba untuk menghubungkan ke server, firewall memeriksa apakah koneksi Azure diizinkan dengan memverifikasi bahwa ada aturan firewall. Ini dapat diaktifkan secara langsung dari blade portal Microsoft Azure dengan mengalihkan Allow Azure Services dan sumber daya untuk mengakses server ini ke AKTIF dalam pengaturan Firewall dan jaringan virtual. Mengubah pengaturan ke AKTIF membuat aturan firewall masuk untuk IP 0.0.0.0 - 0.0.0.0 yang bernama AllowAllWindowsAzureIps. Aturan dapat ditampilkan di database master tampilan sys.firewall_rules. Gunakan PowerShell atau Azure CLI untuk membuat aturan firewall dengan diawali dan diakhiri set alamat IP menjadi 0.0.0.0 jika Anda tidak menggunakan portal.

Penting

Opsi ini mengonfigurasi firewall untuk menggunakan semua koneksi dari Azure, termasuk koneksi dari langganan pelanggan lainnya. jika Anda memilih opsi ini, pastikan bahwa login dan izin pengguna Anda membatasi akses hanya untuk pengguna yang diotorisasi.

Izin

Untuk dapat membuat dan mengelola aturan firewall IP untuk Azure SQL Server, Anda harus jadi salah satu dari:

Buat dan kelola aturan firewall IP

Anda membuat pengaturan firewall level-server terlebih dahulu dengan menggunakan portal Microsoft Azure atau secara program dengan menggunakan Azure PowerShell, Azure CLI, atau Azure REST API. Anda membuat dan mengelola aturan firewall IP level-server tambahan dengan menggunakan metode ini atau Transact-SQL.

Penting

Aturan firewall IP level-database hanya dapat dibuat dan dikelola dengan menggunakan Transact-SQL.

Untuk meningkatkan performa, aturan firewall IP level-server di-cache sementara pada level database. Untuk menyegarkan cache, lihat DBCC FLUSHAUTHCACHE.

Tip

Anda dapat menggunakan Audit Database untuk mengaudit perubahan firewall level-server dan level-database.

Gunakan portal Microsoft Azure untuk mengelola aturan firewall IP level-server

Untuk mengatur aturan firewall IP level-server di portal Microsoft Azure, buka halaman ikhtisar untuk database Anda atau server Anda.

Dari halaman ikhtisar database

  1. Untuk mengatur aturan firewall IP level-server dari halaman ikhtisar database, pilih Atur firewall server pada toolbar, seperti gambar berikut ini.

    Server IP firewall rule

    Halaman pengaturan firewall untuk pembukaan server.

  2. Pilih Tambahkan IP klien pada toolbar untuk menambahkan alamat IP komputer yang Anda gunakan, dan pilih Simpan. Aturan firewall IP level-server dibuat untuk alamat IP Anda saat ini.

    Set server-level IP firewall rule

Dari halaman ikhtisar server

Halaman ikhtisar untuk pembukaan server Anda. Itu menunjukkan nama server yang memenuhi syarat (seperti mynewserver20170403.database.windows.net) dan menyediakan opsi untuk konfigurasi lanjut.

  1. Untuk mengatur aturan level-server dari halaman ini, pilih Firewall dari menu Pengaturan di sisi kiri.

  2. Pilih Tambahkan IP klien pada toolbar untuk menambahkan alamat IP komputer yang Anda gunakan, dan pilih Simpan. Aturan firewall IP level-server dibuat untuk alamat IP Anda saat ini.

Gunakan TRansact-SQL untuk mengelola aturan firewall IP

Tampilan katalog atau prosedur tersimpan Tingkat Deskripsi
sys.firewall_aturan Server Menampilkan aturan firewall IP level-server saat ini
sp_atur_firewall_aturan Server Membuat atau memperbarui aturan firewall IP level-server
sp_hapus_firewall_aturan Server Menghapus aturan firewall IP level-server
sys.database_firewall_aturan Database Menampilkan aturan firewall IP level-database saat ini
sp_atur_database_firewall_aturan Database Membuat atau memperbarui aturan firewall IP level-database
sp_hapus_database_firewall_aturan Database Menghapus aturan firewall IP level-database

Contoh berikut meninjau kembali aturan yang ada, mengaktifkan rentang alamat IP pada Contoso server, dan menghapus aturan firewall IP:

SELECT * FROM sys.firewall_rules ORDER BY name;

Berikutnya, tambahkan aturan firewall IP level-server.

EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
   @start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'

Untuk menghapus aturan firewall IP level-server, lakukan prosedur tersimpan sp_delete_firewall_rule. Contoh berikut menghapus ContosoFirewallRule aturan:

EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'

Gunakan PowerShell untuk mengelola aturan firewall IP level-server

Catatan

Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Penting

Modul PowerShell Azure Resource Manager masih didukung oleh Azure SQL Database, tetapi semua pengembangan sekarang untuk modul Az.Sql. Untuk cmdlet ini, lihat AzureRM.Sql. Argumen untuk perintah dalam modul Az dan AzureRm secara substansial identik.

Cmdlet Tingkat Deskripsi
Get-AzSqlServerFirewallRule Server Mengembalikan ke aturan firewall level-server saat ini
New-AzSqlServerFirewallRule Server Membuat aturan firewall level-server baru
Set-AzSqlServerFirewallRule Server Memperbarui properti aturan firewall level-server yang ada
Remove-AzSqlServerFirewallRule Server Menghapus aturan firewall level-server

Contoh berikut menggunakan PowerShell untuk mengatur aturan firewall IP level-server:

New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
    -ServerName $servername `
    -FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"

Tip

Untuk $servername khusus untuk nama server dan bukan nama DNS yang memenuhi syarat seperti menentukan mysqldbserver bukannya mysqldbserver.database.windows.net

Untuk contoh PowerShell dalam konteks mulai cepat, lihat Buat DB - PowerShell dan Buat database tunggal dan konfigurasikan aturan firewall IP level-server menggunakan PowerShell.

Gunakan CLI untuk mengelola aturan firewall IP level-server

Cmdlet Tingkat Deskripsi
az sql server firewall-aturan buat Server Membuat aturan firewall IP server
az sql server firewall-aturan daftar Server Buat daftar aturan firewall IP pada server
az sql server firewall-aturan menunjukkan Server Tunjukkan detail aturan firewall IP
az sql server firewall-aturan perbarui Server Pembaruan aturan firewall IP
az sql server firewall-aturan hapus Server Hapus aturan firewall IP

Contoh berikut menggunakan CLI untuk mengatur aturan firewall IP level-server:

az sql server firewall-rule create --resource-group myResourceGroup --server $servername \
-n ContosoIPRange --start-ip-address 192.168.1.0 --end-ip-address 192.168.1.255

Tip

Untuk $servername khusus untuk nama server dan bukan nama DNS yang memenuhi syarat seperti menentukan mysqldbserver bukannya mysqldbserver.database.windows.net

Untuk contoh CLI dalam konteks mulai cepat, lihat buat DB - Azure CLI dan buat database tunggal dan konfigurasikan aturan firewall IP level-server menggunakan Azure CLI.

Gunakan REST API untuk mengelola aturan firewall IP level-server

API Tingkat Deskripsi
Buat daftar aturan firewall Server Menampilkan aturan firewall IP level-server saat ini
Buat atau perbarui aturan firewall Server Membuat atau memperbarui aturan firewall IP level-server
Hapus aturan firewall Server Menghapus aturan firewall IP level-server
Dapatkan aturan firewall Server Dapatkan aturan firewall IP level-server

Troubleshoot firewall database

Pertimbangkan poin berikut saat mengakses Azure SQL Database tidak bekerja sesuai yang Anda harapkan.

  • Konfigurasi firewall lokal:

    Sebelum komputer Anda dapat mengakses Azure SQL Database, Anda mungkin perlu membuat pengecualian firewall pada komputer Anda untuk port TCP 1433. Untuk membuat koneksi di dalam Batas cloud Azure, Anda mungkin harus membuka port tambahan. Untuk informasi lebih lanjut, lihat sesi "SQL Database: Di Luar vs Di Dalam" Port di atas 1433 untuk ADO.NET 4.5 DAN Azure SQL Database.

  • Terjemahan alamat jaringan:

    Karena terjemahan alamat jaringan (NAT), alamat IP yang digunakan oleh komputer Anda untuk terhubung dengan Azure SQL Database mungkin berbeda dari alamat IP di pengaturan konfigurasi IP komputer Anda. Untuk melihat alamat IP yang sedang digunakan komputer Anda untuk terhubung ke Azure:

    1. Masuk ke portal.
    2. Buka tab Konfigurasi pada server yang menghosting database Anda.
    3. Alamat IP Klien Saat Ini ditampilkan di sesi Alamat IP Yang Diizinkan. Pilih Tambahkan untuk Alamat IP Yang Diizinkan untuk memungkinkan komputer ini mengakses server.
  • Perubahan pada daftar yang diperbolehkan belum berlaku:

    Mungkin ada keterlambatan lima menit untuk perubahan pada konfigurasi firewall Azure SQL Database berlaku.

  • Login tidak diizinkan, atau kata sandi salah digunakan:

    Jika login tidak memiliki izin pada server atau kata sandi salah, koneksi ke server ditolak. Membuat pengaturan firewall hanya memberi klien kesempatan untuk mencoba terhubung dengan server. Klien masih harus menyediakan kredensial keamanan yang diperlukan. Untuk informasi lebih lanjut tentang menyiapkan login, lihat Mengontrol dan berikan akses database.

  • Alamat IP Dinamis:

    Jika Anda memiliki koneksi internet yang menggunakan alamat IP dinamis dan Anda memiliki masalah melewati firewall, cobalah solusi berikut ini:

    • Tanyakan penyedia layanan internet Anda rentang alamat IP yang ditetapkan untuk komputer klien yang mengakses server. Tambahkan rentang alamat IP sebagai aturan firewall IP.
    • Dapatkan alamat IP statis sebagai gantinya untuk komputer klien Anda. Tambahkan alamat IP sebagai aturan firewall.

Langkah berikutnya