Aracılığıyla paylaş


Öğretici: Azure SQL Veritabanı'da veritabanının güvenliğini sağlama

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

Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • Sunucu düzeyinde ve veritabanı düzeyinde güvenlik duvarı kuralları oluşturma
  • Microsoft Entra yöneticisi yapılandırma
  • SQL kimlik doğrulaması, Microsoft Entra kimlik doğrulaması ve güvenli bağlantı dizesi ile kullanıcı erişimini yönetme
  • SQL için Microsoft Defender, denetim, veri maskeleme ve şifreleme gibi güvenlik özelliklerini etkinleştirme

Not

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

Azure SQL Veritabanı, şunları yapmanızı sağlayarak verilerin güvenliğini sağlar:

  • Güvenlik duvarı kurallarını kullanarak erişimi sınırlama
  • Kimlik gerektiren kimlik doğrulama mekanizmalarını kullanma
  • Rol tabanlı üyelikler ve izinlerle yetkilendirme kullanma
  • Güvenlik özelliklerini etkinleştirme

Not

Azure SQL Yönetilen Örneği, Azure SQL Yönetilen Örneği ve bağlantı mimarisinde açıklandığı gibi ağ güvenlik kuralları ve özel uç noktalar kullanılarak güvenli hale getirilir.

Daha fazla bilgi edinmek için Azure SQL Veritabanı güvenliğe genel bakış ve özellikler makalelerine bakın.

İpucu

Bu ücretsiz Learn modülü, Azure SQL Veritabanı'da veritabanınızın güvenliğini sağlamayı gösterir.

Önkoşullar

Öğreticiyi tamamlamak için aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Azure portalda oturum açma

Öğreticideki tüm adımlar için Azure portalında oturum açın

Güvenlik duvarı kuralları oluşturma

SQL Veritabanı veritabanları Azure'daki güvenlik duvarları tarafından korunur. Varsayılan olarak, sunucu ve veritabanına yapılan tüm bağlantılar reddedilir. Daha fazla bilgi edinmek için bkz . sunucu düzeyinde ve veritabanı düzeyinde güvenlik duvarı kuralları.

En güvenli yapılandırma için Azure hizmetlerine erişime izin ver seçeneğini KAPALI olarak ayarlayın. Ardından, bağlanması gereken kaynak için Azure VM veya bulut hizmeti gibi ayrılmış bir IP (klasik dağıtım) oluşturun ve yalnızca güvenlik duvarı üzerinden bu IP adresi erişimine izin verin. Resource Manager dağıtım modelini kullanıyorsanız, her kaynak için ayrılmış bir genel IP adresi gerekir.

Not

SQL Veritabanı 1433 numaralı bağlantı noktası üzerinden iletişim kurar. Bir şirket ağından bağlanmaya çalışıyorsanız ağınızın güvenlik duvarı tarafından 1433 numaralı bağlantı noktası üzerinden giden trafiğe izin verilmiyor olabilir. Bu durumda, yöneticiniz 1433 numaralı bağlantı noktasını açmadığı sürece sunucuya bağlanamazsınız.

Sunucu düzeyinde güvenlik duvarı kurallarını ayarlama

Sunucu düzeyinde IP güvenlik duvarı kuralları aynı sunucu içindeki tüm veritabanları için geçerlidir.

Sunucu düzeyinde güvenlik duvarı kuralı ayarlamak için:

  1. Azure portalında sol taraftaki menüden SQL veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

    Mantıksal SQL veritabanının Azure portalı sayfasının sunucu adını vurgulayan ekran görüntüsü.

    Not

    Öğreticinin devamında kullanmak üzere tam sunucu adınızı (yourserver.database.windows.net gibi) kopyaladığınızdan emin olun.

  2. Ayarlar'ın altında Ağ'ı seçin. Genel Erişim sekmesini seçin ve ardından Güvenlik duvarı kuralları bölümünü görüntülemek için Genel ağ erişimi'nin altında Seçili ağlar'ı seçin.

    Sunucu düzeyinde IP güvenlik duvarı kuralını gösteren mantıksal SQL Server için Azure portalı Ağ sayfasının ekran görüntüsü.

  3. Geçerli IP adresinizi yeni bir IP güvenlik duvarı kuralına eklemek için araç çubuğunda İstemci IP'sini ekle'yi seçin. IP güvenlik duvarı kuralı, tek bir IP adresi veya ip adresi aralığı için 1433 numaralı bağlantı noktasını açabilir.

  4. Güvenlik duvarı ayarlarınızı kaydetmek için Tamam'ı seçin.

