server DENETIM (Transact-sql) oluştur

Bir sunucu denetim nesnesi kullanarak oluşturur SQL Serverdenetim. Daha fazla bilgi için, bkz. SQL Server denetim (veritabanı altyapısı).

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

CREATE SERVER AUDIT audit_name
{
    TO { [ FILE (<file_options> [ , ...n ] ) ] | APPLICATION_LOG | SECURITY_LOG }
    [ 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 ]
}

<predicate_expression>::=
{
    [NOT ] <predicate_factor> 
    [ { AND | OR } [NOT ] { <predicate_factor> } ] 
    [,...n ]
}

<predicate_factor>::= 
    event_field_name { = | < > | ! = | > | > = | < | < = } { number | ' string ' }

Bağımsız değişkenler

  • İÇİN {DOSYA | APPLICATION_LOG | GÜVENLİK}
    Denetim hedef konumunu belirler. Seçenekler şunlardır: ikili dosya, Windows uygulama günlüğüne veya Windows güvenlik günlüğüne. SQL ServerWindows'da ek ayarlarını yapılandırmadan Windows güvenlik günlüğüne yazılamıyor. Daha fazla bilgi için, bkz. SQL Server denetim olayları güvenlik günlüğüne yazma.

  • FILEPATH ='os_file_path'
    Denetim günlüğü yolu. Dosya adı, denetim GUID ve denetim adı temel alınarak oluşturulur.

  • MAXSIZE = { max_size }
    Denetim dosyasının büyüyebileceği maksimum boyutu belirtir. max_sizeDeğeri, mb, gb, tb ya da sınırsız tarafından izlenen bir tamsayı olması gerekir. En küçük boyut için belirttiğiniz max_size2 mb ve en fazla 2.147.483.647 tb. SINIRSIZ belirtildiğinde dosyası disk dolu olduğu kadar büyür. 2 MB'den daha düşük bir değer zam MSG_MAXSIZE_TOO_SMALL hata belirleme. SINIRSIZ varsayılan değerdir.

  • MAX_ROLLOVER_FILES ={ integer | UNLIMITED}
    Geçerli dosyayı ek olarak dosya sistemi korumak için dosya sayısını belirtir. MAX_ROLLOVER_FILESDeğer bir tamsayı ya da sınırsız olmalı. SINIRSIZ varsayılan değerdir. Bu parametre her denetim yeniden değerlendirilir (hangi ne zaman örneği Veritabanı Altyapısıyeniden başlatma ya da Denetim zaman açık kapatıp tekrar) ya da ne zaman yeni bir dosya tabi MAXSIZE ulaşıldığından. Ne zaman MAX_ROLLOVER_FILESdosya sayısını aşıyorsa, değerlendirilen MAX_ROLLOVER_FILESayarı eski dosya silinir. Sonuç olarak, ne zaman ayarı MAX_ROLLOVER_FILESyeni bir dosya oluşturulur her zaman 0 MAX_ROLLOVER_FILESayar değerlendirilir. Tek bir dosya ise otomatik olarak zaman silinmiş MAX_ROLLOVER_FILESayarı değerlendirilir, öylesine ne zaman değeri MAX_ROLLOVER_FILESolduğu sürece eski dosyaları el ile silinmelidir düşmüştür, dosya sayısı küçülür değil. Belirtilen dosya en fazla 2.147.483.647 numarasıdır.

  • MAX_FILES =integer
    Oluşturulan denetim dosyalarının sayısını belirtir. Sınıra ulaşıldığında değil ilk dosyaya aktarma yapar. MAX_FILES sınırına ulaşıldığında oluşturulacak ek denetim olayları neden olan herhangi bir eylem bir hata ile başarısız olur.

  • RESERVE_DISK_SPACE = {on | KAPALI}
    Bu seçenek MAXSIZE değerine diskteki dosya pre-allocates. Yalnızca MAXSIZE sınırsız için eşit değilse bunu uygular. Varsayılan değer OFF'tur.

  • queue_delay =integer
    Denetim eylemler işlenmek zorunda önce geçmesi milisaniye cinsinden süreyi belirler. 0 Değeri, senkron teslim gösterir. Asgari ayarlanabilir sorgu gecikmesi 1000 (1 saniye), varsayılan olan değerdir. En fazla 2.147.483.647 (2,147,483.647 saniye veya 24 gün, 20 saat, 31 dakika, 23.647 saniye) dır. Geçersiz bir numarası belirterek, hata MSG_INVALID_QUEUE_DELAY arttıracak.

  • ON_FAILURE = {devam | KAPATMA | FAIL_OPERATION}
    Hedef için yazma örneği başarısız, durdurmak veya devam olup olmadığını gösterir SQL Serverhedef için Denetim \Kütüğü yazamazsınız, DEVAM varsayılan değerdir.

    • CONTINUE
      SQL ServerOperasyonlar devam. Denetim kayıtları korunmaz. Denetim olaylarını girişimi devam eder ve hata koşulu giderilip giderilmediğini devam edecek. Devam et seçeneğini seçerek hangi güvenlik ilkelerini ihlal edebilir unaudited faaliyet izin verebilirsiniz. İşlemi devam eden bu seçeneği kullanın Veritabanı Altyapısıdaha tam bir denetim korumak daha önemli.

    • KAPATMA
      Ne zaman yazma için hedef sunucu örneği için denetim hedef veri yazamaz kuvvetler bir sunucu kapanmıştır. Bu verme giriş olmalıdır SHUTDOWNizni. Oturum açma bu izin yoksa işlev başarısız olur ve bir hata iletisi artırılacaktır. Hiçbir denetlenen olayları oluşur. Bir denetim hatası güvenlik veya sistemin bütünlüğünü tehlikeye seçeneğini kullanın.

    • FAIL_OPERATION
      Denetlenen olaylar neden veritabanı eylemleri başarısız. Denetlenen olaylar neden eylemleri devam edebilirsiniz, ancak hiçbir Denetlenen olaylar meydana gelebilir. Denetim olaylarını girişimi devam eder ve hata koşulu giderilip giderilmediğini devam edecek. Tam bir denetim sağlamak için tam erişim daha önemlidir bu seçeneği kullanın Veritabanı Altyapısı.

  • AUDIT_GUID =uniqueidentifier
    Veritabanı yansıtma gibi senaryoları desteklemek için yansıtılmış veritabanı içinde bulunan GUID ile eşleşen belirli bir GUID denetlenmesi gerekir. GUID, Denetim oluşturulduktan sonra değiştirilemez.

  • predicate_expression
    Koşul ifadesi bir olay veya işlenmesi durumunda belirlemek için kullanılan belirtir. Doğrulama deyimleri dizesi değişkenleri sınırlar 3000 karakter ile sınırlıdır.

  • event_field_name
    Koşul kaynağını tanımlayan olay alan adıdır. Denetim alanları içinde açıklanan sys.fn_get_audit_file (Transact-sql). Tüm alanları dışında denetlenebilir file_nameve audit_file_offset.

  • Sayı
    Herhangi bir sayısal tür dahil olduğu decimal. Kullanılabilir fiziksel bellek veya 64-bit bir tamsayı gösterilemeyecek kadar büyük bir sayı eksikliği sınırlamalardır.

  • ' string '
    Doğrulama Karşılaştır gerektirdiği bir ANSI veya UNICODE dize. Örtülü dize türü dönüştürme doğrulama karşılaştırma işlevleri için gerçekleştirilir. Yanlış tür sonuçları bir hata gönderiliyor.

