Azure SQL Veritabanı IP Azure Synapse kurallarını yapılandırma ve yapılandırma
Uygulama hedefi:
Azure SQL Veritabanı
Azure SYNAPSE Analizi
Azure SQL Veritabanı veya Azure Synapse Analytics'de mysqlserver adlı yeni bir sunucu sanız, sunucu düzeyinde güvenlik duvarı sunucunun genel uç noktasına tüm erişimini engeller (mysqlserver.database.windows.net). Kolaylık olması için SQL Veritabanı hem de diğer tüm SQL Veritabanı için Azure Synapse Analytics.
Önemli
Bu makale Azure Yönetilen Örneği için SQL değildir. Ağ yapılandırması hakkında bilgi için bkz. Bağlan Yönetilen Örneği'ne SQL Azure'a uygulama.
Azure Synapse yalnızca sunucu düzeyinde IP güvenlik duvarı kurallarını destekler. Veritabanı düzeyinde IP güvenlik duvarı kurallarını desteklemez.
Güvenlik duvarı nasıl çalışır?
Aşağıdaki diyagramda gösterildiği gibi, İnternet'den ve Azure'dan gelen bağlantı girişimleri sunucunuza veya veritabanınıza ulaşmadan önce güvenlik duvarından geçmesi gerekir.

