Azure SQL Veritabanı ve Azure Synapse IP güvenlik duvarı kuralları

Şunlar için geçerlidir: Azure SQL Veritabanı Azure Synapse Analizi

örneğin, Azure SQL Veritabanında veya Azure Synapse Analytics'te mysqlserver adlı yeni bir sunucu oluşturduğunuzda, sunucu düzeyinde güvenlik duvarı sunucunun genel uç noktasına tüm erişimi engeller (mysqlserver.database.windows.net erişilebilir). Kolaylık olması için SQL Veritabanı hem SQL Veritabanı hem de Azure Synapse Analytics'e başvurmak için kullanılır.

Önemli

Bu makale Azure SQL Yönetilen Örneği için geçerli değildir. Ağ yapılandırması hakkında daha fazla bilgi için bkz. Uygulamanızı Azure SQL Yönetilen Örneği bağlama.

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'ten ve Azure'dan bağlantı girişimlerinin sunucunuza veya veritabanınıza ulaşmadan önce güvenlik duvarından geçmesi gerekir.

Güvenlik duvarı yapılandırma diyagramı

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. Varsayılan değer, bir sunucu için en fazla 256 sunucu düzeyinde IP güvenlik duvarı kuralıdır. 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 güvenlik duvarı kurallarını yapılandırabilirsiniz.

Not

Azure portal kullanılarak yapılandırılırken en fazla sunucu düzeyinde IP güvenlik duvarı kuralı sayısı 128 ile sınırlıdır.

  • Portalı veya PowerShell'i kullanmak için abonelik sahibi veya abonelik katkıda bulunanı olmanız gerekir.
  • Transact-SQL kullanmak için ana veritabanına sunucu düzeyinde asıl oturum açma veya Azure Active Directory yöneticisi olarak bağlanmanız gerekir. (Sunucu düzeyinde ip güvenlik duvarı kuralı önce Azure düzeyinde izinlere sahip bir kullanıcı tarafından oluşturulmalıdır.)

Not

Varsayılan olarak, Azure portal yeni bir mantıksal SQL sunucusu oluşturulurken 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 güvenlik duvarı kuralları istemcilerin belirli (güvenli) veritabanlarına erişmesini sağlar. Her veritabanı ( ana veritabanı dahil) için kuralları oluşturursunuz ve bunlar tek tek veritabanında depolanır.

  • Yalnızca Transact-SQL deyimlerini kullanarak ve ancak ilk sunucu düzeyi güvenlik duvarını yapılandırdıktan sonra ana ve kullanıcı veritabanları için veritabanı düzeyinde IP güvenlik duvarı kurallarını oluşturabilir ve yönetebilirsiniz.
  • Veritabanı düzeyinde IP güvenlik duvarı kuralı için, sunucu düzeyinde IP güvenlik duvarı kuralında bulunan aralığın dışındaki bir IP adresi aralığını belirtirseniz, yalnızca veritabanı düzeyi aralığındaki IP adreslerine sahip istemciler veritabanına erişebilir.
  • Varsayılan değer, veritabanı için en fazla 256 veritabanı düzeyinde IP güvenlik duvarı kuralıdır. Veritabanı düzeyinde IP güvenlik duvarı kurallarını yapılandırma hakkında daha fazla bilgi için bu makalenin devamında yer alan örne bakın ve sp_set_database_firewall_rule (Azure SQL Veritabanı) konusuna bakın.

Güvenlik duvarı kurallarını ayarlama önerileri

Mümkün olduğunda veritabanı düzeyinde IP güvenlik duvarı kuralları kullanmanızı öneririz. 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ını kullanın. Ayrıca, aynı erişim gereksinimlerine sahip birçok veritabanınız olduğunda ve her veritabanını tek tek yapılandırmak istemediğinizde de bunları kullanın.

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ılmalı mı?

Evet ise, 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şime izin veren sunucu düzeyinde IP güvenlik duvarı kurallarının kullanılmasını önler. Bu da savunmanın derinliğini azaltır.