Açıklamalar

Sunucu Denetim oluşturulduğunda, devre dışı durumda olduğunu.

Sunucu denetim oluşturma deyimi içinde bir hareketin kapsamıdır. İşlem geri alınır, deyimi geri alınır.

İzinler

Oluşturmak, değiştirmek veya sunucu denetim bırak için alter any server denetlemek veya control server izin ilkeleri gerektirir.

Müdahale, engellemeye yardımcı olmak için denetim bilgilerini bir dosyaya kaydettiğinizde, dosya konumuna erişimi kısıtlayın.

Örnekler

A.Bir dosya hedef sunucu denetim oluşturma

Aşağıdaki örnek, adı verilen bir sunucu denetim oluşturur HIPPA_Auditile bir ikili dosya olarak hedef ve hiçbir seçenek.

CREATE SERVER AUDIT HIPAA_Audit
    TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );

CREATE SERVER AUDIT HIPAA_Audit
    TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );

B.Windows uygulama günlüğü hedef seçenekleri ile birlikte bir sunucu denetim oluşturma

Aşağıdaki örnek, adı verilen bir sunucu denetim oluşturur HIPPA_Auditayarlamak için Windows uygulaması \Kütüğü hedefi ile Sıra her saniye yazılır ve kapamak aşağı SQL Serverdöner motoru.

CREATE SERVER AUDIT HIPAA_Audit
    TO APPLICATION_LOG
    WITH ( QUEUE_DELAY = 1000,  ON_FAILURE = SHUTDOWN);

CREATE SERVER AUDIT HIPAA_Audit
    TO APPLICATION_LOG
    WITH ( QUEUE_DELAY = 1000,  ON_FAILURE = SHUTDOWN);

C.where yan tümcesi içeren bir sunucu denetim oluşturma

Aşağıdaki örnek, bir veritabanı, şema ve iki tablo örneği oluşturur. Adlı bir tablo DataSchema.SensitiveDatagizli verileri içerecek ve tablo erişim denetim kaydı. Adlı bir tablo DataSchema.GeneralDatamahrem veri içermiyor. Veritabanı denetim belirtimi tüm nesnelere erişim denetimleri DataSchemaşema. Sunucu denetim sunucu sınırlayan bir where yan tümcesi yalnızca denetleme oluşturulur SensitiveDatatablosu. Bir denetim klasörü varsa sunucu denetim varsaymaktadır C:\SQLAudit.

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

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

Ayrıca bkz.

Başvuru

alter server DENETIM (Transact-sql)

drop server DENETIM (Transact-sql)

server DENETIM BELIRTIM (Transact-sql) oluştur

alter server DENETIM BELIRTIM (Transact-sql)

drop server DENETIM BELIRTIM (Transact-sql)

database DENETIM BELIRTIM (Transact-sql) oluştur

alter database DENETIM BELIRTIM (Transact-sql)

drop database DENETIM BELIRTIM (Transact-sql)

YETKILENDIRME (Transact-sql)

sys.fn_get_audit_file (Transact-sql)

verirsys.server_auditsKatalog (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)

Kavramlar

Server denetim ve sunucu denetim belirtimi oluşturmak