Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
SQL Server Denetimi kullanarak bir sunucu denetim nesnesi oluşturur. Daha fazla bilgi için bkz. SQL Server Denetimi (Veritabanı Altyapısı).
Transact-SQL söz dizimi kuralları
Syntax
CREATE SERVER AUDIT audit_name
{
TO { [ FILE (<file_options> [ , ...n ] ) ] | APPLICATION_LOG | SECURITY_LOG | URL | EXTERNAL_MONITOR }
[ WITH ( <audit_options> [ , ...n ] ) ]
[ WHERE <predicate_expression> ]
}
[ ; ]
<file_options>::=
{
FILEPATH = 'os_file_path'
[ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
[ , { MAX_ROLLOVER_FILES = { integer | UNLIMITED } } | { MAX_FILES = integer } ]
[ , RESERVE_DISK_SPACE = { ON | OFF } ]
}
<audit_options> ::=
{
[ QUEUE_DELAY = integer ]
[ , ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION } ]
[ , AUDIT_GUID = uniqueidentifier ]
[ , OPERATOR_AUDIT = { ON | OFF } ]
}
<predicate_expression> ::=
{
[ NOT ] <predicate_factor>
[ { AND | OR } [ NOT ] { <predicate_factor> } ]
[ , ...n ]
}
<predicate_factor>::=
event_field_name { = | < > | != | > | >= | < | <= | LIKE } { number | 'string' }
Arguments
audit_name
Denetimin adı. SQL Server 2019 (15.x) ve önceki sürümlerde boşluk içeremez.
KİME { DOSYA | APPLICATION_LOG | SECURITY_LOG | Erişim Adresi | EXTERNAL_MONITOR }
Denetim hedefinin konumunu belirler. Seçenekler bir ikili dosya, Windows Uygulama günlüğü veya Windows Güvenlik günlüğü'lerdir. SQL Server, Windows'ta ek ayarlar yapılandırmadan Windows Güvenlik günlüğüne yazamaz. Daha fazla bilgi için bkz. Sql Server Denetim olaylarını Güvenlik günlüğüne yazma.
Hedef URL , SQL Server için desteklenmez.
Important
Azure SQL Yönetilen Örneği'nde SQL Denetimi sunucu düzeyinde çalışır. Konumlar yalnızca veya URLolabilirEXTERNAL_MONITOR.
DOSYA YOLU = 'os_file_path'
Denetim günlüğünün yolu. Dosya adı, denetim adı ve denetim GUID'sine göre oluşturulur. Bu yol geçersizse denetim oluşturulmaz.
FILEPATH hedef, Azure SQL Yönetilen Örneği için desteklenmez. Bunun yerine kullanmanız PATH gerekir.
MAKSIMUM BOYUT = max_size
Denetim dosyasının büyüyebileceği boyut üst sınırını belirtir.
max_size değeri MB, GB, TB veya UNLIMITEDardından gelen bir tamsayı olmalıdır.
max_size için belirtebileceğiniz en düşük boyut 2 MB ve en fazla 2.147.483.647 TB'dir. Belirtildiğinde UNLIMITED , disk dolana kadar dosya büyür. (0 ayrıca gösterir UNLIMITED.) 2 MB'tan düşük bir değer belirtilmesi hatasını MSG_MAXSIZE_TOO_SMALLverir. Varsayılan değer şudur: UNLIMITED.
MAXSIZE hedef, Azure SQL Yönetilen Örneği için desteklenmez.
MAX_ROLLOVER_FILES = { integer | SINIRSIZ }
Geçerli dosyaya ek olarak dosya sisteminde tutulacak en fazla dosya sayısını belirtir. Değer MAX_ROLLOVER_FILES bir tamsayı veya UNLIMITEDolmalıdır. Varsayılan değer şudur: UNLIMITED. Bu parametre, denetim yeniden başlatıldığında (Veritabanı Altyapısı örneği yeniden başlatıldığında veya denetim kapatılıp yeniden açıldığında gerçekleşebilir) veya öğesine ulaşıldığı için MAXSIZE yeni bir dosya gerektiğinde değerlendirilir. Değerlendirildiğinde MAX_ROLLOVER_FILES , dosya sayısı ayarı aşarsa MAX_ROLLOVER_FILES en eski dosya silinir. Sonuç olarak, ayarı 0 olduğunda, ayar MAX_ROLLOVER_FILES her MAX_ROLLOVER_FILES değerlendirildiğinde yeni bir dosya oluşturulur. Ayar değerlendirildiğinde MAX_ROLLOVER_FILES yalnızca bir dosya otomatik olarak silinir, dolayısıyla değeri MAX_ROLLOVER_FILES azaldığında eski dosyalar el ile silinmediği sürece dosya sayısı küçülmüyor. Belirtilebilen en fazla dosya sayısı 2.147.483.647'dir.
MAX_ROLLOVER_FILES Azure SQL Yönetilen Örneği için desteklenmez.
MAX_FILES = tamsayı
Oluşturulabilecek en fazla denetim dosyası sayısını belirtir. Sınıra ulaşıldığında ilk dosyaya aktarılmıyor. Sınıra MAX_FILES ulaşıldığında, daha fazla denetim olayının oluşturulmasına neden olan tüm eylemler hatayla başarısız olur.
RESERVE_DISK_SPACE = { ON | KAPALI }
Bu seçenek disk üzerindeki dosyayı değere MAXSIZE önceden ayırır. Yalnızca MAXSIZE eşit UNLIMITEDdeğilse geçerlidir. Varsayılan değer şudur: OFF.
RESERVE_DISK_SPACE hedef, Azure SQL Yönetilen Örneği için desteklenmez.
QUEUE_DELAY = tamsayı
Denetim eylemleri işlenmeden önce geçen süreyi milisaniye cinsinden belirler. 0 değeri zaman uyumlu teslimi gösterir. En düşük ayarlanabilir sorgu gecikme değeri 1000 (1 saniye), varsayılan değerdir. Maksimum değerdir 2147483647 (2.147.483.647 saniye veya 24 gün, 20 saat, 31 dakika, 23.647 saniye). Geçersiz bir sayı belirtilmesi hataya neden olur MSG_INVALID_QUEUE_DELAY .
ON_FAILURE = { CONTINUE | KAPATMA | FAIL_OPERATION }
Hedef denetim günlüğüne yazamıyorsa hedefe yazma örneğinin başarısız olması, devam etmesi veya SQL Server'ı durdurması gerekip gerekmediğini gösterir. Varsayılan değer şudur: CONTINUE.
CONTINUE
SQL Server işlemleri devam ediyor. Denetim kayıtları korunmaz. Denetim olayları günlüğe kaydetmeye çalışır ve hata koşulu çözümlenirse devam eder. Devam et seçeneğinin seçilmesi, güvenlik ilkelerinizi ihlal edebilecek, desteklenmeyen etkinliğe izin verebilir. Veritabanı Altyapısı'nın işlemine devam ederken tam denetimden daha önemli olduğunda bu seçeneği kullanın.
SHUTDOWN
SQL Server herhangi bir nedenle denetim hedefine veri yazamıyorsa SQL Server örneğini kapatmaya zorlar. deyimini yürüten oturum açma bilgilerinin CREATE SERVER AUDIT SQL Server'da SHUTDOWN izni olmalıdır. İzin daha sonra yürütülen oturum açma işleminden SHUTDOWN iptal edilse bile kapatma davranışı devam eder. Kullanıcı bu izne sahip değilse, deyimi başarısız olur ve denetim oluşturulmaz. Bir denetim hatası sistemin güvenliğini veya bütünlüğünü tehlikeye atabilirken seçeneğini kullanın. Daha fazla bilgi için bkz . SHUTDOWN.
FAIL_OPERATION
Veritabanı eylemleri denetlenen olaylara neden olursa başarısız olur. Denetlenen olaylara neden olmayan eylemler devam edebilir, ancak denetlenen hiçbir olay gerçekleşemez. Denetim olayları günlüğe kaydetmeye çalışır ve hata koşulu çözümlenirse devam eder. Tam denetim sağlamak, Veritabanı Altyapısı'na tam erişimden daha önemli olduğunda bu seçeneği kullanın.
AUDIT_GUID = uniqueidentifier
Veritabanı yansıtması veya Always On kullanılabilirlik grubuna katılan veritabanları gibi senaryoları desteklemek için, denetime yansıtılmış veritabanında bulunan GUID ile eşleşen belirli bir GUID gerekir. Denetim oluşturulduktan sonra GUID değiştirilemez.
OPERATOR_AUDIT
Şunlar için geçerlidir: Yalnızca Azure SQL Yönetilen Örneği.
Bir destek isteği sırasında sunucunuza erişmesi gerektiğinde denetimin Microsoft destek mühendisi işlemlerini yakalayıp yakalamadığını gösterir.
predicate_expression
Bir olayın işlenip işlenmediğini belirlemek için kullanılan koşul ifadesini belirtir. Koşul ifadeleri, dize bağımsız değişkenlerini sınırlayan 3.000 karakterlik bir uzunlukla sınırlıdır.
event_field_name
Koşul kaynağını tanımlayan olay alanının adı. Denetim alanları sys.fn_get_audit_file açıklanmıştır. , file_nameve audit_file_offsetdışındaki event_timetüm alanlar filtrelenebilir.
Note
action_id ve class_type alanları içinde varchar türünde olsalar dasys.fn_get_audit_file, yalnızca filtreleme için bir koşul kaynağı olduklarında sayılarla kullanılabilirler. ile class_typekullanılacak değerlerin listesini almak için aşağıdaki sorguyu yürütür:
SELECT spt.[name], spt.[number] FROM [master].[dbo].[spt_values] spt WHERE spt.[type] = N'EOD' ORDER BY spt.[name];
number
Ondalık da dahil olmak üzere herhangi bir sayısal tür. Sınırlamalar, kullanılabilir fiziksel belleğin olmaması veya 64 bit tamsayı olarak temsil edilemeyecek kadar büyük bir sayıdır.
'string'
Koşul karşılaştırmasının gerektirdiği ansi veya Unicode dizesi. Koşul karşılaştırma işlevleri için örtük dize türü dönüştürme işlemi yapılmaz. Yanlış türün geçirilmesi hatayla sonuçlanır.
Remarks
Bir sunucu denetimi oluşturulduğunda devre dışı durumda olur.
Deyimi CREATE SERVER AUDIT bir işlemin kapsamındadır. İşlem geri alınırsa deyim de geri alınır.
Permissions
Sunucu denetimi oluşturmak, değiştirmek veya bırakmak için sorumlular veya izni gerektirir ALTER ANY SERVER AUDITCONTROL SERVER .
Denetim bilgilerini bir dosyaya kaydederken, üzerinde oynanmasını önlemeye yardımcı olmak için dosya konumuna erişimi kısıtlayın.
Examples
A. Dosya hedefi ile sunucu denetimi oluşturma
Aşağıdaki örnek, adlı HIPAA_Audit ve hedef olarak ikili dosya olan ve seçenek içermeyen bir sunucu denetimi oluşturur.
CREATE SERVER AUDIT HIPAA_Audit TO FILE (
FILEPATH = '\\SQLPROD_1\Audit\'
);
B. Seçenekler içeren bir Windows Uygulaması günlük hedefi ile sunucu denetimi oluşturma
Aşağıdaki örnek, Windows Uygulama günlüğü için hedef kümeyle adlı HIPAA_Audit bir sunucu denetimi oluşturur. Kuyruk her saniye yazılır ve hata durumunda SQL Server altyapısını kapatır.
CREATE SERVER AUDIT HIPAA_Audit TO APPLICATION_LOG
WITH (QUEUE_DELAY = 1000, ON_FAILURE = SHUTDOWN);
C. WHERE yan tümcesi içeren bir sunucu denetimi oluşturma
Aşağıdaki örnek, örnek için bir veritabanı, şema ve iki tablo oluşturur. adlı DataSchema.SensitiveData tablo gizli veriler içeriyor ve tabloya erişimin denetime kaydedilmesi gerekiyor. adlı DataSchema.GeneralData tablo gizli veriler içermiyor. Veritabanı denetim belirtimi şemadaki DataSchema tüm nesnelere erişimi denetler. Sunucu denetimi, sunucu denetimini yalnızca SensitiveData tabloyla sınırlayan bir WHERE yan tümcesiyle oluşturulur. Sunucu denetiminde bir denetim klasörü olduğu C:\SQLAuditvarsayılıyor.
CREATE DATABASE TestDB;
GO
USE TestDB;
GO
CREATE SCHEMA DataSchema;
GO
CREATE TABLE DataSchema.GeneralData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
CREATE TABLE DataSchema.SensitiveData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
-- Create the server audit in the master database
USE master;
GO
CREATE SERVER AUDIT AuditDataAccess TO FILE (FILEPATH = 'C:\SQLAudit\')
WHERE object_name = 'SensitiveData';
GO
ALTER SERVER AUDIT AuditDataAccess WITH (STATE = ON);
GO
-- Create the database audit specification in the TestDB database
USE TestDB;
GO
CREATE DATABASE AUDIT SPECIFICATION [FilterForSensitiveData]
FOR SERVER AUDIT [AuditDataAccess]
ADD (SELECT ON SCHEMA::[DataSchema] BY [public])
WITH(STATE = ON);
GO
-- Trigger the audit event by selecting from tables
SELECT ID,
DataField
FROM DataSchema.GeneralData;
SELECT ID,
DataField
FROM DataSchema.SensitiveData;
GO
-- Check the audit for the filtered content
SELECT *
FROM fn_get_audit_file('C:\SQLAudit\AuditDataAccess_*.sqlaudit', DEFAULT, DEFAULT);
GO
Transact-SQL reference
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER DENETİMİ (Transact-SQL)
- SUNUCU DENETİM BELİRTİMİ OLUŞTUR (Transact-SQL)
- ALTER SERVER AUDIT SPECIFICATION (Transact-SQL)
- BIRAKMA SUNUCUSU DENETIM ÖZELLIKLERI (Transact-SQL)
- VERİ TABANI DENETİM ÖZELLİĞİ OLUŞTUR (Transact-SQL)
- ALTER VERITABANI DENETIM SPESIFIKASYONU (Transact-SQL)
- VERİTABANI DENETİM ÖZELLİĞİ'Nİ SİL (Transact-SQL)
- DEĞIŞTIRME YETKISI (Transact-SQL)
Related content
- sys.fn_get_audit_file (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- Sunucu Denetimi ve Sunucu Denetim Belirtimi Oluşturma