Artık sunucuda belirtilen IP adresine veya IP adresi aralığına sahip herhangi bir veritabanına bağlanabilirsiniz.

Veritabanı güvenlik duvarı kurallarını ayarlama

Veritabanı düzeyinde güvenlik duvarı kuralları yalnızca bağımsız veritabanları için geçerlidir. Veritabanı, sunucu yük devretmesi sırasında bu kuralları korur. Veritabanı düzeyinde güvenlik duvarı kuralları yalnızca Transact-SQL (T-SQL) deyimleri kullanılarak ve yalnızca sunucu düzeyinde bir güvenlik duvarı kuralı yapılandırdıktan sonra yapılandırılabilir.

Veritabanı düzeyinde güvenlik duvarı kuralı ayarlamak için:

  1. Veritabanına bağlanın, örneğin SQL Server Management Studio'yu kullanarak.

  2. Nesne Gezgini'da veritabanına sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde bu deyimi ekleyin ve IP adresini genel IP adresinize değiştirin:

    EXECUTE sp_set_database_firewall_rule N'Example DB Rule','0.0.0.4','0.0.0.4';
    
  4. Araç çubuğunda Yürüt'e tıklayarak güvenlik duvarı kuralını oluşturun.

Not

Ana veritabanına bağlı olmanız gerekir ancak sp_set_firewall_rule komutunu kullanarak SSMS'de sunucu düzeyinde bir güvenlik duvarı kuralı da oluşturabilirsiniz.

Microsoft Entra yöneticisi oluşturma

Uygun Microsoft Entra Id (eski adıyla Azure Active Directory) yönetilen etki alanını kullandığınızdan emin olun. Etki alanınızı seçmek için Azure portalının sağ üst köşesini kullanın. Bu işlem hem Microsoft Entra Kimliği hem de veritabanınızı veya veri ambarınızı barındıran mantıksal sunucu için aynı aboneliğin kullanıldığını onaylar.

Dizini seçebileceğiniz Dizin + abonelik filtresi sayfasını gösteren Azure portalının ekran görüntüsü.

Microsoft Entra yöneticisini ayarlamak için:

  1. Azure portalında, SQL server sayfasında kaynak menüsünden Microsoft Entra Id'yi seçin ve ardından Yöneticiyi ayarla'yı seçerek Microsoft Entra Id bölmesini açın.

    Mantıksal sunucu için Azure portalı Microsoft Entra Id sayfasının ekran görüntüsü.

    Önemli

    Bu görevi gerçekleştirmek için "Genel Yönetici" olmanız gerekir.

  2. Microsoft Entra Id bölmesinde Microsoft Entra kullanıcısını veya grubunu arayıp seçin ve Seç'i seçin. Microsoft Entra kuruluşunuzun tüm üyeleri ve grupları listelenir ve microsoft Entra yöneticileri olarak gri gösterilen girdiler desteklenmez.

    Microsoft Entra yöneticisi eklemek için Azure portalı sayfasının ekran görüntüsü.

    Önemli

    Azure rol tabanlı erişim denetimi (Azure RBAC) yalnızca portal için geçerlidir ve SQL Server'a yayılmaz.

  3. Microsoft Entra yönetici sayfasının üst kısmında Kaydet'i seçin.

    Yönetici değiştirme işlemi birkaç dakika sürebilir. Yeni yönetici Microsoft Entra yönetici alanında görünür.

Not

Microsoft Entra yöneticisi ayarlanırken, yeni yönetici adı (kullanıcı veya grup) ana veritabanında oturum açma veya kullanıcı olarak bulunamaz. Varsa, kurulum başarısız olur ve bu tür bir yönetici adının zaten var olduğunu belirten değişiklikleri geri alır. Sunucu oturumu açma veya kullanıcı Microsoft Entra Id'nin bir parçası olmadığından, Microsoft Entra kimlik doğrulamasını kullanarak kullanıcıyı bağlamaya yönelik herhangi bir çaba başarısız olur.

Microsoft Entra Kimliğini yapılandırma hakkında bilgi için bkz:

Veritabanı erişimini yönetme

Veritabanına kullanıcı ekleyerek veya güvenli bağlantı dizesi ile kullanıcı erişimine izin vererek veritabanı erişimini yönetin. Bağlantı dizeleri dış uygulamalar için kullanışlıdır. Daha fazla bilgi edinmek için bkz . Oturum açma bilgilerini ve kullanıcı hesaplarını yönetme ve Microsoft Entra kimlik doğrulaması.