IP adreslerindeki kullanıcıların tüm veritabanlarına erişmesi gerekiyor mu?

Evet ise, IP güvenlik duvarı kurallarını yapılandırma 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 ekibin yalnızca Azure portal, PowerShell veya REST API üzerinden erişimi var mı?

Öyleyse, sunucu düzeyinde IP güvenlik duvarı kurallarını kullanmanız gerekir. Veritabanı düzeyinde IP güvenlik duvarı kuralları yalnızca Transact-SQL aracılığıyla yapılandırılabilir.

IP güvenlik duvarı kurallarını yapılandıran kişi veya ekibin veritabanı düzeyinde üst düzey izinlere sahip olması yasak 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 en azından CONTROL DATABASE iznine sahip olmanız gerekir.

IP güvenlik duvarı kurallarını yapılandıran veya denetleyen kişi veya ekip, birçok (belki de yüzlerce) veritabanı için IP güvenlik duvarı kurallarını merkezi olarak mı yönetiyor?

Bu senaryoda, en iyi uygulamalar gereksinimlerinize ve ortamınıza göre belirlenir. Sunucu düzeyinde IP güvenlik duvarı kurallarını yapılandırmak daha kolay olabilir, ancak betik oluşturma, veritabanı düzeyinde kuralları yapılandırabilir. Sunucu düzeyinde IP güvenlik duvarı kuralları kullansanız bile, veritabanında CONTROL iznine sahip kullanıcıların veritabanı düzeyinde IP güvenlik duvarı kuralları oluşturup oluşturmamadığını 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 için veritabanı düzeyinde IP güvenlik duvarı kuralları gerekebilir.

İnternet'ten bağlantılar

Bir bilgisayar İnternet'ten sunucunuza bağlanmaya çalıştığında, güvenlik duvarı ilk olarak isteğin kaynak IP adresini bağlantının istediği veritabanı için veritabanı düzeyinde IP güvenlik duvarı kurallarına göre denetler.

  • Adres, veritabanı düzeyinde IP güvenlik duvarı kurallarında belirtilen bir aralık içindeyse, kuralı içeren veritabanına bağlantı verilir.
  • Adres, veritabanı düzeyinde IP güvenlik duvarı kurallarındaki 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 yer alan bir aralık içindeyse, bağlantı verilir. Sunucu düzeyinde IP güvenlik duvarı kuralları, sunucu tarafından yönetilen tüm veritabanları için geçerlidir.
  • Adres, veritabanı düzeyinde veya sunucu düzeyindeki IP güvenlik duvarı kurallarından herhangi birinde 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ına erişmek için, ağınızdaki ve yerel bilgisayarınızdaki güvenlik duvarının 1433 numaralı TCP bağlantı noktasında giden iletişime izin verin.

Azure'ın içinden bağlantılar

Azure'da barındırılan uygulamaların SQL sunucunuza bağlanmasına izin vermek için Azure bağlantılarının etkinleştirilmesi gerekir. Azure bağlantılarını etkinleştirmek için, başlangıç ve bitiş IP adresleri 0.0.0.0 olarak ayarlanmış bir güvenlik duvarı kuralı olmalıdır. Bu önerilen kural yalnızca Azure SQL Veritabanı için geçerlidir.

Azure'dan bir uygulama sunucuya bağlanmaya çalıştığında, güvenlik duvarı bu güvenlik duvarı kuralının mevcut olduğunu doğrulayarak Azure bağlantılarına izin verildiğini denetler. Bu, Güvenlik duvarları ve sanal ağlar ayarlarında Azure Hizmetlerinin ve kaynaklarının bu sunucuya erişmesine izin ver seçeneği AÇıK olarak değiştirilerek doğrudan Azure portal dikey penceresinden açılabilir. Ayarın AÇI olarak değiştirilmesi , AllowAllWindowsAzureIps adlı 0.0.0.0 - 0.0.0 IP'sine yönelik bir gelen güvenlik duvarı kuralı oluşturur. Kural, ana veritabanınızda sys.firewall_rules görünümünde görüntülenebilir. Portalı kullanmı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 belirtirseniz, oturum açma ve kullanıcı izinlerinizin erişimi yalnızca yetkili kullanıcılarla sınırladığınızdan 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:

