1. Ana Sayfa
  2. SQL Server
  3. SQL Server Audit

SQL Server Audit

sqlserver


Bir Database Engine instance ının veya tek bir veritabanı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 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 veritabanı düzeyinde meydana gelen olayların denetlenmesi için veritabanı 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 veritabanı 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 veritabanı altındaki Security sekmesinde de Database Audit Specifications klasörüne sağ tıklayıp New 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 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 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 veritabanı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 veritabanı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 ı veritabanı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)
— Enable olması için

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, veritabanına uygulamaya özel belirli bir erişim vermek için kullanılan bir veritabanı 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 veritabanında etkinleştirirseniz, yalnızca bu veritabanı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 veritabanı denetim teknik özelliklerinde yapılan değişiklikleri izleyecektir. Bu grubu bir veritabanında etkinleştirirseniz, o veritabanı içindeki veritabanı 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 veritabanının tüm kopyalarını çalmak için kullanılabilecek bir veritabanı yedeklemesi denetim izine sahip olmanız için önemlidir. Ve elbette bir veritabanının uygunsuz bir şekilde geri yüklenmesi felaket etkilere neden olabilir. Bu grubu sunucuda etkinleştirirseniz, tüm veritabanı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 veritabanında izlemek için bu grubun o veritabanı üzerindeki bir veritabanı 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, veritabanındaki özniteliklerin değiştirilmesi için geçerlidir, tablolar gibi veritabanı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 veritabanında etkinleştirirseniz, yalnızca bu veritabanının kendisinin değiştirilmesini ve silinmesini izleyebilirsiniz.
DATABASE_LOGOUT_GROUP  Bu grup, bir kullanıcı içerdiği veritabanından çıkış yaptığında izler.
DATABASE_MIRRORING_LOGIN_GROUP Veritabanı 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 veritabanı nesnelerine erişildiğinde ortaya çıkar.
DATABASE_OBJECT_CHANGE_GROUP Veritabanı nesnelerinin oluşturulmasını, değişikliklerini ve silinmelerini izler. Bu grubu bir veritabanı denetim spesifikasyonunda etkinleştirirseniz, yalnızca o veritabanındaki veritabanı 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 veritabanı 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 veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veritabanındaki veritabanı 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 veritabanı nesnelerindeki mülkiyet değişikliklerini izler.

DATABASE_OBJECT_PERMISSION_CHANGE_GROUP Sertifikalar, veritabanı ana anahtarları, veritabanı şifreleme anahtarları, simetrik ve asimetrik anahtarlar, meclisler ve şemalar dahil olmak üzere veritabanı 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 veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veritabanındaki veritabanı 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 veritabanı nesnelerinde izin değişikliklerini izler.
DATABASE_OPERATION_GROUP Veritabanı kimliğine bürünme, kontrol noktaları ve belirli veritabanı 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 veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca söz konusu veritabanı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 Veritabanındaki nesneler üzerindeki izin değişikliklerinin aksine, veritabanı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 veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca söz konusu veritabanındaki izin değişikliklerini kontrol eder.
DATABASE_PRINCIPAL_CHANGE_GROUP Veritabanı kullanıcıları, veritabanı rolleri ve uygulama rollerini içeren veritabanı 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 veritabanı denetim şartnamesi içinde etkinleştirirseniz, yalnızca söz konusu veritabanındaki ilkelerdeki değişiklikleri izler.
DATABASE_PRINCIPAL_IMPERSONATION_GROUP Veritabanı kullanıcıları, veritabanı rolleri ve uygulama rollerini içeren veritabanı 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 veritabanı denetim şartnamesi içinde etkinleştirirseniz, yalnızca söz konusu veritabanı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 veritabanı rollerini izler. Bu grubu bir veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca ilgili veritabanındaki veritabanı rollerindeki üyelik değişikliklerini izler.
DBCC_GROUP Veritabanı 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 veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veritabanı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 veritabanı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 veritabanı özelliklerine eklenemez.
LOGOUT_GROUP Bir kullanıcı SQL Server’dan çıkış yaptığında izler. Bu grup sunucu düzeyinde bir denetim eylemi grubudur; veritabanı 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 veritabanı denetim şartnamesinde etkinleştirirseniz, yalnızca o veritabanı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 veritabanı denetim spesifikasyonunda etkinleştirirseniz, yalnızca o veritabanı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 veritabanı denetim spesifikasyonunda etkinleştirirseniz, yalnızca o veritabanı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. Veritabanı 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 veritabanı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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

https://www.mshowto.org

TAGs: , Audit, Sql Server, Audit Nedir?, , , Database Audit Specification, , View Audit Logs, SSMS,

Yorum Yap

Yazar Hakkında

Trakya Üniversitesi – Bilgisayar Mühendisliği mezunuyum. İş hayatıma ERP Yazılım Geliştirme pozisyonuyla başladım Ancak kariyerime başka bir pozisyonda ilerleme kararı alıp Data Warehouse, SQL Server tarafına yöneldim. Şu anda da Belbim A.Ş’de Ms SQL Database Administrator pozisyonunda çalışmaktayım. Hobi olarak Oracle ve PostgreSQL alanlarında kendimi geliştirmeye devam ediyorum.

Yorum Yap

Yorumlar (1)

  1. 3 hafta önce

    Çok güzel faydalı bir paylaşım olmuş. Elinize Sağlık.