Kullanıcı eklemek için veritabanı kimlik doğrulama türünü seçin:

  • SQL kimlik doğrulaması, oturum açma işlemleri için kullanıcı adı ve parola kullanın ve yalnızca sunucudaki belirli bir veritabanı bağlamında geçerlidir

  • Microsoft Entra kimlik doğrulaması, Microsoft Entra Id tarafından yönetilen kimlikleri kullanma

SQL kimlik doğrulaması

SQL kimlik doğrulamasına sahip bir kullanıcı eklemek için:

  1. Veritabanına bağlanın, örneğin SQL Server Management Studio'yu kullanarak.

  2. Nesne Gezgini'da veritabanına sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde aşağıdaki komutu girin:

    CREATE USER ApplicationUser WITH PASSWORD = 'YourStrongPassword1';
    
  4. Kullanıcıyı oluşturmak için araç çubuğunda Yürüt'e tıklayın.

  5. Varsayılan olarak, kullanıcı veritabanına bağlanabilir ancak verileri okuma veya yazma izni yoktur. Bu izinleri vermek için aşağıdaki komutları yeni bir sorgu penceresinde yürütebilirsiniz:

    ALTER ROLE db_datareader ADD MEMBER ApplicationUser;
    ALTER ROLE db_datawriter ADD MEMBER ApplicationUser;
    

Not

Yeni kullanıcı oluşturma gibi yönetici görevlerini yürütmeleri gerekmediği sürece, veritabanı düzeyinde yönetici olmayan hesaplar oluşturun.

Microsoft Entra doğrulaması

Azure SQL Veritabanı Microsoft Entra sunucu sorumlularını (oturum açma bilgileri) desteklemediğinden, Microsoft Entra hesaplarıyla oluşturulan veritabanı kullanıcıları bağımsız veritabanı kullanıcıları olarak oluşturulur. Kapsanan veritabanı kullanıcısı, aynı ada sahip bir oturum açma master bilgisi olsa bile veritabanındaki oturum açma bilgileriyle ilişkilendirilmemiştir. Microsoft Entra kimliği tek bir kullanıcı veya grup için olabilir. Daha fazla bilgi için bkz. Kapsanan veritabanı kullanıcıları, veritabanınızı taşınabilir hale getirme ve Microsoft Entra Kimliğini kullanarak kimlik doğrulaması yapma hakkındaki Microsoft Entra öğreticisini gözden geçirin.

Not

Veritabanı kullanıcıları (yöneticiler hariç) Azure portalı kullanılarak oluşturulamaz. Microsoft Entra rolleri SQL sunucularına, veritabanlarına veya veri ambarlarına yayılmaz. Bunlar yalnızca Azure kaynaklarını yönetmek için kullanılır ve veritabanı izinlerine uygulanmaz.

Örneğin, SQL Server Katkıda Bulunanı rolü bir veritabanına veya veri ambarı'na bağlanmak için erişim izni vermez. Bu izin T-SQL deyimleri kullanılarak veritabanında verilmelidir.

Önemli

İki nokta veya : ve & işareti gibi özel karakterler, T-SQL CREATE LOGIN ve CREATE USER deyimlerindeki kullanıcı adlarında desteklenmez.

Microsoft Entra kimlik doğrulamasına sahip bir kullanıcı eklemek için:

  1. En azından ALTER ANY USER iznine sahip bir Microsoft Entra hesabı kullanarak Azure'daki sunucunuza bağlanın .

  2. Nesne Gezgini'da veritabanına sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde aşağıdaki komutu girin ve Microsoft Entra kullanıcısının asıl adını veya Microsoft Entra grubunun görünen adını değiştirin <Azure_AD_principal_name> :

    CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
    

Not

Microsoft Entra kullanıcıları, veritabanı meta verilerinde gruplar için tür E (EXTERNAL_USER) ve tür X (EXTERNAL_GROUPS) ile işaretlenir. Daha fazla bilgi için bkz . sys.database_principals.

Güvenli bağlantı dizesi

İstemci uygulaması ile SQL Veritabanı arasında güvenli ve şifreli bir bağlantı sağlamak için, bağlantı dizesi şu şekilde yapılandırılmalıdır:

  • Şifreli bağlantı isteme
  • Sunucu sertifikasına güvenilmiyor

Bağlantı, Aktarım Katmanı Güvenliği (TLS) kullanılarak kurulur ve ortadaki adam saldırısı riskini azaltır. Bağlantı dizeleri veritabanı başına kullanılabilir ve ADO.NET, JDBC, ODBC ve PHP gibi istemci sürücülerini destekleyecek şekilde önceden yapılandırılmıştır. TLS ve bağlantı hakkında daha fazla bilgi için bkz. TLS konuları.

