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:Azure SQL Database
Microsoft Fabric'te
DepoMicrosoft Fabric'te SQL veritabanı
Sistem fonksiyonu, sys.fn_get_audit_file_v2 selefine kıyasla daha verimli denetim günlüğü verilerini almak için tasarlanmıştır. sys.fn_get_audit_file Bu fonksiyon, hem dosya hem de kayıt seviyelerinde zaman bazlı filtreleme getirir ve özellikle belirli zaman aralıklarını hedefleyen sorgularda önemli performans iyileştirmeleri sağlar.
Bir sunucu denetimi tarafından oluşturulan bir denetim dosyasından bilgi döndürür. Daha fazla bilgi için bkz . SQL Server Denetimi (Veritabanı Altyapısı).
- Azure SQL Database auditing kurulumu hakkında bilgi için bkz. SQL Database auditing ile başla.
- Fabric Data Warehouse denetimi kurulumu hakkında bilgi için Fabric Data Warehouse'daki SQL Audit Logs bölümüne bakınız.
- Fabric denetiminde SQL veritabanı kurulumu hakkında bilgi için Fabric'te SQL veritabanında SQL Denetimi sayfasına bakınız.
Transact-SQL söz dizimi kuralları
Sözdizimi
fn_get_audit_file_v2 ( file_pattern
, { default | initial_file_name | NULL }
, { default | audit_record_offset | NULL }
, { default | start time | NULL }
, { default | end time | NULL } )
Arguments
file_pattern
Şunlar için geçerlidir: Azure SQL Database only
Okunacak denetim dosyası ayarının dizini, yolunu ve dosya adını belirtir. file_patternnvarchar(260)'dır.
Bir yolu dosya adı deseni olmadan geçirmek hata oluşturur.
Bu argüman, bir blob URL'sini (depolama uç noktası ve konteyner dahil) belirtmek için kullanılır. Yıldız işaretli joker kartı desteklemese de, tam blob adı yerine kısmi bir dosya (blob) adı preeki kullanarak bu preekle başlayan birden fazla dosyayı (blob) toplayabilirsiniz. Örneğin:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/- belirli veritabanı için tüm denetim dosyalarını (blob'ları) toplar.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- belirli bir denetim dosyasını (blob) toplar.
initial_file_name
Şunlar için geçerlidir: Azure SQL Database only
Denetim dosyası setinde denetim kayıtlarını okumaya başlamak için belirli bir dosyanın yolunu ve adını belirtir. initial_file_namenvarchar(260)'dır.
initial_file_name argümanı geçerli girişler içermeli veya ya default ya da değerini NULL içermelidir.
audit_record_offset
Şunlar için geçerlidir: Azure SQL Database only
initial_file_name için belirtilen dosya ile bilinen bir konumu belirtir. Bu argüman kullanıldığında, fonksiyon belirtilen ofsetin hemen ardından tamponun ilk kaydında okumaya başlar.
audit_record_offset argümanı geçerli girişler içermeli veya ya default da ya da NULL değerini içermelidir.
audit_record_offsetbüyük.
start_time
Kayıtları filtreleme için başlama zamanı. Bu zamandan önceki kayıtlar hariçtır.
end_time
Kayıtların filtrelenmesi için son zaman. Bu zamandan sonraki kayıtlar hariçtır.
Tablo geri getirildi
Aşağıdaki tablo, bu fonksiyonun döndürülen denetim dosyası içeriğini açıklar.
| Sütun adı | Türü | Description |
|---|---|---|
event_time |
datetime2 | Denetlenebilir eylemin tetiklenme tarihi ve saati. Null değeri atanamaz. |
sequence_number |
int | 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. Null değeri atanamaz. |
action_id |
varchar(4) | Eylemin kimliği. Null değeri atanamaz. |
succeeded |
bit | Olayı tetikleyen eylemin başarılı olup olmadığını gösterir. Null değeri atanamaz. 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 |
permission_bitmask |
varbinary(16) | Bazı eylemlerde, bu bitmask verilen izinler, reddedilen veya iptal edilen izinlerdir. |
is_column_permission |
bit | Bunun bir sütun düzeyi izni olup olmadığını gösteren bayrak. Null değeri atanamaz. Geri 0 döndüğündepermission_bitmask = 0 .1 = doğru0 = yanlış |
session_id |
smallint | Olayın gerçekleştiği oturumun kimliği. Null değeri atanamaz. |
server_principal_id |
int | Eylemin gerçekleştirdiği oturum açma bağlamının kimliği. Null değeri atanamaz. |
database_principal_id |
int | Eylemin gerçekleştirdiği veritabanı kullanıcı bağlamının kimliği. Null değeri atanamaz. Bu geçerli değilse iadeler 0 . Örneğin, bir sunucu işlemi. |
target_server_principal_id |
int | İşlemin GRANT/DENY/REVOKE uygulandığı sunucu prensibası. Null değeri atanamaz. Geçerli değilse beyannameler 0 . |
target_database_principal_id |
int | İşlemin GRANT/DENY/REVOKE yapıldığı veritabanı prensibi. Null değeri atanamaz. Geçerli değilse beyannameler 0 . |
object_id |
int | Denetimin gerçekleştiği kuruluşun kimliği, aşağıdaki nesneleri içerir: - Sunucu nesneleri -Veritaban -ları - Veritabanı nesneleri - Şema nesneleri Null değeri atanamaz. Eğer varlık Sunucunun kendisi ise ya da denetim nesne seviyesinde yapılmıyorsa döner 0 . Örneğin, Kimlik Doğrulaması. |
class_type |
varchar(2) | Denetimin gerçekleştiği denetlenebilir varlık türü. Null değeri atanamaz. |
session_server_principal_name |
sysname | Oturum için sunucu prensibi. Nullable. Açık veya örtük bağlam anahtarlamaları olduğunda Veritabanı Motoru örneğine bağlı orijinal girişin kimliğini döndürür. |
server_principal_name |
sysname | Geçerli oturum açma. Nullable. |
server_principal_sid |
varbinary | Geçerli oturum açma SID'si. Nullable. |
database_principal_name |
sysname | Geçerli kullanıcı. Nullable. Mevcut değilse iadeler NULL . |
target_server_principal_name |
sysname | Hedef girişi. Nullable. Geçerli değilse beyannameler NULL . |
target_server_principal_sid |
varbinary | Hedef girişinin SID'si. Nullable. Geçerli değilse beyannameler NULL . |
target_database_principal_name |
sysname | Eylemin hedef kullanıcısı. Nullable. Geçerli değilse beyannameler NULL . |
server_instance_name |
sysname | Denetimin gerçekleştiği sunucu örneğinin adı. Standart server\instance format kullanılır. |
database_name |
sysname | Eylemin gerçekleştiği veritabanı bağlamı. Nullable. Sunucu düzeyinde gerçekleşen denetimler için iadeler NULL . |
schema_name |
sysname | Eylemin gerçekleştiği şema bağlamı. Nullable. Bir şema dışında gerçekleşen denetimler için yapılan beyanlar NULL . |
object_name |
sysname | Denetimin gerçekleştiği kurumun adı, aşağıdaki nesneleri içerir: - Sunucu nesneleri -Veritaban -ları - Veritabanı nesneleri - Şema nesneleri Nullable. Eğer varlık Sunucunun kendisi ise ya da denetim nesne seviyesinde yapılmıyorsa döner NULL . Örneğin, Kimlik Doğrulaması. |
statement |
nvarchar(4000) | Transact-SQL ifadesi varsa. Nullable. Geçerli değilse beyannameler NULL . |
additional_information |
nvarchar(4000) | Yalnızca tek bir olaya uygulanan benzersiz bilgiler XML olarak döndürülür. Denetlenebilir birkaç eylem bu tür bilgileri içerir. T-SQL yığınının bir seviyesi, T-SQL yığını ile ilişkilendirilen eylemler için XML formatında görüntülenir. XML formatı şudur: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level çerçevenin mevcut iç içe geçme seviyesini gösterir. Modül adı üç bölüm formatında temsil edilir (database_name, schema_name, ve object_name). Modül adı, , <>/gibi geçersiz XML karakterlerinden _xkaçmak için ayrıştırılır. Kaçtılar._xHHHH_ Bu kod HHHH , karakter için dört haneli onaltılık UCS-2 kodunu ifade eder. Nullable. Olay tarafından ek bilgi bildirilmediğinde geri döner NULL . |
file_name |
varchar(260) | Kaydın geldiği denetim günlüğü dosyasının yolu ve adı. Null değeri atanamaz. |
audit_file_offset |
bigint | Denetim kaydını içeren dosyadaki arabellek uzaklığı. Null değeri atanamaz. |
user_defined_event_id |
smallint | Kullanıcı tanımlı olay kimliği argüman olarak iletildi sp_audit_write.
NULL sistem olayları için (varsayılan) ve kullanıcı tanımlı olaylar için sıfır olmayan. Daha fazla bilgi için bkz. sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Saklı yordamı kullanarak sp_audit_write kullanıcının denetim günlüğüne kaydetmek istediği ek bilgileri kaydetmek için kullanılır. |
audit_schema_version |
int | Her zaman 1. |
sequence_group_id |
varbinary | Benzersiz tanımlayıcı.< |
transaction_id |
bigint | Tek bir işlemde birden fazla denetim olayını tanımlamak için benzersiz tanımlayıcı. |
client_ip |
nvarchar(128) | İstemci uygulamasının kaynak IP'si. |
application_name |
nvarchar(128) | Denetim olayına sebep olan ifadeyi çalıştıran istemci uygulamasının adı. |
duration_milliseconds |
bigint | Sorgu yürütme süresi milisaniyeler cinsinden. |
response_rows |
bigint | Sonuç setinde döndürülen satır sayısı.< |
affected_rows |
bigint | Yürütülen ifadeden etkilenen satır sayısı. |
connection_id |
uniqueidentifier | Sunucudaki bağlantının kimliği. |
data_sensitivity_information |
nvarchar(4000) | 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ı verilerinin keşfi ve sınıflandırması hakkında daha fazla bilgi edinin. |
host_name |
nvarchar(128) | İstemci makinenin ana adı. |
session_context |
nvarchar(4000) | Mevcut oturum bağlamının bir parçası olan anahtar-değer çiftleri. |
client_tls_version |
bigint | İstemci tarafından desteklenen minimum TLS sürümü. |
client_tls_version_name |
nvarchar(128) | İstemci tarafından desteklenen minimum TLS sürümü. |
database_transaction_id |
bigint | Mevcut oturumdaki mevcut işlemin işlem kimliği. |
ledger_start_sequence_number |
bigint | Bir işlem içindeki ve satır versiyonu oluşturan bir işlemin sıra numarası. |
external_policy_permissions_checked |
nvarchar(4000) | Dış yetkilendirme izni kontrolüyle ilgili bilgiler, bir denetim olayının ne zaman oluşturulduğu ve Purview dış yetkilendirme politikaları değerlendirilir. |
obo_middle_tier_app_id |
varchar(120) | On-belong-of (OBO) erişimi kullanarak bağlanan orta seviye uygulamanın uygulama kimliği. Nullable. Eğer talep OBO erişimi kullanılarak yapılmadıysa iade NULL eder. |
is_local_secondary_replica |
bit |
True eğer denetim kaydı yalnızca okunabilir yerel ikincil bir kopyadan geliyorsa, False aksi takdirde. |
Gelişmeler sys.fn_get_audit_file
Bu sys.fn_get_audit_file_v2 fonksiyon, hem dosya hem de kayıt seviyelerinde verimli zaman bazlı filtreleme sunarak eski sys.fn_get_audit_file göre önemli bir gelişme sunar. Bu optimizasyon, özellikle daha kısa zaman aralıklarını hedefleyen sorgular için faydalıdır ve çoklu veritabanı ortamlarında performansın korunmasına yardımcı olabilir.
Çift seviyeli filtreleme
Dosya düzeyinde filtreleme: Fonksiyon önce dosyaları belirlenen zaman aralığına göre filtreler, taranması gereken dosya sayısını azaltır.
Kayıt düzeyinde filtreleme: Daha sonra seçilen dosyalar içinde filtreleme uygulayarak yalnızca ilgili kayıtları çıkarır.
Performans geliştirmeleri
Performans iyileştirmeleri esas olarak blob dosyalarının rollover süresine ve sorgulanan zaman aralığına bağlıdır. Denetim kayıtlarının eşit dağılımı varsayarsak:
Azaltılmış yük: Taranacak dosya ve kayıt sayısını en aza indirerek, sistem üzerindeki yükü azaltır ve sorgu yanıt sürelerini iyileştirir.
Ölçeklenebilirlik: Veritabanı sayısı artsa bile performansı korumaya yardımcı olur, ancak net iyileşme çok sayıda veritabanı olan ortamlarda daha az belirgin olabilir.
Açıklamalar
Eğer file_pattern argümanı fn_get_audit_file_v2 mevcut olmayan bir yol veya dosyaya atıfta bulunursa ya da dosya denetim dosyası değilse, hata MSG_INVALID_AUDIT_FILE mesajı döner.
Denetim , fn_get_audit_file_v2, veya APPLICATION_LOG seçeneklerle oluşturulduğunda SECURITY_LOGfonksiyon EXTERNAL_MONITOR kullanılamaz.
Şu anda Fabric Data Warehouse'da, tek tek dosyalara erişemezsiniz, sadece denetim klasörüne erişebilirsiniz. Bir depo öğesinde SQL Audit için aşağıdaki argümanlar desteklenmez: file_pattern, initial_file_name, audit_record_offset.
Permissions
Azure SQL Database'de gerekli izinler
İzin gerektirir CONTROL DATABASE .
Sunucu yöneticileri, sunucudaki tüm veritabanlarının denetim kayıtlarına erişebilir.
Sunucu dışı yöneticiler yalnızca mevcut veritabanından denetim kayıtlarına erişebilir.
Yukarıdaki kriterleri karşılamayan lekeler atlanır (sorgu çıktı mesajında atlanan blobların listesi gösterilir). Fonksiyon, yalnızca erişime izin verilen bloblardan kayıtlar döndürür.
Fabric SQL veritabanında gerekli izinler
Fabric workspace rolleri kullanarak denetimi yönetmek için kullanıcıların Fabric workspace katkı sağlayıcı rolünde üyelik veya daha yüksek izinlere sahip olması gerekir. DENETIMI SQL izinleriyle yönetmek için:
- Veritabanı denetimini yapılandırmak için kullanıcıların ALTER ANY DATABASE AUDIT iznine sahip olması gerekir.
- T-SQL kullanarak denetim günlüklerini görüntülemek için kullanıcıların VERITABANı GÜVENLİĞİ DENETİmİ GÖRÜNTÜLE iznine sahip olması gerekir.
Daha fazla bilgi için Fabric SQL veritabanında Denetim bölümüne bakınız.
Fabric Data Warehouse'da gerekli izinler
Kullanıcıların Fabric öğesi Audit iznine sahip olması gerekir. Daha fazla bilgi için bkz . İzinler.
Örnekler
A. View SQL audit logs for Azure SQL Database
Bu örnek, belirli bir Azure Blob Depolama konumundan denetim loglarını alır ve kayıtları ile 2023-11-17T08:40:40Z2023-11-17T09:10:40Zarasında filtreler.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://<storage_account>.blob.core.windows.net/sqldbauditlogs/server_name/database_name/SqlDbAuditing_ServerAudit/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
B. View SQL audit logs for Fabric Data Warehouse
Bu örnek, mevcut çalışma alanı ve depo ile hizalanmış OneLake klasöründen denetim günlüklerini alır ve kayıtları ile 2023-11-17T08:40:40Z2023-11-17T09:10:40Zarasında filtreler.
Fabric portalında, workspaceID ve warehouseID:
-
<workspaceID>: Fabric portalında çalışma alanınızı ziyaret edin. Çalışma alanı GUID'sini bölümden/groups/sonraki URL'de veya mevcut bir depoda çalıştırarakSELECT @@SERVERNAMEbulabilirsiniz. URL'nizin/groups/ardından/me/, varsayılan çalışma alanını kullanıyorsunuz ve şu anda Fabric Data Warehouse için SQL Audit varsayılan çalışma alanında desteklenmiyor. -
<warehouseID>: Depo Kumaş portalında ziyaret edin. Depo kimliğini bölümden sonraki/warehouses/URL'de bulun.
SELECT *
FROM sys. fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/{workspaceId}/{warehouseId}/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2023-11-17T08:40:40Z',
'2023-11-17T09:10:40Z')
C. SQL veritabanı için SQL audit loglarını Microsoft Fabric'de görüntüle
Bu örnek, Microsoft Fabric'te OneLake'ten ve arasında 2025-11-17T08:40:40Z2025-11-17T09:10:40Zdenetim günlüklerini alır.
Aşağıdaki betikte Microsoft Fabric çalışma alanı kimliğinizi ve veritabanı kimliğinizi vermeniz gerekir. Her ikisi de Fabric portalının URL'sinde bulunabilir. Örneğin: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. URL'deki ilk benzersiz tanımlayıcı dizisi Fabric workspace ID'dir, ikinci benzersiz tanımlayıcı dizisi ise SQL veritabanı ID'sidir.
-
<fabric_workspace_id>ifadesini Fabric çalışma alanı kimliğiniz ile değiştirin. Url'de bir çalışma alanının kimliğini kolayca bulabilirsiniz. Bu, tarayıcı pencerenizde iki/karakterden sonra/groups/gelen benzersiz dizedir. - Fabric veritabanı kimliğindeki
<fabric sql database id>öğesini SQL veritabanınızla değiştirin. Veritabanı öğesinin kimliğini URL'de kolayca bulabilirsiniz. Bu, tarayıcı pencerenizde iki/karakterden sonra/sqldatabases/gelen benzersiz dizedir.
SELECT *
FROM sys.fn_get_audit_file_v2(
'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
DEFAULT,
DEFAULT,
'2025-11-17T08:40:40Z',
'2025-11-17T09:10:40Z')
Daha Fazla Bilgi
Sistem kataloğu görünümleri:
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL) - Sunucu Denetim Özellikleri Detayları
- sys.database_denetim_özellikleri (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
Transact-SQL:
- SUNUCU DENETİMİ OLUŞTUR (Transact-SQL)
- 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)
- DROP SERVER DENETİM BELİRTİMİ (Transact-SQL)
- VERİ TABANI DENETİM ÖZELLİĞİ OLUŞTUR (Transact-SQL)
- VERITABANI DENETIM SPESIFIKASYONUNU DEĞIŞTIR (Transact-SQL)
- VERİTABANI DENETİM ÖZELLİĞİ'Nİ SİL (Transact-SQL)
- YETKILENDIRME DEĞIŞIKLIĞI (Transact-SQL)
İlgili içerik
- Sunucu Denetimi ve Sunucu Denetim Belirtimi oluşturma
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- SQL Veritabanı Denetimine Başlayın
- SQL Audit Logs in Fabric Data Warehouse