Sunucu düzeyinde IP güvenlik duvarı kuralları
Bu kurallar, istemcilerin sunucunuzun tamamına, yani sunucu tarafından yönetilen tüm veritabanlarına erişmesini sağlar. Kurallar ana veritabanında depolanır. Bir sunucu için en fazla 128 sunucu düzeyinde IP güvenlik duvarı kuralınız olabilir. Azure hizmet ve kaynaklarının bu sunucuya erişmesine izin ver ayarını etkinleştirdiyseniz sunucu için bir güvenlik duvarı kuralını etkinleştirmiş olursunuz.
Azure portal, PowerShell veya Transact-SQL deyimlerini kullanarak sunucu düzeyinde IP SQL yapılandırabilirsiniz.
- Portalı veya PowerShell'i kullanmak için abonelik sahibi veya abonelik katkıda bulunanı olmak gerekir.
- Transact-SQL kullanmak için ana veritabanına sunucu düzeyinde asıl oturum açma adı olarak veya yönetici olarak Azure Active Directory gerekir. (Önce Azure düzeyinde izinlere sahip bir kullanıcı tarafından sunucu düzeyinde IP güvenlik duvarı kuralı oluşturulmalısınız.)
Not
Varsayılan olarak, azure hizmetlerinden yeni bir mantıksal SQL sunucusu Azure portal Azure Hizmetleri ve kaynaklarının bu sunucuya erişmesine izin ver ayarı Hayır olarak ayarlanır.
Veritabanı düzeyinde IP güvenlik duvarı kuralları
Veritabanı düzeyinde IP güvenlik duvarı kuralları, istemcilerin belirli (güvenli) veritabanlarına erişmesini sağlar. Her veritabanı (ana veritabanı dahil) için kuralları oluşturur ve bunlar tek tek veritabanında depolanır.
- Yalnızca Transact-SQL deyimlerini kullanarak ve yalnızca ilk sunucu düzeyinde güvenlik duvarını yapılandırarak ana ve kullanıcı veritabanları için veritabanı düzeyinde IP güvenlik duvarı kuralları oluşturabilir ve yönetebilirsiniz.
- Veritabanı düzeyinde IP güvenlik duvarı kuralında, sunucu düzeyinde IP güvenlik duvarı kuralında aralığın dışında bir IP adresi aralığı belirtirsiniz, yalnızca veritabanı düzeyinde IP adreslerine sahip istemciler veritabanına erişebilirsiniz.
- Bir veritabanı için en fazla 128 veritabanı düzeyinde IP güvenlik duvarı kuralınız olabilir. Veritabanı düzeyinde IP güvenlik duvarı kurallarını yapılandırma hakkında daha fazla bilgi için bu makalenin devamlarında yer alan örnek için bkz. sp_set_database_firewall_rule (Azure SQL Veritabanı).
Öneriler kuralları ayarlama hakkında bilgi
Mümkün olduğunca veritabanı düzeyinde IP güvenlik duvarı kuralları kullanmanız önerilir. Bu uygulama güvenlik düzeyini artırır ve veritabanınızı daha taşınabilir hale getirir. Yöneticiler için sunucu düzeyinde IP güvenlik duvarı kuralları kullanın. Ayrıca, aynı erişim gereksinimlerine sahip çok sayıda veritabanınız olduğunda ve her veritabanını ayrı ayrı yapılandırmak istemeyebilirsiniz.
Not
İş sürekliliği bağlamında taşınabilir veritabanları hakkında bilgi edinmek için bkz. Olağanüstü durum kurtarma için kimlik doğrulama gereksinimleri.
Sunucu düzeyi ile veritabanı düzeyi IP güvenlik duvarı kurallarını karşılaştırma
Bir veritabanının kullanıcıları başka bir veritabanından tamamen yalıtılmış olmalıdır.
Varsa, erişim vermek için veritabanı düzeyinde IP güvenlik duvarı kurallarını kullanın. Bu yöntem, güvenlik duvarı üzerinden tüm veritabanlarına erişim izni olan sunucu düzeyinde IP güvenlik duvarı kurallarının kullanımından kaçınıyor. Bu, savunmaların derinliğini azaltır.
IP adreslerinde kullanıcıların tüm veritabanlarına erişmesi gerekiyor mu?
Evet ise, IP güvenlik duvarı kurallarını yapılandırmanız gereken sayısını azaltmak için sunucu düzeyinde IP güvenlik duvarı kurallarını kullanın.
IP güvenlik duvarı kurallarını yapılandıran kişi veya ekip yalnızca Azure portal, PowerShell veya REST API?
Öyleyse, sunucu düzeyinde IP güvenlik duvarı kurallarını kullanmalısınız. Veritabanı düzeyinde IP güvenlik duvarı kuralları yalnızca Transact-SQL.
IP güvenlik duvarı kurallarını yapılandıran kişi veya ekibin veritabanı düzeyinde üst düzey izinlere sahip olması yasaklandı mı?
Öyleyse, sunucu düzeyinde IP güvenlik duvarı kurallarını kullanın. Transact-SQL aracılığıyla veritabanı düzeyinde IP güvenlik duvarı kurallarını yapılandırmak için veritabanı düzeyinde CONTROL DATABASE iznine SQL.
IP güvenlik duvarı kurallarını yapılandıran veya denetleen kişi veya ekip, birçok (belki de yüzlerce) veritabanı için IP güvenlik duvarı kurallarını merkezi olarak mı yönetir?
Bu senaryoda en iyi yöntemler, sizin ihtiyaçlarınıza ve ortamınıza göre belirlenir. Sunucu düzeyinde IP güvenlik duvarı kurallarının yapılandırılması daha kolay olabilir, ancak betik oluşturma, kuralları veritabanı düzeyinde yapılandırabilirsiniz. Ayrıca sunucu düzeyinde IP güvenlik duvarı kuralları kullanıyorsanız bile, veritabanında CONTROL iznine sahip kullanıcıların veritabanı düzeyinde IP güvenlik duvarı kuralları oluştursa da bunu görmek için veritabanı düzeyinde IP güvenlik duvarı kurallarını denetlemeniz gerekebilir.
Sunucu düzeyinde ve veritabanı düzeyinde IP güvenlik duvarı kurallarının bir karışımını kullanabilir miyim?
Evet. Yöneticiler gibi bazı kullanıcıların sunucu düzeyinde IP güvenlik duvarı kurallarına ihtiyacı olabilir. Veritabanı uygulamasının kullanıcıları gibi diğer kullanıcıların veritabanı düzeyinde IP güvenlik duvarı kurallarına ihtiyacı olabilir.
İnternet bağlantıları
Bir bilgisayar sunucunuza İnternet'den bağlanmaya çalıştığında, güvenlik duvarı önce isteğin kaynak IP adresini bağlantının isteği veritabanı düzeyinde IP güvenlik duvarı kurallarına karşı denetler.
- Adres, veritabanı düzeyinde IP güvenlik duvarı kurallarında belirtilen bir aralık içinde ise, kuralı içeren veritabanına bağlantı izni verir.
- Adres, veritabanı düzeyinde IP güvenlik duvarı kurallarında bir aralık içinde değilse, güvenlik duvarı sunucu düzeyinde IP güvenlik duvarı kurallarını denetler. Adres, sunucu düzeyinde IP güvenlik duvarı kurallarında bulunan bir aralık içinde ise, bağlantı izni verir. Sunucu düzeyinde IP güvenlik duvarı kuralları, sunucu tarafından yönetilen tüm veritabanları için geçerlidir.
- Adres, veritabanı düzeyindeki veya sunucu düzeyindeKI IP güvenlik duvarı kurallarının herhangi birsinde yer alan bir aralık içinde değilse bağlantı isteği başarısız olur.
Not
Yerel bilgisayarınızdan Azure SQL Veritabanı için, ağ ve yerel bilgisayarınızdan güvenlik duvarının TCP bağlantı noktası 1433'te giden iletişime izin verileye sahip olduğundan emin olun.
Azure içinden bağlantılar
Azure'da barındırılan uygulamaların SQL bağlanmasına izin vermek için Azure bağlantıları etkinleştirilmelidir. Azure bağlantılarını etkinleştirmek için başlangıç ve bitiş IP adreslerinin 0.0.0.0 olarak ayarlanmış bir güvenlik duvarı kuralı olması gerekir.
Azure'dan bir uygulama sunucuya bağlanmaya çalıştığında, güvenlik duvarı bu güvenlik duvarı kuralının mevcut olduğunu doğrular ve Azure bağlantılarına izin verilip izin verilmeyeceklerini denetler. Güvenlik duvarları ve sanal ağlar ayarlarında Azure Azure portal kaynaklarının bu sunucuya erişmesine izin ver ayarı AÇıK olarak değiştirerek doğrudan dikey penceresinden bu açık olabilir. ayarı ON olarak değiştirerek AllowAllWindowsAzureIps adlı IP 0.0.0.0 - 0.0.0.0 için bir gelen güvenlik duvarı kuralı oluşturur. Kural, ana veritabanınıza ve veritabanınıza sys.firewall_rules. Portalı kullanıyorsanız başlangıç ve bitiş IP adresleri 0.0.0.0 olarak ayarlanmış bir güvenlik duvarı kuralı oluşturmak için PowerShell veya Azure CLI kullanın.
Önemli
Bu seçenek, güvenlik duvarını diğer müşterilerin aboneliklerinden gelen bağlantılar da dahil olmak üzere Azure'dan gelen tüm bağlantılara izin verecek şekilde yapılandırmaktadır. Bu seçeneği tercih ediyorsanız, oturum açma ve kullanıcı izinlerinde erişimin yalnızca yetkili kullanıcılarla sınır olduğundan emin olun.
İzinler
Azure SQL Server için IP güvenlik duvarı kuralı oluşturmak ve yönetmek istiyorsanız şu rollerden birine sahip olmanız gerekir:
- SQL Server Katkıda Bulunan rolünde
- SQL Security Manager rolünde
- Azure aboneliğini içeren kaynağın sahibi SQL Server
IP güvenlik duvarı kurallarını oluşturma ve yönetme
İlk sunucu düzeyinde güvenlik duvarı ayarını oluşturmak için Azure portal, AzureCLI veya azure Azure PowerShell kullanarak program aracılığıyla REST API. Bu yöntemleri veya Transact-SQL.
Önemli
Veritabanı düzeyinde IP güvenlik duvarı kuralları yalnızca Transact-SQL.
Performansı artırmak için sunucu düzeyinde IP güvenlik duvarı kuralları veritabanı düzeyinde geçici olarak önbelleğe alınır. Önbelleği yenilemek için bkz. DBCC FLUSHAUTHCACHE.
İpucu
Sunucu düzeyinde ve veritabanı düzeyinde güvenlik duvarı değişikliklerini denetim için Veritabanı Denetimi'ne kullanabilirsiniz.
Sunucu Azure portal IP güvenlik duvarı kurallarını yönetmek için güvenlik duvarını kullanma
Sunucu düzeyinde IP güvenlik duvarı kuralı ayarlamak Azure portal veritabanınıza veya sunucunuza ilişkin genel bakış sayfasına gidin.
İpucu
Öğretici için bkz. Azure portal kullanarak veritabanı oluşturma.
Veritabanına genel bakış sayfasından
Veritabanı genel bakış sayfasından sunucu düzeyinde bir IP güvenlik duvarı kuralı ayarlamak için, aşağıdaki görüntüde olduğu gibi araç çubuğunda Sunucu güvenlik duvarını ayarla'ya tıklayın.