Güvenli bir bağlantı dizesi kopyalamak için:

  1. Azure portalında sol taraftaki menüden SQL veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

  2. Genel Bakış sayfasında Veritabanı bağlantı dizesi göster'i seçin.

  3. Bir sürücü sekmesi seçin ve tüm bağlantı dizesi kopyalayın.

    bağlantı dizesi sayfasını gösteren Azure portalının ekran görüntüsü. ADO.NET sekmesi seçilir ve ADO.NET (SQL kimlik doğrulaması) bağlantı dizesi görüntülenir.

Güvenlik özelliklerini etkinleştirme

Azure SQL Veritabanı, Azure portalı kullanılarak erişilen güvenlik özellikleri sağlar. Bu özellikler, yalnızca veritabanında kullanılabilen veri maskeleme dışında hem veritabanı hem de sunucu için kullanılabilir. Daha fazla bilgi edinmek için bkz . SQL için Microsoft Defender, Denetim, Dinamik veri maskeleme ve Saydam veri şifreleme.

SQL için Microsoft Defender

SQL için Microsoft Defender özelliği olası tehditleri oluştukları anda algılar ve anormal etkinliklerle ilgili güvenlik uyarıları sağlar. Kullanıcılar denetim özelliğini kullanarak bu şüpheli olayları inceleyebilir ve olayın veritabanındaki verilere erişip erişmediğini, verileri ihlal edip etmediğini belirleyebilir. Kullanıcılara güvenlik açığı değerlendirmesi ile veri bulma ve sınıflandırma aracını içeren bir güvenlik genel bakışı da sağlanır.

Not

Örnek bir tehdit, saldırganların uygulama girişlerine kötü amaçlı SQL eklediği bir işlem olan SQL ekleme işlemidir. Daha sonra bir uygulama, farkında olmadan kötü amaçlı SQL'i yürütebilir ve saldırganların veritabanındaki verileri ihlal etmelerine veya değiştirmelerine izin verebilir.

SQL için Microsoft Defender'ı etkinleştirmek için:

  1. Azure portalında sol taraftaki menüden SQL veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

  2. Genel Bakış sayfasında Sunucu adı bağlantısını seçin. Sunucu sayfası açılır.

  3. SQL server sayfasında Güvenlik bölümünü bulun ve Bulut için Defender seçin.

    1. Özelliği etkinleştirmek için SQL için Microsoft Defender'ın altında ON'ı seçin. Güvenlik açığı değerlendirmesi sonuçlarını kaydetmek için bir depolama hesabı seçin. Ardından Kaydet'i seçin.

      Tehdit algılama ayarları için Azure portalı Gezinti bölmesinin ekran görüntüsü.

      Güvenlik uyarılarını, depolama ayrıntılarını ve tehdit algılama türlerini almak için e-postaları da yapılandırabilirsiniz.

  4. Veritabanınızın SQL veritabanları sayfasına dönün ve Güvenlik bölümünden Bulut için Defender seçin. Burada veritabanı için kullanılabilen çeşitli güvenlik göstergelerini bulacaksınız.

    Veri Bulma ve Sınıflandırma, Güvenlik Açığı Değerlendirmesi ve Tehdit Algılama için pasta grafikleri gösteren Azure portalı Tehdit durumu sayfasının ekran görüntüsü.

Anormal etkinlikler algılanırsa, etkinlikle ilgili bilgileri içeren bir e-posta alırsınız. Bu, etkinliğin, veritabanının, sunucunun, olay süresinin, olası nedenlerin ve olası tehdidi araştırmak ve azaltmak için önerilen eylemlerin niteliğini içerir. Böyle bir e-posta alınırsa Azure portalını başlatmak ve olay zamanı için ilgili denetim kayıtlarını göstermek için Azure SQL Denetim Günlüğü bağlantısını seçin.

Olası Sql Ekleme Tehdidi algılamasını gösteren Azure'dan örnek bir e-postanın ekran görüntüsü. E-postanın gövdesindeki Azure SQL DB Denetim Günlükleri bağlantısı vurgulanır.

Denetim

Denetim özelliği veritabanı olaylarını izler ve olayları Azure depolama, Azure İzleyici günlüklerinde veya bir olay hub'ında bir denetim günlüğüne yazar. Denetim mevzuatla uyumluluğu korumaya, veritabanı etkinliğini anlamaya ve olası güvenlik ihlallerine işaret edebilecek farklılıklar ve anomaliler hakkında içgörü elde etmeye yardımcı olur.

