Audit Nedir?
Bir SQL Server Database Engine instance ının veya tek bir veri tabanının denetlenmesi, Database Engine üzerinde meydana gelen olayların izlenmesini ve kaydedilmesini içerir.
Auditleri 2 tür olarak ayırırız:
- Server Audit Specifications
- Database Audit Specifications
SQL Server denetimi, sunucu düzeyinde meydana gelen olayların denetlenmesi için sunucu denetim özelliklerini(Server Audit Specifications) ve veri tabanı düzeyinde meydana gelen olayların denetlenmesi için veri tabanı denetim özelliklerini(Database Audit Specifications) içerebilecek sunucu denetimleri oluşturmanızı sağlar. Denetlenen olaylar, loglara veya denetim dosyalarına yazılabilir, yetki sahibi insanlar tarafından yapılan her türlü işlemin kayıt altına alınıp raporlanabilmesine olanak sağlar.
Öncelikle Audit işlemini göreceğimiz database i oluşturalım.
Resim -1
Sonrasında denetimi gerçekleştireceğimiz tablomuzu da oluşturalım.
Resim-2
Oluşturulan veri tabanı ve tabloyu Resim-3’de gözlemliyoruz.
Resim-3
Sunucu düzeyinde denetleme oluşturmak için Security sekmesinin altında Audits klasörüne sağ tıklayıp yeni bir denetim oluşturuyoruz.
Resim-4
Audit Name: Oluşturacağımız Audite vereceğimiz adı belirtiriz. Yeni bir denetim oluştur denildiğinde bu kısım otomatik olarak oluşturulur ancak Audit Name kısmını ‘Audit_TestTABLE’ olarak düzenledim.
Queue Delay (in milliseconds): Audit verilerinin belirttiğimiz dosyamıza kaç ms de bir yazılacağını ifade eder. Varsayılan minimum değer 1000 ms dir. Auditimiz için de varsayılan değer ayarında bıraktım. Her bir saniyede bir verileri toplayıp yazma işlemini gerçekleştirir. 0 değeri senkronize teslimatı gösterir.
Audit Destination: Audit sonucu gidilecek yeri belirlediğimiz kısımdır. Bu kısmı File olarak belirledim. File dışında Security Log, Application Log a da Audit sonucu için hedef olarak belirleyebiliriz.
File Path: Auditin gideceği dosya yolunu belirttiğimiz kısımdır.
Maximum file size: Audit dosyasının ulaşabileceği en büyük dosya boyutudur. Bu boyutu MB, GB, TB cinsinden bir değer belirtebiliriz. (Varsayılan olarak Unlimited işaretli gelir ancak bu boyutu 1000 olarak sınırlandırdım.)
Resim-5
İlgili parametreleri belirledikten sonra OK deyip Auditimizi oluşturuyoruz.
Resim-6
Disable durumda oluşan Auditimiz üzerine sağ tık yapıp Enable Audit sekmesine tıkladığımızda Auditimiz aktif hale gelmiş oluyor.
Resim-7
Serverımız üzerinde Audit oluşturmuş olduk. Şimdi oluşturduğumuz TestDB altında TestTable tablosu üzerinde kim ne tür bir işlem yapmış onun takibini de yapmak için veri tabanı altındaki Security sekmesinde de Database Audit Specifications klasörüne sağ tıklayıp New Database Audit Specification oluşturmamız gerekmektedir.
Resim-8
Name: Database Audit Specification’I isimlendiriyoruz. New Database Audit Specification dediğimizde otomatik olarak bu kısım oluşturulur ancak ‘DatabaseAuditSpecification_TestTable’ olarak düzenledim.
Audit: Server düzeyinde oluşturduğumuz Audit’I buradan seçiyoruz.
Resim-9
Audit Action Type: Audit Action Type kısmında hangi aksiyon için denetim yapacağımızı belirliyoruz. Ben UPDATE işlemi için denetim yapılmasını deneyeceğim.
Resim-10
Object Class kısmında Object, Database, ve Schema seçenekleri karşımıza çıkıyor. Oluşturduğumuz TestTABLE tablomuz üzerinden bir denetleme yapacağımız için Object seçeneğini seçiyoruz.
Resim-11
Object Schema kısmında Object Name kısmında belirleyeceğimiz tablonun şemasını görüntüler.
Object Name kısmında denetlenecek nesnenin adını seçiyoruz. Noktalı butona tıkladığımızda, Select Objects penceresi açılmaktadır. Browser butonuna tıklayıp,
Resim-12
Burada denetimini yapmak istediğimiz tablomuzu seçeceğiz. ([dbo].[TestTABLE])
Resim-13
Principal Name kısmında denetlenen nesnenin yani TestTABLE ın denetimini filtreleriz. Object Name seçeneğindeki gibi noktalı butona tıklıyoruz. Karşımıza Select Objects penceresi çıktı. Burda da Browser butonuna tıklayıp,
Resim-14
Hangi kullanıcıları denetleyeceğimiz detayını biçimlendiriyor. Denetleme için public rolünü belirledim. Public rolü her kullanıcı için varsayılan bir roldür. Bu da bizim tüm kullanıcıları denetleyebilmemiz demektir. İlgili parametreleri belirledikten sonra Create Database Audit Specification penceresini OK butonuyla onaylıyoruz.
Resim-15
Database Audit Specification’ımız karşımıza çıkmaktadır.
Resim-16
Ancak Audit’de olduğu gibi Disable durumunda gelmiştir. Yine aynı şekilde üzerine gelip sağ tıkladığımızda Enable Database Audit Specification’ a tıklıyoruz.
Resim-17
Denetlememizde değişiklikleri görebilmek adına öncelikle oluşturduğumuz TestTABLE adlı tablomuza veri girişi yapıyoruz.
Resim-18
Girdiğimiz verileri Select sorgusu ile gözlemliyoruz.
Resim-19
UPDATE aksiyonu için denetlememizi oluşturduğumuzdan tablomuzda UPDATE komutumuzla işlemler yapıyoruz ki bunları Audit’imizde gözlemleyebilelim.
Resim-20
UPDATE ler sonucu değişiklikleri SELECT sorgusu ile gözlemliyoruz.
Resim-21
Bu değişiklikleri detaylı olarak gözlemleyebilmek için Audit_TestTABLE’ a sağ tıklayıp View Audit Logs sekmesine tıklıyoruz.
Resim-22
Tıkladıktan sonra Log File Viewer penceresi açılıyor. Buradan kimin ne zaman hangi scriptle UPDATE gerçekleştirmiş tüm detaylarıyla ulaşabiliyoruz.
Resim-23
Auditi SSMS ile oluşturmanın yanı sıra T-SQL ile oluşum aşamalarını da gözlemleyelim.
Aynı şekilde Audit oluşturacağımız veri tabanını ve tablomuzu oluşturuyoruz.
Resim-24
CREATE DATABASE TestDB
Resim-25
CREATE TABLE TestTABLE Id int Primary Key identity(1,1) not null, Name Nvarchar(30), Surname Nvarchar(30), Identity_Number Char(11) )
Auditimizi master veri tabanında oluşturuyoruz.
FILEPATH ile dosya yolunu belirtiyoruz.
MAXSIZE, denetim dosyasının ulaşabileceği en büyük dosya boyutunu belirtir.
MAX_ROLLOVER_FILES, kaç tane dosyanın kaydedileceği bilgisidir. 0 değeri sınırsız anlamına gelir.
RESERVE_DISK_SPACE, MAXSIZE‘da belirttiğiniz kadar alanı baştan ayırmak için kullanılır; eğer değeri ON ise, o zaman bu alan baştan ayrılır, eğer OFF ise, alan ihtiyaca göre ayrılır.
QUEUE_DELAY, Audit verilerinin belirttiğimiz dosyamıza kaç ms de bir yazılacağını ifade eder. Varsayılan minimum değer 1000 ms dir. Auditimiz için de varsayılan değer ayarında bıraktım. Her bir saniyede bir verileri toplayıp yazma işlemini gerçekleştirir. 0 değeri senkronize teslimatı gösterir.
ON_FAILURE ise iki değer alabilir: SHUTDOWN ve CONTINUE. Bir denetim arızası, sistemin güvenliğini veya bütünlüğünü tehlikeye sokabileceği zaman SQL Server instance ının kapanması içindir. Kayıt dosyasında veya diskte yer kalmadıysa ve veriler işlenemiyorsa SHUTDOWN instance ı kapatır.
Resim-26
USE [master] CREATE SERVER AUDIT [Audit_TestTABLE] TO FILE (FILEPATH =N’C:\Audits\’, MAXSIZE = 500 MB , MAX_ROLLOVER_FILES = 5, RESERVE_DISK_SPACE =OFF ) WITH (QUEUE_DELAY = 1000 , ON_FAILURE =SHUTDOWN ) GO --Auditi Enable etmek için ALTER SERVER AUDIT [Audit_TestTABLE] WITH (STATE = ON); GO
Server düzeyindeki Auditten sonra Database Audit Specification ı veri tabanında(TestDB) oluşturuyoruz. UPDATE aksiyonunu denetleyeceğiz.
Resim-27
USE [TestDB] CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification_TestTABLE] FOR SERVER AUDIT [Audit_TestTABLE] ADD (UPDATE ON OBJECT::[dbo].[TestTABLE] BY [public]) WITH (STATE = ON) GO
Aşağıda ise Audit Log detaylarını gösterecek olan scripti görüyoruz.
fn_get_audit_file, SQL Server’da bir sunucu denetimi tarafından oluşturulan denetim dosyasından bilgi döndürür.
Resim-28
SELECT * FROM fn_get_audit_file('C:\Audits\Audit_TestTABLE*.sqlaudit',DEFAULT, DEFAULT)
UPDATE yapılabilecek verileri tablomuza ekliyoruz.
Resim-29
INSERT INTO TestTABLE VALUES ('ARZU', 'DURAN', '12345678902') ,('BERNA','YILMAZ','24680121234') ,('BADE','AYDIN','56789013326')
Ardından UPDATE komutuyla işlem gerçekleştiriyoruz.
Resim-30
UPDATE TestTABLE SET Surname = 'YILDIZ' WHERE Id = 2
Bu aşamadan sonra yapılan aksiyonları da bu şekilde başlıca kolonlarla gözlemleyebiliyoruz.
Resim-31
SELECT event_time ,action_id ,succeeded ,session_id ,server_principal_name ,server_instance_name ,database_name ,statement ,file_name FROM fn_get_audit_file('C:\Audits\Audit_TestTABLE*.sqlaudit',DEFAULT, DEFAULT)
Bu şekilde T-SQL ile de Audit oluşturma işlemimizi tamamladık.
Aşağıdaki tabloda Audit ile Server ve Database düzeyindeki aksiyonların kısaca ne tür denetim getirdiğini inceleyebiliriz.
SQL SERVER AUDİT ACTİON GROUP
APPLICATION_ROLE_CHANGE_PASSWORD_GROUP | Uygulama rollerinin şifresini değiştirmek için hem başarılı hem de başarısız denemeleri izler. Uygulama rolleri, veri tabanına uygulamaya özel belirli bir erişim vermek için kullanılan bir veri tabanı ilkesidir. Rol denmesine rağmen hiçbir üyesi yoktur; Bir tür kullanıcıya gerçekten daha yakınlar. |
DATABASE_PRINCIPAL_CHANGE_GROUP | Oluşturma ve silme gibi uygulama rollerinde yapılan diğer değişiklikleri izlemek içindir. Bu grubu belirli bir veri tabanında etkinleştirirseniz, yalnızca bu veri tabanındaki tüm uygulama rollerinde parola değiştirme girişimlerini denetlersiniz; Bu grubu sunucu düzeyinde etkinleştirirseniz, sunucudaki tüm veritabanlarındaki tüm uygulama rollerinde parola değiştirme girişimlerini izlersiniz. |
AUDIT_CHANGE_GROUP | SQL Server içindeki denetim izi üzerinde etkisi olan denetim ve denetim spesifikasyon nesnelerindeki değişiklikleri izlemenizi sağlar. Bu grup ayrıca denetim hatalarını ve denetim oturumu değişikliklerini izler. Herhangi bir denetimin belirli bir sunucuda etkin olması durumunda, denetim izinin bütünlüğünün sigortalanabilmesi için bu grubun sunucu denetim şartnamesinde kesinlikle etkinleştirilmesi gerekir. Bu grubu sunucu düzeyinde etkinleştirirseniz, hem denetim nesnelerinde hem de sunucu denetim spesifikasyonlarındaki değişiklikleri izlersiniz. Ayrıca tüm veri tabanı denetim teknik özelliklerinde yapılan değişiklikleri izleyecektir. Bu grubu bir veri tabanında etkinleştirirseniz, o veri tabanı içindeki veri tabanı denetim teknik özelliklerinde yapılan değişiklikleri izler. |
BACKUP_RESTORE_GROUP | Veritabanlarının ve işlem günlüklerinin yedeklenmesini ve geri yüklenmesini izler. Bu grup, gizli bir veri tabanının tüm kopyalarını çalmak için kullanılabilecek bir veri tabanı yedeklemesi denetim izine sahip olmanız için önemlidir. Ve elbette bir veri tabanının uygunsuz bir şekilde geri yüklenmesi felaket etkilere neden olabilir. Bu grubu sunucuda etkinleştirirseniz, tüm veri tabanındaki yedekleme ve geri yükleme işlemlerini izler ve işlem günlükleri gönderir. Bu tür işlemleri yalnızca bir veri tabanında izlemek için bu grubun o veri tabanı üzerindeki bir veri tabanı denetim şartnamesinde etkinleştirilmesini sağlayın. |
BROKER_LOGIN_GROUP | Taşıma güvenliği bağlantılarıyla ilgili oturum açma oturumlarını izler. Bu eylem grubu yalnızca sunucu düzeyindedir. |
DATABASE_CHANGE_GROUP | Veritabanlarının oluşturulmasını, değiştirilmesini ve silinmesini izler. (Bu, veri tabanındaki özniteliklerin değiştirilmesi için geçerlidir, tablolar gibi veri tabanındaki nesneler için değil.) Bu grubu bir sunucu denetim şartnamesinde etkinleştirirseniz, örnekteki tüm veritabanlarındaki özniteliklerin silinmesini veya değiştirilmesini izler. . Bu grubu bir veri tabanında etkinleştirirseniz, yalnızca bu veri tabanının kendisinin değiştirilmesini ve silinmesini izleyebilirsiniz. |
DATABASE_LOGOUT_GROUP | Bu grup, bir kullanıcı içerdiği veri tabanından çıkış yaptığında izler. |
DATABASE_MIRRORING_LOGIN_GROUP | Veri tabanı yansıtma son noktaları arasındaki aktarım güvenliği bağlantılarıyla ilişkili oturum açma oturumlarını izler. Bu eylem grubu yalnızca sunucu düzeyindedir. |
DATABASE_OBJECT_ACCESS_GROUP | Bu grup veri tabanı nesnelerine erişildiğinde ortaya çıkar. |
DATABASE_OBJECT_CHANGE_GROUP | Veri tabanı nesnelerinin oluşturulmasını, değişikliklerini ve silinmelerini izler. Bu grubu bir veri tabanı denetim spesifikasyonunda etkinleştirirseniz, yalnızca o veri tabanındaki veri tabanı nesnelerinde yapılan değişiklikleri izler. Bu grubu bir sunucu denetimi belirtiminde etkinleştirirseniz, söz konusu SQL Server örneğindeki tüm veritabanlarındaki veri tabanı nesnelerinde yapılan değişiklikleri izler. |
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP | Bu önemli bir denetim eylemi grubudur, çünkü mülkiyet değişiklikleri sistemin güvenliği için önemlidir. Bu grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veri tabanındaki veri tabanı nesnelerindeki mülkiyet değişikliklerini izler. Bu grubu bir sunucu denetimi şartnamesinde etkinleştirirseniz, söz konusu SQL Server örneğindeki tüm veritabanlarındaki veri tabanı nesnelerindeki mülkiyet değişikliklerini izler. |
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP | Sertifikalar, veri tabanı ana anahtarları, veri tabanı şifreleme anahtarları, simetrik ve asimetrik anahtarlar, meclisler ve şemalar dahil olmak üzere veri tabanı nesneleri üzerindeki izinleri verme, reddetme veya iptal etme girişimlerini izler. Bu önemli bir denetim eylemi grubudur, çünkü izin değişiklikleri sunucunun güvenliği ve içerdiği bilgiler için önemlidir. Bu grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veri tabanındaki veri tabanı nesnelerinde izin değişikliklerini izler. Bu grubu bir sunucu denetim şartnamesinde etkinleştirirseniz, söz konusu SQL Server örneği içindeki tüm veritabanlarındaki veri tabanı nesnelerinde izin değişikliklerini izler. |
DATABASE_OPERATION_GROUP | Veri tabanı kimliğine bürünme, kontrol noktaları ve belirli veri tabanı işlemlerinin yürütülmesini izler. |
DATABASE_OWNERSHIP_CHANGE_GROUP | Asıl veri tabanındaki mülkiyet değişikliklerini izler. Bu grubu sunucu denetim şartnamesinde etkileştirirseniz tüm veritabanlarında sahiplik değişikliklerini izler. Bu grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca söz konusu veri tabanındaki mülkiyet değişikliklerini izler. Sahiplik, veri tabanı ve onunla ilgili bilgi için önemli olduğundan, bu, denetlenmesi gereken önemli bir gruptur. |
DATABASE_PERMISSION_CHANGE_GROUP | Veri tabanındaki nesneler üzerindeki izin değişikliklerinin aksine, veri tabanındaki izin değişikliklerini izler. Bu grubu bir sunucu denetimi şartnamesinde etkinleştirirseniz, söz konusu SQL Server örneğindeki tüm veritabanlarındaki izin değişikliklerini izler. Bu grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca söz konusu veri tabanındaki izin değişikliklerini kontrol eder. |
DATABASE_PRINCIPAL_CHANGE_GROUP | Veri tabanı kullanıcıları, veri tabanı rolleri ve uygulama rollerini içeren veri tabanı ilkelerinin oluşturulmasını veya silinmesini izler. Bu grubu bir sunucu denetimi belirtiminde etkinleştirirseniz, söz konusu SQL Server örneği içindeki tüm veritabanlarındaki ilkelerdeki değişiklikleri izler. Bu grubu bir veri tabanı denetim şartnamesi içinde etkinleştirirseniz, yalnızca söz konusu veri tabanındaki ilkelerdeki değişiklikleri izler. |
DATABASE_PRINCIPAL_IMPERSONATION_GROUP | Veri tabanı kullanıcıları, veri tabanı rolleri ve uygulama rollerini içeren veri tabanı ilkelerinin oluşturulmasını veya silinmesini izler. Bu grubu bir sunucu denetimi belirtiminde etkinleştirirseniz, söz konusu SQL Server örneği içindeki tüm veritabanlarındaki ilkelerdeki değişiklikleri izler. Bu grubu bir veri tabanı denetim şartnamesi içinde etkinleştirirseniz, yalnızca söz konusu veri tabanındaki ilkelerdeki değişiklikleri izler. |
DATABASE_ROLE_MEMBER_CHANGE_GROUP | Bu grubu bir sunucu denetim şartnamesinde etkinleştirirseniz, tüm yeni ve tüm SQL Server örneği boyunca tüm veritabanlarındaki üyeleri ve veri tabanı rollerini izler. Bu grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca ilgili veri tabanındaki veri tabanı rollerindeki üyelik değişikliklerini izler. |
DBCC_GROUP | Veri tabanı konsol komutlarının (DBCC) yürütülmesini izler. Bir sunucu denetim şartnamesi dahilinde etkinleştirilirse, SQL Server örneğinin tamamındaki tüm DBCC komutlarını izler. Bu grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veri tabanında yürütülen DBCC komutlarını izler. |
FAILED_DATABASE_AUTHENTICATION_GROUP | Oturum açma girişimlerini başarısız olan içerilen bir veri tabanına izler. Başarılı oturum açma girişimlerini izlemek için; SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP. |
FAILED_LOGIN_GROUP | Başarısız olan sunucuya oturum açma girişimlerini izlemenizi sağlar. Başarılı oturum açma girişimlerini izlemek için, bkz. SUCCESSFUL_LOGIN_GROUP. Bu yalnızca sunucu düzeyinde bir denetim eylem grubudur. Veri tabanı denetim şartnamelerinde mevcut değildir. |
FULLTEXT_GROUP | SQLFull-Text Filter Daemon Launcher / Filter Daemon ile instance arasında adlandırılmış bir boru bağlantısı olduğunda izler. Bu gruptaki olaylar, yeni bağlantıların başarısı veya başarısızlığı nedeniyle gerçekleştirilir. |
LOGIN_CHANGE_PASSWORD_GROUP | Şifre değişikliklerini ve SQL Server girişlerinin şifre sıfırlamalarını izler. Bu grup, Windows veya Active Directory kullanıcı hesaplarındaki parola değişikliklerini izlemez. Bu, sunucu düzeyinde bir denetim eylem grubudur, yalnızca veri tabanı özelliklerine eklenemez. |
LOGOUT_GROUP | Bir kullanıcı SQL Server’dan çıkış yaptığında izler. Bu grup sunucu düzeyinde bir denetim eylemi grubudur; veri tabanı denetim şartnamesinde mevcut değildir. |
SCHEMA_OBJECT_ACCESS_GROUP | Bu grup izinler tablo, görünüm veya saklı yordam gibi bir şema nesnelerinde kontrol edildiğinde izler. |
SCHEMA_OBJECT_CHANGE_GROUP | Bir tablo, görünüm veya saklı yordam gibi bir şema nesnesinde ne zaman yaratılır, değiştirilir veya bırakılırsa izlenir. Bu grubu bir sunucu denetimi belirtiminde etkinleştirirseniz, bu SQL Server örneğinin tüm veritabanlarındaki şema nesnelerindeki değişiklikleri izler. Grubu bir veri tabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veri tabanındaki şema nesnelerindeki değişiklikleri izler. |
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP | Tablo, görünüm veya saklı yordam gibi şema nesnelerinde mülkiyet değişikliklerini izler. Bu önemli bir denetim eylemi grubudur, çünkü mülkiyet değişiklikleri sistemin güvenliği için önemlidir. Bu grubu bir veri tabanı denetim spesifikasyonunda etkinleştirirseniz, yalnızca o veri tabanındaki şema nesnelerindeki mülkiyet değişikliklerini izler. Bu grubu bir sunucu denetimi belirtiminde etkinleştirirseniz, söz konusu SQL Server örneğindeki tüm veritabanlarındaki şema nesnelerindeki mülkiyet değişikliklerini izler. |
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP | Tablo, görünüm veya saklı yordam gibi şema nesnelerine izin verme, reddetme veya iptal etme girişimlerini izler. Bu önemli bir denetim eylemi grubudur, çünkü izin değişiklikleri sunucunun güvenliği ve içerdiği bilgiler için önemlidir. Bu grubu bir veri tabanı denetim spesifikasyonunda etkinleştirirseniz, yalnızca o veri tabanındaki şema nesnelerinde izin değişikliklerini izler. Bu grubu bir sunucu denetimi belirtiminde etkinleştirirseniz, söz konusu SQL Server örneğindeki tüm veritabanlarındaki şema nesnelerinde izin değişikliklerini izler. |
SERVER_OBJECT_CHANGE_GROUP | Sunucu nesnelerinin oluşturulmasını, değiştirilmesini ve silinmesini izler. |
SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP | Sunucu nesnelerindeki mülkiyet değişikliklerini izler. |
SERVER_OBJECT_PERMISSION_CHANGE_GROUP | Sunucu nesneleri üzerindeki izin değişikliklerini izler. |
SERVER_OPERATION_GROUP | Bu grup, aşağıdakileri içeren sunucu işlemlerini izler: Bulk administration, alter connection, alter resources, alter server state, alter server settings, view server state, external access assembly, unsafe assembly, alter resource governor. |
SERVER_PERMISSION_CHANGE_GROUP | Bu grup, sunucudaki izin değişikliklerini izler. |
SERVER_PRINCIPAL_CHANGE_GROUP | Oturum açma ve sunucu rollerini içeren sunucu ilkelerinin oluşturulmasını veya silinmesini izler. |
SERVER_PRINCIPAL_IMPERSONATION_GROUP | EXECUTE AS <principal> veya SETPRINCIPAL gibi sunucu düzeyinde kimliğe bürünme işlemlerini izler. Veri tabanı düzeyinde kimliğe bürünme izini izlemez; Bu olaylar için; DATABASE_PRINCIPAL_IMPERSONATION_GROUP. |
SERVER_ROLE_MEMBER_CHANGE_GROUP | Üyelik rollerini ve sunucu rollerinde kaldırmaları izler. Yalnızca sunucu denetim özelliklerinde bulunur, çünkü yalnızca sunucu düzeyindeki nesneler için geçerlidir. |
SERVER_STATE_CHANGE_GROUP | Windows’taki SQL Server hizmetindeki durum değişikliklerini (başlat, duraklat, durdur, devam ettir) izler |
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP | İçerdiği bir veri tabanın başarılı girişlerini izler. Başarısız oturum açma girişimlerini izlemek için; FAILED_DATABASE_AUTHENTICATION_GROUP |
SUCCESSFUL_LOGIN_GROUP | Başarılı girişleri SQL Server’da izler. Başarısız oturum açma girişimlerini izlemek için; FAILED_LOGIN_GROUP |
TRACE_CHANGE_GROUP | TRACE komutlarının yürütülmesini izler. |
TRANSACTION_GROUP | BEGIN TRANSACTION, ROLLBACK TRANSACTION ve COMMIT TRANSACTION işlemleri için etkinlikler içerir. Bu olaylar hem bu ifadelere yapılan açık çağrılar hem de dolaylı işlem işlemleri için ortaya çıkar. Bu olay, bir işlemin geri alınmasından kaynaklanan bireysel beyanlar için UNDO operasyonları için de geçerlidir. |
USER_CHANGE_PASSWORD_GROUP | Hem başarılı hem de başarısız olan şifre değişikliklerini ve içerdiği veritabanlarının kullanıcılarının şifre sıfırlamalarını izler. Bu grup, Windows veya Active Directory kullanıcı hesaplarındaki parola değişikliklerini izlemez. Parola değişikliklerini ve SQL Server girişlerinin sıfırlamalarını izlemek için; LOGIN_CHANGE_PASSWORD_GROUP. |
USER_DEFINED_AUDIT_GROUP | sp_audit_write saklı yordamını kullanarak ortaya çıkan olayları izler. |
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=sql-server-ver15
TAGs: Sql Server Audit Nedir?, Audit, Sql Server, Audit Nedir?, Audit Olusturma, Server Audit Specification, Database Audit Specification, Sql Server Audit Action Group, View Audit Logs, SSMS, SQL Server Management Studio
Çok güzel faydalı bir paylaşım olmuş. Elinize Sağlık.
Bu konuda, bu kapsamda ve bu kadar net bir şekilde Türkçe içerik bulmak harika. Elinize sağlık.
Güzel bir makale olmuş elinize sağlık.
Bence süper ve detaylı bir anlatım. Elinize sağlık.