ALTER SERVER AUDIT (Transact-SQL)

Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği

SQL Server Denetim özelliğini kullanarak bir sunucu denetim nesnesini değiştirir. Daha fazla bilgi için bkz. SQL Server Denetimi (Veritabanı Altyapısı).

Transact-SQL söz dizimi kuralları

Syntax

ALTER SERVER AUDIT audit_name
{
    [ TO { { FILE ( <file_options> [ , ...n ] ) } | APPLICATION_LOG | SECURITY_LOG } | URL ]
    [ WITH ( <audit_options> [ , ...n ] ) ]
    [ WHERE <predicate_expression> ]
}
| REMOVE WHERE
| MODIFY NAME = new_audit_name
[ ; ]

<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 }
    | STATE = = { ON | OFF }
}

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

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

Arguments

TO { DOSYA | APPLICATION_LOG | GÜVENLIK | URL }

Denetim hedefinin konumunu belirler. Seçenekler ikili dosya, Windows uygulama günlüğü veya Windows güvenlik günlüğüdür.

Important

Azure SQL Yönetilen Örneği'ta SQL Audit sunucu seviyesinde çalışır ve dosyaları Azure Blob Depolama'da saklar.xel.

DOSYA YOLU = 'os_file_path'

Denetim izinin yolu. Dosya adı, denetim adı ve denetim GUID'sine göre oluşturulur.

MAKSIMUM BOYUT = max_size

Denetim dosyasının büyüyebileceği boyut üst sınırını belirtir. max_size değeri tam sayı olmalı, ardından MB, GB, TB, veya UNLIMITED. max_size için belirtebileceğiniz minimum boyut 2 MB ve maksimum 2.147.483.647'dirTB. Belirtildiğinde UNLIMITED , dosya disk dolana kadar büyür. 2 MB'dan küçük bir değer belirtmek hatayı MSG_MAXSIZE_TOO_SMALL artırır. UNLIMITED varsayılan değerdir.

MAX_ROLLOVER_FILES = tamsayı | SINIRSIZ

Dosya sisteminde tutulacak maksimum dosya sayısını belirler. Ayarlandığında MAX_ROLLOVER_FILES = 0, oluşturulan rollover dosya sayısına bir sınır konmaz. 0 varsayılan değerdir. Belirlenebilecek en fazla dosya sayısı 2.147.483.647'dir.

MAX_FILES = tamsayı

Oluşturulabilecek en fazla denetim dosyası sayısını belirtir. Sınır dolduğunda ilk dosyaya geçmiyor. 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 eşit MAXSIZE değilse UNLIMITEDgeçerlidir. OFF varsayılan değerdir.

QUEUE_DELAY = tamsayı

Denetim işlemlerinin zorlanmadan önce milisaniye cinsinden geçen zamanı belirler. 0 değeri zaman uyumlu teslimi gösterir. En düşük ayarlanabilir sorgu gecikme değeri 1000 (1 saniye), varsayılan değerdir. En fazla 2.147.483.647 (2.147.483.647 saniye veya 24 gün, 20 saat, 31 dakika, 23.647 saniye). Geçersiz bir numara belirtirseniz, hatasını MSG_INVALID_QUEUE_DELAYalırsınız.

ON_FAILURE = { CONTINUE | KAPATMA | FAIL_OPERATION }

SQL Server denetim günlüğüne yazamıyorsa, hedefe yazan örnek başarısız mı, devam mı yoksa durup durmaması gerektiğini gösterir.

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.

KAPANMA

SQL Server herhangi bir nedenle denetim hedefine veri yazamıyorsa SQL Server örneğini kapatmaya zorlar. deyimini yürüten oturum açma bilgilerinin ALTER 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, ifade başarısız olur ve denetim değiştirilmez. 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. Denetim etkiyi yaratmayan eylemler devam edebilir, ancak denetim edilen olaylar 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.

DURUM = { AÇIK | KAPALI }

Denetimin kayıt toplamasını etkinleştirir veya devre dışı bırakır. Çalışan bir denetimin durumunu (from to ONOFFto ) değiştirmek, denetimin durdurulduğuna, denetimi durduran müdürün ve denetimin durdurulduğu zamana dair bir denetim girişi oluşturur.

ADI DEĞIŞTIR = new_audit_name

Denetimin adı değiştirilir. Başka bir seçenekle kullanılamaz.

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. Tüm alanlar denetlenebilir, ancak file_name ve audit_file_offsethariç.

number

Ondalık dahil 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ış tip geçmek hata ile sonuçlanır

Remarks

Çağırdığınızda ALTER AUDITen az bir TO, WITH, veya MODIFY NAME cümleleri belirtmelisiniz.

Denetimde değişiklik yapabilmek için denetimin durumunu OFF seçeneğine ayarlamanız gerekir. Eğer ALTER AUDIT denetim etkinleştirildiğinde çalıştırılırsa, başka STATE = OFFseçeneklerle birlikte bir hata mesajı alırsınız MSG_NEED_AUDIT_DISABLED .

Denetim spesifikasyonlarını ekleyebilir, değiştirebilir ve kaldırabilirsiniz, denetimi durdurmadan yapabilirsiniz.

Denetim oluşturulduktan sonra bir denetimin GUID'sini değiştiremezsiniz.

ALTER SERVER AUDIT Bir kullanıcı işlemi içinde ifade kullanılamaz.

Permissions

Bir sunucu denetim prensibi oluşturmak, değiştirmek veya kaldırmak için ALTER ANY SERVER AUDIT veya CONTROL SERVER iznine sahip olmanız gerekir.

Examples

A. Sunucu denetim adını değiştirin

Aşağıdaki örnek, sunucu denetiminin HIPAA_Audit adını olarak değiştirir HIPAA_Audit_Old.

USE master;
GO

ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT HIPAA_Audit
MODIFY NAME = HIPAA_Audit_Old;
GO

ALTER SERVER AUDIT HIPAA_Audit_Old
WITH (STATE = ON);
GO

B. Sunucu denetim hedefini değiştirin

Aşağıdaki örnek, çağrılan sunucu denetimini HIPAA_Audit dosya hedefine dönüştürür.

USE master;
GO

ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT HIPAA_Audit TO FILE (
    FILEPATH = '\\SQLPROD_1\Audit\',
    MAXSIZE = 1000 MB,
    RESERVE_DISK_SPACE = OFF
)
WITH (
    QUEUE_DELAY = 1000,
    ON_FAILURE = CONTINUE
);
GO

ALTER SERVER AUDIT HIPAA_Audit
WITH (STATE = ON);
GO

C. Sunucu denetimi WHERE maddesini değiştir

Aşağıdaki örnek, örneğin C'de oluşturulan where cümlesini değiştirir CREATE SERVER AUDIT. Yeni WHERE maddesi, kullanıcı tanımlı olayı filtreler: 27.

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
    WHERE user_defined_event_id = 27;
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = ON);
GO

D. WHERE maddesini kaldırın

Aşağıdaki örnek, bir WHERE cümle önlem ifadesini kaldırır.

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
REMOVE WHERE;
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = ON);
GO

E. Bir sunucu denetimini yeniden adlandırma

Aşağıdaki örnek, sunucu denetim adını 'den FilterForSensitiveData 'ye AuditDataAccessdeğiştirir.

ALTER SERVER AUDIT [FilterForSensitiveData]
WITH (STATE = OFF);
GO

ALTER SERVER AUDIT [FilterForSensitiveData]
MODIFY NAME = AuditDataAccess;
GO

ALTER SERVER AUDIT [AuditDataAccess]
WITH (STATE = ON);
GO

Transact-SQL referans