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.

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. 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:

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

  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 olduğu gibi araç çubuğunda Sunucu güvenlik duvarını ayarla'ya tıklayın.

    Sunucu IP güvenlik duvarı kuralı

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

  2. 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.

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

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.

  1. Bu sayfadan sunucu düzeyinde bir kural ayarlamak için sol tarafta yer alan Ayarlar Güvenlik Duvarı'nı seçin.

  2. 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:

    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 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