SQL Server Audit

sqlserver

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:

  1. Server Audit Specifications
  2. 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://www.mshowto.org

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

Yazı gezinmesi

Mobil sürümden çık