SQL Server Audit
4

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_GROUPUygulama 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_GROUPSQL 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_GROUPVeritabanları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_GROUPTaşı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_GROUPVeritabanları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_GROUPVeri 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_GROUPBu grup veri tabanı nesnelerine erişildiğinde ortaya çıkar.
DATABASE_OBJECT_CHANGE_GROUPVeri 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_GROUPBu ö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_GROUPSertifikalar, 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_GROUPVeri tabanı kimliğine bürünme, kontrol noktaları ve belirli veri tabanı işlemlerinin yürütülmesini izler.
DATABASE_OWNERSHIP_CHANGE_GROUPAsı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_GROUPVeri 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_GROUPVeri 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_GROUPVeri 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_GROUPBu 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_GROUPVeri 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_GROUPOturum 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_GROUPBaş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_GROUPSQLFull-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_GROUPBir 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_GROUPBir 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_GROUPTablo, 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_GROUPTablo, 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_GROUPSunucu nesnelerinin oluşturulmasını, değiştirilmesini ve silinmesini izler.
SERVER_OBJECT_OWNERSHIP_CHANGE_GROUPSunucu nesnelerindeki mülkiyet değişikliklerini izler.
SERVER_OBJECT_PERMISSION_CHANGE_GROUPSunucu nesneleri üzerindeki izin değişikliklerini izler.
SERVER_OPERATION_GROUPBu 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_GROUPBu grup, sunucudaki izin değişikliklerini izler.
SERVER_PRINCIPAL_CHANGE_GROUPOturum açma ve sunucu rollerini içeren sunucu ilkelerinin oluşturulmasını veya silinmesini izler.
SERVER_PRINCIPAL_IMPERSONATION_GROUPEXECUTE 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_GROUPWindows’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_GROUPBaş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_GROUPTRACE komutlarının yürütülmesini izler.
TRANSACTION_GROUPBEGIN 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_GROUPHem 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_GROUPsp_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

Bu İçeriğe Tepkin Ne Oldu?
  • 19
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Trakya Üniversitesi - Bilgisayar Mühendisliği mezunuyum. Öğrenim hayatım boyunca C, C++, C#, VB.NET ve ASP.NET MVC dilleri ile SQL Server veri tabanı altyapılı çeşitli otomasyon projelerinde yer aldım. İş hayatıma ERP Software Support Specialist pozisyonuyla başlayıp kısa bir süre sonra kariyerime BELBİM Elektronik Para ve Ödeme Hizmetleri A.Ş.'de Ms SQL Database Administrator pozisyonu ile yön vermiş bulunmaktayım. SQL Server ile birlikte Data Warehouse, Oracle ve PostgreSQL alanlarına ilgiliyim ve kendimi bu alanlarda geliştirmeye devam ediyorum.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (4)

  1. 31/07/2019

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

  2. 17/03/2020

    Bu konuda, bu kapsamda ve bu kadar net bir şekilde Türkçe içerik bulmak harika. Elinize sağlık.

  3. Güzel bir makale olmuş elinize sağlık.

  4. Bence süper ve detaylı bir anlatım. Elinize sağlık.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir