SQL Server Denetim Kayıtları

Şunlar için geçerlidir: SQL Server

SQL Server Denetimi özelliği, sunucu düzeyinde ve veritabanı düzeyinde olay ve olay gruplarını denetlemenize olanak tanır. Daha fazla bilgi için bkz. SQL Server Denetimi (Veritabanı Altyapısı). SQL Server.

Denetimler, bir denetim hedefine kaydedilen sıfır veya daha fazla denetim eylemi öğesinden oluşur. Denetim hedefi bir ikili dosya, Windows Uygulaması olay günlüğü veya Windows Güvenliği olay günlüğü olabilir. Hedefe gönderilen kayıtlar aşağıdaki tabloda açıklanan öğeleri içerebilir:

Sütun adı Description Türü Her zaman kullanılabilir
event_time Denetlenebilir eylemin tetiklenme tarihi ve saati. datetime2 Yes
sıra_numarası Denetimler için yazma arabelleğine sığamayacak kadar büyük olan tek bir denetim kaydındaki kayıtların sırasını izler. Int Yes
action_id Eylemin ID'si

İpucu: action_id koşul olarak kullanmak için karakter dizesinden sayısal değere dönüştürülmelidir. Daha fazla bilgi için bkz. action_id/class_type koşulunda SQL Server Denetimini filtreleme.
varchar(4) Yes
Başarılı Olayı tetikleyen eylemin başarılı olup olmadığını gösterir. Oturum açma olayları dışındaki tüm olaylar için bu yalnızca izin denetiminin başarılı mı yoksa başarısız mı olduğunu bildirir, işlemin değil.
- 1 = Başarı
- 0 = Başarısız
bit Yes
permission_bitmask Bazı eylemlerde verilen, reddedilen veya iptal edilen izinler budur. varbinary(16) Hayı
is_column_permission Bunun bir sütun düzeyi izni olup olmadığını gösteren bayrak işareti. permission_bitmask = 0 olduğunda 0 döndürür.
- 1 = Doğru
- 0 = Yanlış
bit Hayı
session_id Olayın gerçekleştiği oturumun kimliği. smallint Yes
server_principal_id Eylemin gerçekleştirdiği oturum açma bağlamının kimliği. Int Yes
database_principal_id Eylemin gerçekleştirdiği veritabanı kullanıcı bağlamının kimliği. Bu geçerli değilse 0 döndürür. Örneğin, bir sunucu işlemi. Int Hayı
target_server_principal_id (hedef sunucu anahtar tanımlayıcısı) GRANT/DENY/REVOKE işleminin üzerinde gerçekleştirdiği sunucu sorumlusu. Uygulanamazsa 0 döndürür. Int Yes
target_database_principal_id GRANT/DENY/REVOKE işleminin gerçekleştirildiği veritabanı ilkesi. Uygulanamazsa 0 döndürür. Int Hayı
object_id Denetimin gerçekleştiği varlığın kimliği. Buna şunlar dahildir:
sunucu nesneleri
Veritaban -ları
veritabanı nesneleri
şema nesneleri
Varlık Sunucu'nun kendisiyse veya denetim nesne düzeyinde gerçekleştirilmezse 0 döndürür. Örneğin, Kimlik Doğrulaması.
Int Hayı
class_type Denetimin gerçekleştiği denetlenebilir varlık türü. varchar(2) Yes
session_server_principal_name Oturum için sunucu sorumlusu. sysname Yes
server_principal_name Geçerli oturum açma. sysname Yes
server_principal_sid Geçerli oturum açma SID'si. varbinary(85) Yes
database_principal_name Geçerli kullanıcı. sysname Hayı
target_server_principal_name Hedef oturum açma işlemi. Uygulanamazsa NULL döndürür. sysname Hayı
target_server_principal_sid Hedef oturum açma sid'i. Uygulanamazsa NULL döndürür. varbinary(85) Hayı
hedef_veritabanı_prensip_adı Eylemin hedef kullanıcısı. Uygulanamazsa NULL döndürür. sysname Hayı
server_instance_name Denetimin gerçekleştiği sunucu örneğinin adı. Standart sunucu\örnek biçimi kullanılır. sysname Yes
database_name Eylemin gerçekleştiği veritabanı bağlamı. Nullable. Sunucu düzeyinde gerçekleşen denetimler için NULL döndürür. sysname Hayı
schema_name Eylemin gerçekleştiği şema bağlamı. sysname Hayı
object_name Denetimin gerçekleştiği varlığın adı. Buna şunlar dahildir:
sunucu nesneleri
Veritaban -ları
veritabanı nesneleri
şema nesneleri
Nullable. Varlık Sunucu'nun kendisiyse veya denetim nesne düzeyinde gerçekleştirilmezse NULL döndürür. Örneğin, Kimlik Doğrulaması.
sysname Hayı
beyanat T-SQL ifadesi varsa. Uygulanamazsa NULL döndürür. nvarchar(4000) Hayı
additional_information Yalnızca tek bir olaya uygulanan benzersiz bilgiler XML olarak döndürülür. Denetlenebilir birkaç eylem bu tür bilgileri içerir.

TSQL yığınının ilişkili olduğu eylemler için bir TSQL yığını düzeyi XML biçiminde görüntülenir. XML biçimi şöyle olacaktır:
<tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>
Çerçeve iç içe yerleştirme_seviyesi, çerçevenin geçerli iç içe yerleştirme düzeyini gösterir. Modül adı üç parça biçiminde gösterilir (database_name, schema_name ve object_name). Modül adı , , '\<', '>''/'gibi '_x'geçersiz xml karakterlerinden kaçmak için ayrıştırılır. Onlar _xHHHH\_ olarak kaçacak. HHHH, karakter için dört basamaklı onaltılık UCS-2 kodunu temsil eder.
Nullable. Olay tarafından bildirilen ek bilgi olmadığında NULL döndürür.
nvarchar(4000) Hayı
file_name Kaydın geldiği denetim günlüğü dosyasının yolu ve adı. varchar(260) Yes
audit_file_offset Şunlar için geçerlidir: Yalnızca SQL Server

Denetim kaydını içeren dosyadaki arabellek uzaklığı.
bigint Hayı
user_defined_event_id Şunlar için geçerlidir: SQL Server 2012 (11.x) ve üzeri, Azure SQL Veritabanı ve SQL Yönetilen Örneği

Kullanıcı tanımlı olay kimliği, sistem olayları için sp_audit_writeNULL (varsayılan) ve kullanıcı tanımlı olaylar için sıfır olmayan bir değer olarak bağımsız değişken olarak geçirildi. Daha fazla bilgi için bkz. sp_audit_write (Transact-SQL).
smallint Hayı
kullanıcı_tanımlı_bilgi Şunlar için geçerlidir: SQL Server 2012 (11.x) ve üzeri, Azure SQL Veritabanı ve SQL Yönetilen Örneği

sp_audit_write saklı yordamını kullanarak, kullanıcının denetim günlüğüne kaydetmek istediği ek bilgileri kaydetmek için kullanılır.
nvarchar(4000) Hayı
audit_schema_version Her zaman 1 Int Yes
sequence_group_id Şunlar için geçerlidir: Yalnızca SQL Server

Benzersiz tanımlayıcı
varbinary(85) Hayı
transaction_id Şunlar için geçerlidir: Yalnızca SQL Server (2016'dan itibaren)

Tek bir işlemde birden çok denetim olayını tanımlamak için benzersiz tanımlayıcı
bigint Hayı
client_ip Şunlar için geçerlidir: Azure SQL Veritabanı + SQL Server (2017'den itibaren)

İstemci uygulamasının kaynak IP'sini
nvarchar(128) Hayı
application_name Şunlar için geçerlidir: Azure SQL Veritabanı + SQL Server (2017'den itibaren)

Denetim olayına neden olan deyimi yürüten istemci uygulamasının adı
nvarchar(128) Hayı
duration_milliseconds Şunlar için geçerlidir: Azure SQL Veritabanı ve SQL Yönetilen Örneği

Milisaniye cinsinden sorgu yürütme süresi
bigint Hayı
response_rows Şunlar için geçerlidir: Azure SQL Veritabanı ve SQL Yönetilen Örneği

Sonuç kümesinde döndürülen satır sayısı.
bigint Hayı
affected_rows (Etkilenen satırlar) Şunlar için geçerlidir: Yalnızca Azure SQL Veritabanı

Yürütülen deyimden etkilenen satır sayısı.
bigint Hayı
connection_id Şunlar için geçerlidir: Azure SQL Veritabanı ve SQL Yönetilen Örneği

Sunucudaki bağlantının kimliği
GUID Hayı
veri_duyarlılık_bilgisi Şunlar için geçerlidir: Yalnızca Azure SQL Veritabanı

Veritabanındaki sınıflandırılmış sütunlara göre denetlenen sorgu tarafından döndürülen bilgi türleri ve duyarlılık etiketleri. Azure SQL Veritabanı veri bulma ve sınıflandırma hakkında daha fazla bilgi edinin
nvarchar(4000) Hayı
host_name İstemci bağlantısının ana bilgisayar adı nvarchar(128) Hayı
session_context Bağlantı için oturum bağlamı bilgileri nvarchar(4000) Hayı
client_tls_version Şunlar için geçerlidir: SQL Server 2022 ve üzeri

İstemci bağlantısı tarafından kullanılan TLS sürüm numarası
Int Hayı
client_tls_version_name Şunlar için geçerlidir: SQL Server 2022 ve üzeri

İstemci bağlantısı tarafından kullanılan TLS sürüm adı
nvarchar(128) Hayı
database_transaction_id Veritabanı işlem tanımlayıcısı bigint Hayı
defter_başlangıç_sıra_numarası Şunlar için geçerlidir: SQL Server 2022 ve üzeri

Muhasebe işlemleri için muhasebe başlangıç sırası numarası
bigint Hayı
external_policy_permissions_checked İşlem sırasında denetlenen dış ilke izinleri nvarchar(4000) Hayı

Açıklamalar

Bazı eylemler sütunun değerini doldurmaz çünkü eyleme uygulanamaz.

SQL Server Denetimi, bir denetim kaydındaki karakter alanları için 4.000 karakterlik verileri depolar. Denetlenebilir bir eylemden döndürülen additional_information ve ifade değerleri 4000'den fazla karakter döndüğünde, sequence_number sütunu bu verileri kaydetmek üzere tek bir denetim eylemi için denetim raporuna birden çok kayıt yazmak için kullanılır. İşlem aşağıdaki gibidir:

  • Deyim sütunu 4.000 karaktere bölünür.

  • SQL Server Denetimi, denetim kaydını ilk olarak kısmi verilerle yazar. Diğer tüm alanlar her satırda yinelenir.

  • sequence_number değeri artırılır.

  • Tüm veriler kaydedilene kadar bu işlem yinelenir.

sequence_number değerini kullanarak satırları sırayla okuyarak ve eylemi tanımlamak için event_Time, action_id ve session_id sütunlarını kullanarak verileri bağlayabilirsiniz.