Öğ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 hizmetlerineeriş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.

    Screenshot of the Azure portal page for a logical SQL database, highlighting the server name.

    Not

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

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

    Screenshot of the Azure portal Networking page for a logical SQL Server, showing the server-level IP firewall rule.

  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, örneğin kullanarak SQL Server Management Studio.

  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.

Screenshot of the Azure portal showing the Directory + subscription filter page, where you would choose the directory.

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 Microsoft Entra Id bölmesini açmak için Yöneticiyi ayarla'yı seçin..

    Screenshot of the Azure portal Microsoft Entra ID page for a logical server.

    Önemli

    Bu görevi gerçekleştirmek için "Genel Yönetici istrator" 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. Bkz . Microsoft Entra özellikleri ve sınırlamaları.

    Screenshot of the Azure portal page to add a Microsoft Entra admin.

    Ö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ğlan ion 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, örneğin kullanarak SQL Server Management Studio.

  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. Azure'da sunucunuza en azından BağlanHERHANGİ Bİr KULLANICI izniNI DEĞIŞTIRIN.

  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ğlan ion 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.

    Screenshot of the Azure portal showing the connection strings page. The ADO.NET tab is selected and the ADO.NET (SQL authentication) connection string is displayed.

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.

      Screenshot of the Azure portal Navigation pane for threat detection settings.

      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 Defenderseçin. Burada veritabanı için kullanılabilen çeşitli güvenlik göstergelerini bulacaksınız.

    Screenshot of the Azure portal Threat status page showing pie charts for Data Discovery & Classification, Vulnerability Assessment, and Threat Detection.

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.

Screenshot of a sample email from Azure, indicating a Potential Sql Injection Threat detection. A link in the body of the email to Azure SQL DB Audit Logs is highlighted.

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 indirilebildiği 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.

      Screenshot of the Azure portal Audit settings page. The Save button is highlighted. Audit log destination fields are highlighted.

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

    Screenshot of the Azure portal page showing Audit records for a SQL database.

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.

    Screenshot of the Azure portal page to Save or Add Dynamic Data Mask fields. Recommended fields to mask display schema, table, and columns of tables.

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

    Screenshot of SQL Server Management Studio (SSMS) showing a simple INSERT and SELECT statement. The SELECT statement displays masked data in the LastName column.

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.

    Screenshot of the Azure portal page to enable Transparent Data Encryption.

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.