Sunucunun Güvenlik duvarı ayarları sayfası açılır.
Araç çubuğunda İstemci IP'sini ekle'yi seçerek kullanmakta olduğunu bilgisayarın IP adresini ekleyin ve kaydet'i seçin. Geçerli IP adresiniz için sunucu düzeyinde bir IP güvenlik duvarı kuralı oluşturulur.

Sunucuya genel bakış sayfasından
Sunucunuza ilişkin genel bakış sayfası açılır. Tam sunucu adını (örneğin, mynewserver20170403.database.windows.net) gösterir ve daha fazla yapılandırma seçeneği sağlar.
Bu sayfadan sunucu düzeyinde bir kural ayarlamak için sol tarafta yer alan Ayarlar Güvenlik Duvarı'nı seçin.
Araç çubuğunda İstemci IP'sini ekle'yi seçerek kullanmakta olduğunu bilgisayarın IP adresini ekleyin ve kaydet'i seçin. Geçerli IP adresiniz için sunucu düzeyinde bir IP güvenlik duvarı kuralı oluşturulur.
IP güvenlik duvarı SQL transact-SQL kullanma
| Katalog görünümü veya saklı yordam | Level | Description |
|---|---|---|
| sys.firewall_rules | Sunucu | Geçerli sunucu düzeyinde IP güvenlik duvarı kurallarını görüntüler |
| sp_set_firewall_rule | Sunucu | Sunucu düzeyinde IP güvenlik duvarı kuralları oluşturur veya bu kuralları güncelleştirme |
| sp_delete_firewall_rule | Sunucu | Sunucu düzeyinde IP güvenlik duvarı kurallarını kaldırır |
| sys.database_firewall_rules | Veritabanı | Geçerli veritabanı düzeyinde IP güvenlik duvarı kurallarını görüntüler |
| sp_set_database_firewall_rule | Veritabanı | Veritabanı düzeyinde IP güvenlik duvarı kurallarını oluşturur veya günceller |
| sp_delete_database_firewall_rule | Veritabanları | Veritabanı düzeyinde IP güvenlik duvarı kurallarını kaldırır |
Aşağıdaki örnek mevcut kuralları gözden alır, Contoso sunucusunda bir IP adresi aralığını sağlar ve bir IP güvenlik duvarı kuralını siler:
SELECT * FROM sys.firewall_rules ORDER BY name;
Ardından, sunucu düzeyinde bir IP güvenlik duvarı kuralı ekleyin.
EXECUTE sp_set_firewall_rule @name = N'ContosoFirewallRule',
@start_ip_address = '192.168.1.1', @end_ip_address = '192.168.1.10'
Sunucu düzeyinde bir IP güvenlik duvarı kuralını silmek için saklı yordamı sp_delete_firewall_rule yürütün. Aşağıdaki örnek ContosoFirewallRule kuralını siler:
EXECUTE sp_delete_firewall_rule @name = N'ContosoFirewallRule'
Sunucu düzeyinde IP güvenlik duvarı kurallarını yönetmek için PowerShell kullanma
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Önemli
PowerShell Azure Resource Manager modülü hala Azure SQL Veritabanı, ancak tüm geliştirmeler artık Az.Sql modülü için. Bu cmdlet'ler için bkz. AzureRM.Sql. Az ve AzureRm modüllerinin komutlarının bağımsız değişkenleri önemli ölçüde aynıdır.
| Cmdlet | Level | Description |
|---|---|---|
| Get-AzSqlServerFirewallRule | Sunucu | Sunucu düzeyinde geçerli güvenlik duvarı kurallarını döndürür |
| New-AzSqlServerFirewallRule | Sunucu | Sunucu düzeyinde yeni bir güvenlik duvarı kuralı oluşturur |
| Set-AzSqlServerFirewallRule | Sunucu | Sunucu düzeyinde mevcut güvenlik duvarı kuralının özelliklerini güncelleştirir |
| Remove-AzSqlServerFirewallRule | Sunucu | Sunucu düzeyinde güvenlik duvarı kurallarını kaldırır |
Aşağıdaki örnekte sunucu düzeyinde IP güvenlik duvarı kuralı ayarlamak için PowerShell kullanılır:
New-AzSqlServerFirewallRule -ResourceGroupName "myResourceGroup" `
-ServerName $servername `
-FirewallRuleName "ContosoIPRange" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.255"
İpucu
Örneğin$servername tam DNS adını değil sunucu adını belirtin. Örneğin, tam DNS adı yerine mysqldbserver mysqldbserver.database.windows.net
Hızlı başlangıç bağlamındaki PowerShell örnekleri için bkz. DB oluşturma - PowerShell ve Tek veritabanı oluşturma ve PowerShell kullanarak sunucu düzeyinde IP güvenlik duvarı kuralı yapılandırma.
Sunucu düzeyinde IP güvenlik duvarı kurallarını yönetmek için CLI kullanma
| Cmdlet | Level | Description |
|---|---|---|
| az sql server firewall-rule create | Sunucu | Sunucu IP güvenlik duvarı kuralı oluşturur |
| az sql server firewall-rule list | Sunucu | Sunucuda IP güvenlik duvarı kurallarını listeler |
| az sql server firewall-rule show | Sunucu | IP güvenlik duvarı kuralının ayrıntısı gösterir |
| az sql server firewall-rule update | Sunucu | IP güvenlik duvarı kuralını güncelleştirme |
| az sql server firewall-rule delete | Sunucu | IP güvenlik duvarı kuralını siler |
Aşağıdaki örnekte sunucu düzeyinde IP güvenlik duvarı kuralı ayarlamak için CLI kullanılır:
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
İpucu
Örneğin$servername tam DNS adını değil sunucu adını belirtin. Örneğin, tam DNS adı yerine mysqldbserver mysqldbserver.database.windows.net
Hızlı başlangıç bağlamındaki bir CLI örneği için bkz. VERITABANı oluşturma - Azure CLI ve Tek veritabanı oluşturma ve Azure CLI kullanarak sunucu düzeyinde IP güvenlik duvarı kuralı yapılandırma.
Sunucu REST API IP güvenlik duvarı kurallarını yönetmek için güvenlik duvarı kullanma
| API | Level | Description |
|---|---|---|
| Güvenlik duvarı kurallarını listele | Sunucu | Geçerli sunucu düzeyinde IP güvenlik duvarı kurallarını görüntüler |
| Güvenlik duvarı kurallarını oluşturma veya güncelleştirme | Sunucu | Sunucu düzeyinde IP güvenlik duvarı kuralları oluşturur veya bu kuralları güncelleştirme |
| Güvenlik duvarı kurallarını silme | Sunucu | Sunucu düzeyinde IP güvenlik duvarı kurallarını kaldırır |
| Güvenlik duvarı kurallarını al | Sunucu | Sunucu düzeyinde IP güvenlik duvarı kurallarını alır |
Veritabanı güvenlik duvarı sorunlarını giderme
Aşağıdaki noktaları göz önünde bulundurarak Azure SQL Veritabanı beklediğiniz gibi davranmaz.
Yerel güvenlik duvarı yapılandırması:
Bilgisayarınızın bu Azure SQL Veritabanı önce bilgisayarınızda TCP bağlantı noktası 1433 için bir güvenlik duvarı özel durumu oluşturmanız gerekebilir. Azure bulut sınırının içinde bağlantı yapmak için ek bağlantı noktaları açmanız gerekir. Daha fazla bilgi için, SQL Veritabanı 4.5 ve ADO.NET için 1433'üaşan bağlantı noktaları ve Azure SQL Veritabanı.
Ağ adresi çevirisi:
Ağ adresi çevirisi (NAT) nedeniyle, bilgisayarınız tarafından Azure SQL Veritabanı ip adresi, bilgisayarınızın IP yapılandırma ayarlarından farklı olabilir. Bilgisayarınızın Azure’a bağlanırken kullandığı IP adresini görüntülemek için:
- Portalda oturum açın.
- Veritabanınızı barındıran sunucuda Yapılandır sekmesine gidin.
- Geçerli İstemci IP Adresi, İzin Verilen IP Adresleri bölümünde görüntülenir. Bu bilgisayarın sunucuya erişmesine izin vermek için İzin Verilen IP Adresleri için Ekle'yi seçin.
İzin verme listesinde yapılan değişiklikler henüz etkili olmadı:
Güvenlik duvarı yapılandırmasında yapılan değişikliklerin etkili olması için Azure SQL Veritabanı dakika kadar gecikme olabilir.
Oturum açma yetkisi yok veya yanlış bir parola kullanıldı:
Bir oturum açmanın sunucuda izinleri yoksa veya parola yanlışsa sunucuyla bağlantı reddedilir. Güvenlik duvarı ayarı oluşturmak yalnızca istemcilere sunucunuza bağlanmayı deneme fırsatı verir. İstemcinin gerekli güvenlik kimlik bilgilerini yine de sağlaması gerekir. Oturum açma bilgilerini hazırlama hakkında daha fazla bilgi için bkz. Veritabanı erişimini denetleme ve izin vermek.
Dinamik IP adresi:
Dinamik IP adresi kullanan bir İnternet bağlantınız varsa ve güvenlik duvarında sorun varsa aşağıdaki çözümlerden birini deneyin:
- İnternet servis sağlayıcınızdan sunucuya erişen istemci bilgisayarlarınıza atanmış olan IP adres aralığını öğrenin. Bu IP adresi aralığını bir IP güvenlik duvarı kuralı olarak ekleyin.
- İstemci bilgisayarlarınızı yerine statik IP adresleyebilirsiniz. IP adreslerini IP güvenlik duvarı kuralları olarak ekleyin.
Sonraki adımlar
- Kurumsal ağ ortamınız, Azure veri merkezleri tarafından kullanılan işlem IP adresi aralıklarından (SQL aralığı dahil) gelen iletişime izin verir. Bu IP adreslerini izin verme listesine eklemeniz gerekir. Bkz. Microsoft Azure merkezi IP aralıkları.
- Azure SQL Veritabanı'de tek veritabanı oluşturma hızlı Azure SQL Veritabanı.
- Açık kaynak veya üçüncü taraf uygulamalardan Azure SQL Veritabanı veritabanına bağlanmayla ilgili yardım için bkz. İstemci hızlı başlangıç kod örnekleri Azure SQL Veritabanı..
- Açmanız gerektirilen ek bağlantı noktaları hakkında bilgi için SQL Veritabanı 4.5 ve ADO.NET için 1433'ü aşan bağlantı noktaları"nın "SQL Veritabanı: İç ve dış" bölümüne SQL Veritabanı
- Veritabanı güvenliğine genel Azure SQL Veritabanı için bkz. Veritabanınızı güvenli hale getirme.