Aturan firewall Azure SQL Database dan Azure Synapse IP
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. Artikel ini tidak berlaku untuk Instans Terkelola Azure SQL. Untuk informasi tentang konfigurasi jaringan, lihat Hubungkan aplikasi Anda ke Azure SQL Managed Instance.
Catatan
ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).
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.
Penting
Azure Synapse hanya mendukung aturan firewall IP level-server. Itu tidak mendukung aturan firewall IP tingkat basis data.
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. Jumlah maksimum aturan firewall IP tingkat server dibatasi hingga 256 untuk 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.
Catatan
Jumlah maksimum aturan firewall IP tingkat server dibatasi hingga 256 saat mengonfigurasi menggunakan portal Azure.
- Untuk menggunakan portal atau PowerShell, Anda harus ada di pemilik langganan atau kontributor langganan.
- Untuk menggunakan Transact-SQL, Anda harus menyambungkan ke database master sebagai login utama tingkat server atau sebagai administrator Microsoft Entra. (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.
- Nilai defaultnya adalah hingga 256 aturan firewall IP tingkat database untuk 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 tingkat server versus tingkat 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 langsung dari panel portal Azure dengan mengalihkan pengaturan Izinkan Layanan dan sumber daya Azure untuk mengakses server ini ke AKTIF di 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 dilihat dalam tampilan sys.firewall_rules database Andamaster
. Gunakan PowerShell atau Azure CLI untuk membuat aturan firewall dengan alamat IP awal dan akhir yang diatur ke 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:
- dalam peran Kontributor SQL Server
- dalam peran Pengelola SQL Security
- pemilik sumber daya yang berisi Azure SQL Server
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 kinerja, aturan firewall IP tingkat server untuk sementara di-cache di tingkat 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.
Tip
Untuk tutorial, lihat Buat database menggunakan portal Microsoft Azure.
Dari halaman ikhtisar database
Untuk mengatur aturan firewall IP level-server dari halaman ikhtisar database, pilih Atur firewall server pada toolbar, seperti gambar berikut ini.
Halaman Jaringan untuk server terbuka.
Tambahkan aturan di bagian Aturan firewall untuk menambahkan alamat IP komputer yang Anda gunakan, lalu pilih Simpan. Aturan firewall IP level-server dibuat untuk alamat IP Anda saat ini.
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.
Untuk mengatur aturan tingkat server dari halaman ini, pilih Jaringan dari menu Pengaturan di sisi kiri.
Tambahkan aturan di bagian Aturan firewall untuk menambahkan alamat IP komputer yang Anda gunakan, lalu 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_rules | Database | Menampilkan aturan firewall IP level-database saat ini |
sp_set_database_firewall_rule | Database | Membuat atau memperbarui aturan firewall IP level-database |
sp_delete_database_firewall_rule | 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 |
---|---|---|
Dapatkan-AzSqlServerFirewallRule | Server | Mengembalikan ke aturan firewall level-server saat ini |
New-AzSqlServerFirewallRule | Server | Membuat aturan firewall level-server baru |
Atus-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
, tentukan nama server dan bukan nama DNS yang sepenuhnya memenuhi syarat. Misalnya, gunakan mysqldbserver
, bukan 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.
Untuk Azure Synapse Analytics, lihat contoh berikut:
Cmdlet | Tingkat | Deskripsi |
---|---|---|
az synapse workspace firewall-rule create | Server | Membuat aturan firewall |
az synapse workspace firewall-rule delete | Server | Hapus aturan firewall |
az synapse workspace firewall-rule list | Server | Daftar semua aturan firewall |
az synapse workspace firewall-rule show | Server | Mendapatkan aturan firewall |
az synapse workspace firewall-rule update | Server | Perbarui aturan firewall |
az synapse workspace firewall-rule wait | Server | Tempatkan CLI dalam status tunggu hingga kondisi aturan firewall terpenuhi |
Contoh berikut menggunakan CLI untuk mengatur aturan firewall IP tingkat server di Azure Synapse:
az synapse workspace firewall-rule create --name AllowAllWindowsAzureIps --workspace-name $workspacename --resource-group $resourcegroupname --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0
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 |
Pemecahan masalah 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:
- Masuk ke portal.
- Buka tab Konfigurasi pada server yang menghosting database Anda.
- 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
- Konfirmasikan bahwa lingkungan jaringan perusahaan memungkinkan komunikasi di dalam dari rentang alamat IP komputasi (termasuk rentang SQL) yang digunakan oleh pusat data Azure. Anda mungkin harus menambahkan alamat IP ke daftar yang diizinkan. Lihat rentang IP pusat data Microsoft Azure.
- Lihat mulai cepat tentang membuat database tunggal di Azure SQL Database.
- Untuk bantuan dalam menghubungkan database dalam Azure SQL Database dari sumber terbuka atau aplikasi pihak ketiga, lihat sampel kode mulai cepat Klien ke Azure SQL Database.
- Untuk informasi tentang port tambahan yang mungkin Anda perlukan untuk membuka, lihat sesi "SQL Database: Di Luar vs Di Dalam" Port di atas 1433 untuk ADO.NET 4.5 dan SQL Database
- Untuk ikhtisar keamanan Azure SQL Database, lihat Mengamankan database Anda.