IP güvenlik duvarı kurallarını oluşturma ve yönetme

İlk sunucu düzeyinde güvenlik duvarı ayarını Azure portal kullanarak veya Azure PowerShell,Azure CLI veya Azure REST API kullanarak program aracılığıyla oluşturursunuz. Bu yöntemleri veya Transact-SQL'i kullanarak ek sunucu düzeyinde IP güvenlik duvarı kuralları oluşturup yönetirsiniz.

Önemli

Veritabanı düzeyinde IP güvenlik duvarı kuralları yalnızca Transact-SQL kullanılarak oluşturulabilir ve yönetilebilir.

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 denetlemek için Veritabanı Denetimi'ni kullanabilirsiniz.

Sunucu düzeyinde IP güvenlik duvarı kurallarını yönetmek için Azure portal kullanma

Azure portal sunucu düzeyinde ip güvenlik duvarı kuralı ayarlamak için veritabanınızın veya sunucunuzun genel bakış sayfasına gidin.

İpucu

Öğretici için bkz. Azure portal kullanarak veritabanı oluşturma.

Veritabanına genel bakış sayfasından

  1. Veritabanı genel bakış sayfasından sunucu düzeyinde ip güvenlik duvarı kuralı ayarlamak için, aşağıdaki resimde gösterildiği gibi araç çubuğunda Sunucu güvenlik duvarı ayarla'yı seçin.

    Sunucu IP güvenlik duvarı kuralı

    Sunucunun Güvenlik Duvarı ayarları sayfası açılır.

  2. Kullanmakta olduğunuz bilgisayarın IP adresini eklemek için araç çubuğunda İstemci IP'si ekle'yi seçin ve ardından Kaydet'i seçin. Geçerli IP adresiniz için sunucu düzeyinde bir IP güvenlik duvarı kuralı oluşturulur.

    Sunucu düzeyinde IP güvenlik duvarı kuralı ayarlama

Sunucuya genel bakış sayfasından

Sunucunuzun genel bakış sayfası açılır. Tam sunucu adını ( mynewserver20170403.database.windows.net gibi) gösterir ve daha fazla yapılandırma için seçenekler sağlar.

  1. Bu sayfadan sunucu düzeyinde bir kural ayarlamak için sol taraftaki Ayarlarmenüsünden Güvenlik Duvarı'nı seçin.

  2. Kullanmakta olduğunuz bilgisayarın IP adresini eklemek için araç çubuğunda İstemci IP'si ekle'yi seçin ve ardından 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ı kurallarını yönetmek için Transact-SQL kullanma

Katalog görünümü veya saklı yordam Level Açıklama
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 güncelleştirir
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üncelleştirir
sp_delete_database_firewall_rule Veritabanları Veritabanı düzeyinde IP güvenlik duvarı kurallarını kaldırır

Aşağıdaki örnekte mevcut kurallar incelenerek Contoso sunucusunda bir ip adresi aralığı etkinleştirilir ve bir IP güvenlik duvarı kuralı silinir:

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 ip güvenlik duvarı kuralını silmek için sp_delete_firewall_rule saklı yordamı yürütür. 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şime yönelik ö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ü Azure SQL Veritabanı tarafından hala desteklenmektedir, ancak tüm geliştirmeler artık Az.Sql modülüne yöneliktir. Bu cmdlet'ler için bkz. AzureRM.Sql. Az ve AzureRm modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır.

Cmdlet Level Açıklama
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 örnek, sunucu düzeyinde bir IP güvenlik duvarı kuralı ayarlamak için PowerShell'i kullanır:

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

