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

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

örneğin, Azure SQL Veritabanı veya Azure Synapse Analytics'te mysqlserver adlı yeni bir sunucu oluşturduğunuzda, sunucu düzeyinde bir 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. Bu makale Azure SQL Yönetilen Örneği için geçerli değildir. Ağ yapılandırması hakkında bilgi için bkz. Uygulamanızı Azure SQL Yönetilen Örneği Bağlan.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Güvenlik duvarı nasıl çalışır?

aşağıdaki diyagramda gösterildiği gibi, İnternet'ten ve Azure'dan Bağlan denemelerinin sunucunuza veya veritabanınıza ulaşmadan önce güvenlik duvarından geçmesi gerekir.

Firewall configuration diagram

Önemli

Azure Synapse yalnızca sunucu düzeyinde IP güvenlik duvarı kurallarını destekler. Veritabanı düzeyinde IP güvenlik duvarı kurallarını desteklemez.

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. Sunucu düzeyinde IP güvenlik duvarı kuralı sayısı üst sınırı, bir sunucu için 256 ile sınırlı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 sunucu düzeyinde IP güvenlik duvarı kuralı sayısı üst sınırı 256 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 sunucu düzeyinde asıl oturum açma adı veya Microsoft Entra yöneticisi olarak ana veritabanına 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ından yeni bir mantıksal SQL sunucusu oluşturulurken Azure Hizmetlerinin 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.
  • Bir veritabanı için varsayılan değer 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ı ayarlamaya yönelik Öneriler

Mümkün olduğunda veritabanı düzeyinde IP güvenlik duvarı kurallarını 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. Aynı erişim gereksinimlerine sahip birçok veritabanınız olduğunda ve her veritabanını ayrı ayrı 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ılmış mı olmalıdır?

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, savunmanızı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 ihtiyacınız vardır.

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 yöntemler 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şturmadiğini 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ğlan

Bir bilgisayar sunucunuza İnternet'ten 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üzeyinde 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ı 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ğlan

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 adreslerinin 0.0.0.0 olarak ayarlandığı 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 bölmesinden açılabilir. Ayarın ON olarak değiştirilmesi, AllowAllWindowsAzureIps adlı IP 0.0.0.0 - 0.0.0.0 için bir gelen güvenlik duvarı kuralı oluşturur. Kural, veritabanı sys.firewall_rules master 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ırılı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ını 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ını kullanma

Azure portalında 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ını kullanarak veritabanı oluşturma.

Veritabanına genel bakış sayfasından

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

    Screenshot of the set server firewall setting in the Azure portal.

    Sunucunun sayfası açılır.

  2. Kullandığınız bilgisayarın IP adresini eklemek için Güvenlik duvarı kuralları bölümüne bir kural ekleyin ve ardından Kaydet'i seçin. Geçerli IP adresiniz için sunucu düzeyinde bir IP güvenlik duvarı kuralı oluşturulur.

    Screenshot shows the Networking page where you can set the server-level IP firewall rules.

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 Ayarlar menüsünden Ağ'ı seçin.

  2. Kullandığınız bilgisayarın IP adresini eklemek için Güvenlik duvarı kuralları bölümüne bir kural ekleyin 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 örnek, mevcut kuralları inceler, Contoso sunucusunda bir dizi IP adresi etkinleştirir 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 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şim 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ü 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 ö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

$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ındaki 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 örnek, sunucu düzeyinde ip güvenlik duvarı kuralı ayarlamak için CLI kullanı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

için $servername, tam DNS adını değil sunucu adını belirtin. Örneğin, yerine mysqldbserver.database.windows.netkullanınmysqldbserver.

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.

Azure Synapse Analytics için aşağıdaki örneklere bakın:

Cmdlet Level Açıklama
az synapse workspace firewall-rule create Sunucu Güvenlik duvarı kuralı oluşturma
az synapse workspace firewall-rule delete Sunucu Güvenlik duvarı kuralını silme
az synapse workspace firewall-rule list Sunucu Tüm güvenlik duvarı kurallarını listeleme
az synapse workspace firewall-rule show Sunucu Güvenlik duvarı kuralı alma
az synapse workspace firewall-rule update Sunucu Güvenlik duvarı kuralını güncelleştirme
az synapse workspace firewall-rule wait Sunucu Bir güvenlik duvarı kuralı koşulu karşılanıncaya kadar CLI'yi bekleme durumuna yerleştirin

Aşağıdaki örnekte, Azure Synapse'te sunucu düzeyinde ip güvenlik duvarı kuralı ayarlamak için CLI kullanılmaktadır:

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

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ı erişimi 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ı 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ının 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ı 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. Portala oturum açma
    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 ver listesindeki değişiklikler henüz geçerli değildir:

    Azure SQL Veritabanı güvenlik duvarı yapılandırmasındaki değişikliklerin geçerli 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ı IP güvenlik duvarı kuralı olarak ekleyin.
    • İstemci bilgisayarlarınız için bunun yerine statik IP adresi alma. IP adreslerini IP güvenlik duvarı kuralları olarak ekleyin.

Sonraki adımlar