Denetimi etkinleştirmek için:

  1. Azure portalında sol taraftaki menüden SQL veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

  2. Güvenlik bölümünde Denetim'i seçin.

  3. Denetim ayarları'nın altında aşağıdaki değerleri ayarlayın:

    1. Denetim seçeneğini AÇIK olarak ayarlayın.

    2. Aşağıdakilerden biri olarak Denetim günlüğü hedefini seçin:

      • Depolama, olay günlüklerinin kaydedildiği ve .xel dosyaları olarak indirilebilen bir Azure depolama hesabıdır

        İpucu

        Denetim raporu şablonlarından en iyi şekilde yararlanmak için tüm denetlenen veritabanları için aynı depolama hesabını kullanın.

      • Sorgu veya daha fazla analiz için olayları otomatik olarak depolayan Log Analytics

        Not

        Analiz, özel uyarı kuralları ve Excel veya Power BI dışarı aktarmaları gibi gelişmiş özellikleri desteklemek için Log Analytics çalışma alanı gereklidir. Çalışma alanı olmadan yalnızca sorgu düzenleyicisi kullanılabilir.

      • Olayların diğer uygulamalarda kullanılmak üzere yönlendirilmesine olanak tanıyan Olay Hub'ı

    3. Kaydet'i seçin.

      Azure portalı Denetim ayarları sayfasının ekran görüntüsü. Kaydet düğmesi vurgulanır. Denetim günlüğü hedef alanları vurgulanır.

  4. Artık veritabanı olay verilerini görüntülemek için Denetim günlüklerini görüntüle'yi seçebilirsiniz.

    SQL veritabanı için denetim kayıtlarını gösteren Azure portalı sayfasının ekran görüntüsü.

Dinamik veri maskeleme

Veri maskeleme özelliği, veritabanınızdaki hassas verileri otomatik olarak gizler.

Veri maskeleme özelliğini etkinleştirmek için:

  1. Azure portalında sol taraftaki menüden SQL veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

  2. Güvenlik bölümünde Dinamik Veri Maskeleme'yi seçin.

  3. Dinamik veri maskeleme ayarları'nın altında Maske ekle'yi seçerek maskeleme kuralı ekleyin. Azure, aralarından seçim yapabileceğiniz kullanılabilir veritabanı şemalarını, tablolarını ve sütunlarını otomatik olarak doldurur.

    Dinamik Veri Maskesi alanlarını kaydetme veya ekleme için Azure portalı sayfasının ekran görüntüsü. Görüntüleme şemasını, tablosunu ve tablo sütunlarını maskelemek için önerilen alanlar.

  4. Kaydet'i seçin. Seçilen bilgiler artık gizlilik için maskelenir.

    Basit bir INSERT ve SELECT deyimini gösteren SQL Server Management Studio'nun (SSMS) ekran görüntüsü. SELECT deyimi, LastName sütununda maskelenmiş verileri görüntüler.

Saydam veri şifrelemesi

Şifreleme özelliği bekleyen verilerinizi otomatik olarak şifreler ve şifrelenmiş veritabanına erişen uygulamalarda değişiklik yapılmasını gerektirmez. Yeni veritabanları için şifreleme varsayılan olarak açıktır. Verileri SSMS ve Always encrypted özelliğini kullanarak da şifreleyebilirsiniz .

Şifrelemeyi etkinleştirmek veya doğrulamak için:

  1. Azure portalında sol taraftaki menüden SQL veritabanları'nı seçin ve SQL veritabanları sayfasında veritabanınızı seçin.

  2. Güvenlik bölümünde Saydam veri şifreleme'yi seçin.

  3. Gerekirse Veri şifreleme'yi AÇI olarak ayarlayın. Kaydet'i seçin.

    Saydam Veri Şifrelemesi etkinleştirmek için Azure portalı sayfasının ekran görüntüsü.

Not

Şifreleme durumunu görüntülemek için SSMS kullanarak veritabanına bağlanın ve sys.dm_database_encryption_keys görünümünün sütununu sorgularencryption_state. durumu 3 , veritabanının şifrelenmesini gösterir.

Not

Tablo adları, nesne adları ve dizin adları gibi müşteri içeriği olarak kabul edilen bazı öğeler Microsoft tarafından destek ve sorun giderme amacıyla günlük dosyalarına aktarılabilir.

İpucu

.NET uygulaması geliştirmeye başlamaya hazır mısınız? Bu ücretsiz Learn modülü, basit bir veritabanı oluşturma dahil olmak üzere bir Azure SQL Veritabanı sorgulayan bir ASP.NET uygulaması geliştirmeyi ve yapılandırmayı gösterir.

Sonraki adım

Coğrafi dağıtımı uygulamayı öğrenmek için sonraki öğreticiye ilerleyin.