İpucu

$servername için tam DNS adını değil sunucu adını belirtin; örneğin, mysqldbserver.database.windows.net yerine mysqldbserver değerini belirtin

Hızlı başlangıç bağlamında PowerShell örnekleri için bkz. Veritabanı 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 Açıklama
az sql server firewall-rule create Sunucu Sunucu IP güvenlik duvarı kuralı oluşturur
az sql server firewall-rule list Sunucu Sunucudaki IP güvenlik duvarı kurallarını listeler
az sql server firewall-rule show Sunucu IP güvenlik duvarı kuralının ayrıntılarını gösterir
az sql server firewall-rule update Sunucu IP güvenlik duvarı kuralı Güncelleştirmeler
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ılmaktadı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

$servername için tam DNS adını değil sunucu adını belirtin; örneğin, mysqldbserver.database.windows.net yerine mysqldbserver değerini belirtin

Hızlı başlangıç bağlamında 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 düzeyinde IP güvenlik duvarı kurallarını yönetmek için REST API kullanma

API Level Açıklama
Güvenlik duvarı kurallarını listeleme 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 güncelleştirir
Güvenlik duvarı kurallarını silme Sunucu Sunucu düzeyinde IP güvenlik duvarı kurallarını kaldırır
Güvenlik duvarı kurallarını alma Sunucu Sunucu düzeyinde IP güvenlik duvarı kurallarını alır

Veritabanı güvenlik duvarı sorunlarını giderme

Azure SQL Veritabanına erişim beklediğiniz gibi davranmadığında aşağıdaki noktaları göz önünde bulundurun.

  • Yerel güvenlik duvarı yapılandırması:

    Bilgisayarınızın Azure SQL Veritabanına erişebilmesi için önce bilgisayarınızda 1433 numaralı TCP bağlantı noktası için bir güvenlik duvarı özel durumu oluşturmanız gerekebilir. Azure bulut sınırı içinde bağlantı oluşturmak için ek bağlantı noktaları açmanız gerekebilir. Daha fazla bilgi için ADO.NET 4.5 ve Azure SQL Veritabanı için 1433'ün ötesindeki bağlantı noktalarının "SQL Veritabanı: Dış ve içeride" bölümüne bakın.

  • Ağ adresi çevirisi:

    Ağ adresi çevirisi (NAT) nedeniyle, bilgisayarınız tarafından Azure SQL Veritabanına bağlanmak için kullanılan IP adresi, bilgisayarınızın IP yapılandırma ayarlarındaki IP adresinden farklı olabilir. Bilgisayarınızın Azure’a bağlanırken kullandığı IP adresini görüntülemek için:

    1. Portalda oturum açın.
    2. Veritabanınızı barındıran sunucuda Yapılandır sekmesine gidin.
    3. 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 geçerli olmadı:

    Azure SQL Veritabanı güvenlik duvarı yapılandırmasında yapılan değişikliklerin etkili olması beş dakikaya kadar gecikebilir.

  • Oturum açma yetkisi yok veya yanlış bir parola kullanıldı:

    Oturum açma bilgilerinin sunucuda izinleri yoksa veya parola yanlışsa, sunucu bağlantısı reddedilir. Güvenlik duvarı ayarı oluşturmak yalnızca istemcilere sunucunuza bağlanmayı deneme fırsatı verir. İstemcinin yine de gerekli güvenlik kimlik bilgilerini sağlaması gerekir. Oturum açma bilgilerini hazırlama hakkında daha fazla bilgi için bkz. Veritabanı erişimini denetleme ve verme.

  • Dinamik IP adresi:

    Dinamik IP adresleme kullanan bir İnternet bağlantınız varsa ve güvenlik duvarından geçerken sorun yaşıyorsanız 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 için statik IP adresi alma. IP adreslerini IP güvenlik duvarı kuralları olarak ekleyin.

Sonraki adımlar