Aracılığıyla paylaş


SQL Server Denetim olaylarını Güvenlik günlüğüne yazma

Şunlar için geçerlidir:Windows üzerinde SQL Server

Yüksek güvenlikli bir ortamda, Windows Güvenlik günlüğü nesne erişimini kaydeden olayları yazmak için uygun konumdur. Diğer denetim konumları desteklenir ancak manipülasyona daha fazla tabidir.

SQL Server sunucu denetimlerini Windows Güvenlik günlüğüne yazmak için üç temel gereksinim vardır:

  • Olayları yakalamak için denetim nesne erişim ayarının yapılandırılması gerekir. Denetim ilkesi aracı (auditpol.exe), denetim nesnesi erişimi kategorisinde çeşitli alt ilke ayarlarını kullanıma sunar. SQL Server'ın nesne erişimini denetlemesine izin vermek için oluşturulan uygulama ayarını yapılandırın.

  • SQL Server hizmetinin çalıştığı hesabın, Windows Güvenlik günlüğüne yazabilmek için güvenlik denetimleri oluşturma izni izinlerine sahip olması gerekir. Varsayılan olarak, YEREL HİzMET ve AĞ HİzMETİ hesapları bu izne sahiptir. SQL Server bu hesaplardan biri altında çalışıyorsa bu adım gerekli değildir.

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Securitykayıt defteri kovanına SQL Server hizmet hesabı için tam izin verin.

    Önemli

    Kayıt defterinin yanlış düzenlenmesi sisteminize ciddi zarar verebilir. Kayıt defterinde değişiklik yapmadan önce, bilgisayardaki değerli verileri yedeklemenizi öneririz.

Sınırlamalar ve kısıtlamalar

  • Güvenlik günlüğü için yerel ayarlar bir etki alanı ilkesi tarafından değiştirilebilir. Bu durumda, etki alanı ilkesi alt kategori ayarını (auditpol /get /subcategory:"application generated") geçersiz kılabilir. SQL Server'ın denetlemeye çalıştığı olayların kaydedilmeyecek olduğunu algılamak için herhangi bir yolu yoktur.

  • Denetim ilkesi yanlış yapılandırılırsa olaylar kaybolabilir. Windows denetim ilkesi, Windows Güvenlik günlüğüne yazacak şekilde yapılandırılmışsa SQL Server denetimini etkileyebilir. Genellikle, Windows Güvenlik günlüğü eski olayların üzerine yazacak şekilde ayarlanır. Bu, en son olayları korur. Ancak, Windows Güvenlik günlüğü eski olayların üzerine yazacak şekilde ayarlı değilse, Güvenlik günlüğü doluysa sistem Windows olay 1104 (Günlük dolu) verir. Bu noktada:

    • Başka güvenlik olayı kaydedilmez

    • SQL Server, sistemin Güvenlik günlüğüne olayları kaydedemediğini algılayamıyor, bu da olası denetim olaylarının kaybına yol açabilir.

    • Kutu yöneticisi Güvenlik günlüğünü düzeltdikten sonra, loglama davranışı normale dönecektir.

  • SQL Server denetim kayıtları, normal Windows Olay günlüğü girişlerinden önemli ölçüde daha fazla veri içerir. Ayrıca, denetim belirtiminin yapılandırmasına bağlı olarak, SQL Server kısa bir süre içinde (saniyede binlerce) binlerce denetim kaydı oluşturabilir. Yüksek yük dönemlerinde, denetim kayıtları Uygulama günlüğüne veya Güvenlik günlüğüne yazılırsa bu durum olumsuz koşullara neden olabilir.

    Bu olumsuz koşullar şunları içerebilir:

    • Olay günlüğünü hızlı bir şekilde döngüye alma (günlük dosyası boyut sınırına ulaştığında olayların üzerine çok hızlı bir şekilde yazılır)

    • Windows olay günlüğünden okunan diğer uygulamalar veya hizmetler olumsuz etkilenebilir

    • Olayların üzerine bu kadar hızlı yazılması nedeniyle hedeflenen olay günlüğü yöneticiler tarafından kullanılamayabilir

    Yöneticilerin bu olumsuz koşulları azaltmak için atabileceği adımlar:

    1. Hedef günlüğün boyutunu artırın (denetim belirtimi çok ayrıntılı olduğunda 4 GB makul değildir).

    2. Denetlenen olay sayısını azaltın.

    3. Denetim kayıtlarının çıkışını Olay Günlükleri yerine bir dosyaya yapın.

İzinler

Bu ayarları yapılandırmak için Windows yöneticisi olmanız gerekir.

auditpol kullanarak Windows'ta denetim nesnesi erişim ayarını yapılandırma

  1. Yönetici izinlerine sahip bir komut istemi açın.

    1. Başlat menüsünden Komut İstemi'ne gidin ve yönetici olarak çalıştırseçin.

    2. Kullanıcı Hesabı Denetimi iletişim kutusu açılırsa Devamseçeneğini belirleyin.

  2. SQL Server'dan denetimi etkinleştirmek için aşağıdaki deyimi yürütür.

    auditpol /set /subcategory:"application generated" /success:enable /failure:enable
    
  3. Komut istemi penceresini kapatın.

secpol kullanarak bir hesaba güvenlik denetimleri oluşturma izni verme

  1. Herhangi bir Windows işletim sistemi için, Başlangıç menüsünde çalıştır'ı seçin.

  2. secpol.msc yazıp Tamam'ıseçin. Kullanıcı Erişimi Denetimi iletişim kutusu görüntülenirse, Devamseçin.

  3. Yerel Güvenlik İlkesi aracında, Güvenlik Ayarları > Yerel İlkeler > Kullanıcı Hakları Atamasıadresine gidin.

  4. Sonuçlar bölmesinde güvenlik denetimleri oluştur öğesiniaçın.

  5. Yerel Güvenlik Ayarı sekmesinde kullanıcı veya grup ekle seçin.

  6. Kullanıcıları, Bilgisayarları veya Grupları Seç iletişim kutusunda, etki alanı1\kullanıcı1 gibi kullanıcı hesabının adını yazın ve ardından Tamam'ı seçin veya Gelişmiş'i seçip hesabı arayın.

  7. tamamseçin.

  8. Güvenlik İlkesi aracını kapatın.

  9. Bu ayarı etkinleştirmek için SQL Server'ı yeniden başlatın.

secpol kullanarak Windows'ta denetim nesnesi erişim ayarını yapılandırma

  1. İşletim sistemi Windows Vista veya Windows Server 2008'den eskiyse, Başlat menüsünde çalıştır'ıseçin.

  2. secpol.msc yazıp Tamam'ıseçin. Kullanıcı Erişimi Denetimi iletişim kutusu görüntülenirse, Devamseçin.

  3. Yerel Güvenlik İlkesi aracında Güvenlik Ayarları > Yerel İlkeler > Denetim İlkesiadresine gidin.

  4. Sonuçlar bölmesinde, Nesne erişimini denetleaçın.

  5. Yerel Güvenlik Ayarı sekmesinde, Bu girişimleri denetle alanında, hem Başarı hem de Hatasıseçeneklerini seçin.

  6. tamamseçin.

  7. Güvenlik İlkesi aracını kapatın.

Ayrıca bkz.