Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:Database Azure
SQLGudang di Microsoft Fabric
Database SQL di Microsoft Fabric
Fungsi sys.fn_get_audit_file_v2 sistem dirancang untuk mengambil data log audit dengan efisiensi yang ditingkatkan dibandingkan dengan pendahulunya, sys.fn_get_audit_file. Fungsi ini memperkenalkan pemfilteran berbasis waktu pada tingkat file dan rekaman, memberikan peningkatan performa yang signifikan, terutama untuk kueri yang menargetkan rentang waktu tertentu.
Mengembalikan informasi dari file audit yang dibuat oleh audit server. Untuk informasi selengkapnya, lihat Audit SQL Server (Mesin Database).
- Untuk informasi tentang menyiapkan audit Azure SQL Database, lihat Mulai menggunakan audit SQL Database.
- Untuk informasi tentang menyiapkan audit Gudang Data Fabric, lihat Log Audit SQL di Gudang Data Fabric.
- Untuk informasi tentang menyiapkan database SQL dalam audit Fabric, lihat Audit SQL dalam database SQL di Fabric.
Sintaks
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 } )
Argumen
file_pattern
Berlaku untuk: Hanya Azure SQL Database
Menentukan direktori atau jalur dan nama file untuk set file audit yang akan dibaca. file_pattern adalah nvarchar(260).
Meneruskan jalur tanpa pola nama file menghasilkan kesalahan.
Argumen ini digunakan untuk menentukan URL blob (termasuk titik akhir penyimpanan dan kontainer). Meskipun tidak mendukung wildcard tanda bintang, Anda dapat menggunakan awalan nama file parsial (blob) (bukan nama blob lengkap) untuk mengumpulkan beberapa file (blob) yang dimulai dengan awalan ini. Contohnya:
<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/- mengumpulkan semua file audit (blob) untuk database tertentu.<Storage_endpoint>/<Container>/<ServerName>/<DatabaseName>/<AuditName>/<CreationDate>/<FileName>.xel- mengumpulkan file audit tertentu (blob).
initial_file_name
Berlaku untuk: Hanya Azure SQL Database
Menentukan jalur dan nama file tertentu dalam set file audit untuk mulai membaca catatan audit. initial_file_name adalah nvarchar(260).
Argumen initial_file_name harus berisi entri yang valid atau harus berisi default nilai atau NULL .
audit_record_offset
Berlaku untuk: Hanya Azure SQL Database
Menentukan lokasi yang diketahui dengan file yang ditentukan untuk initial_file_name. Ketika argumen ini digunakan, fungsi mulai membaca pada rekaman pertama buffer segera setelah offset yang ditentukan.
Argumen audit_record_offset harus berisi entri yang valid atau harus berisi default nilai atau NULL .
audit_record_offset besar.
start_time
Waktu mulai untuk memfilter log. Rekaman sebelum waktu ini dikecualikan.
end_time
Waktu akhir untuk memfilter log. Rekaman setelah waktu ini dikecualikan.
Tabel dikembalikan
Tabel berikut ini menjelaskan konten file audit yang dikembalikan oleh fungsi ini.
| Nama kolom | Tipe | Deskripsi |
|---|---|---|
event_time |
datetime2 | Tanggal dan waktu ketika tindakan yang dapat diaudit diaktifkan. Tidak dapat diubah ke null. |
sequence_number |
int | Melacak urutan rekaman dalam satu catatan audit yang terlalu besar agar pas di buffer tulis untuk audit. Tidak dapat diubah ke null. |
action_id |
varchar(4) | ID tindakan. Tidak dapat diubah ke null. |
succeeded |
bit | Menunjukkan apakah tindakan yang memicu peristiwa berhasil. Tidak dapat diubah ke null. Untuk semua peristiwa selain peristiwa masuk, ini hanya melaporkan apakah pemeriksaan izin berhasil atau gagal, bukan operasi.1 = berhasil0 = gagal |
permission_bitmask |
varbinary(16) | Dalam beberapa tindakan, bitmask ini adalah izin yang diberikan, ditolak, atau dicabut. |
is_column_permission |
bit | Bendera menunjukkan apakah ini adalah izin tingkat kolom. Tidak dapat diubah ke null. Mengembalikan 0 saat permission_bitmask = 0.1 = benar0 = salah |
session_id |
smallint | ID sesi tempat peristiwa terjadi. Tidak dapat diubah ke null. |
server_principal_id |
int | ID konteks masuk tempat tindakan dilakukan. Tidak dapat diubah ke null. |
database_principal_id |
int | ID konteks pengguna database tempat tindakan dilakukan. Tidak dapat diubah ke null. Mengembalikan 0 jika ini tidak berlaku. Misalnya, operasi server. |
target_server_principal_id |
int | Prinsipal server tempat GRANT/DENY/REVOKE operasi dilakukan. Tidak dapat diubah ke null. Mengembalikan 0 jika tidak berlaku. |
target_database_principal_id |
int | Prinsipal database tempat GRANT/DENY/REVOKE operasi dilakukan. Tidak dapat diubah ke null. Mengembalikan 0 jika tidak berlaku. |
object_id |
int | ID entitas tempat audit terjadi, yang mencakup objek berikut: - Objek server -Database - Objek database - Objek skema Tidak dapat diubah ke null. Mengembalikan 0 jika entitas adalah Server itu sendiri atau jika audit tidak dilakukan pada tingkat objek. Misalnya, Autentikasi. |
class_type |
varchar(2) | Jenis entitas yang dapat diaudit tempat audit terjadi. Tidak dapat diubah ke null. |
session_server_principal_name |
nama sysname | Perwakilan server untuk sesi. Dapat diubah ke null. Mengembalikan identitas login asli yang tersambung ke instans Mesin Database jika ada sakelar konteks eksplisit atau implisit. |
server_principal_name |
nama sysname | Login saat ini. Dapat diubah ke null. |
server_principal_sid |
varbinary | SID login saat ini. Dapat diubah ke null. |
database_principal_name |
nama sysname | Pengguna saat ini. Dapat diubah ke null. Mengembalikan NULL jika tidak tersedia. |
target_server_principal_name |
nama sysname | Target masuk tindakan. Dapat diubah ke null. Mengembalikan NULL jika tidak berlaku. |
target_server_principal_sid |
varbinary | SID dari target masuk. Dapat diubah ke null. Mengembalikan NULL jika tidak berlaku. |
target_database_principal_name |
nama sysname | Targetkan pengguna tindakan. Dapat diubah ke null. Mengembalikan NULL jika tidak berlaku. |
server_instance_name |
nama sysname | Nama instans server tempat audit terjadi. Format standar server\instance digunakan. |
database_name |
nama sysname | Konteks database tempat tindakan terjadi. Dapat diubah ke null. Mengembalikan NULL untuk audit yang terjadi di tingkat server. |
schema_name |
nama sysname | Konteks skema di mana tindakan terjadi. Dapat diubah ke null. Mengembalikan NULL audit yang terjadi di luar skema. |
object_name |
nama sysname | Nama entitas tempat audit terjadi, yang mencakup objek berikut: - Objek server -Database - Objek database - Objek skema Dapat diubah ke null. Mengembalikan NULL jika entitas adalah Server itu sendiri atau jika audit tidak dilakukan pada tingkat objek. Misalnya, Autentikasi. |
statement |
nvarchar(4000) | Pernyataan T-SQL jika ada. Dapat diubah ke null. Mengembalikan NULL jika tidak berlaku. |
additional_information |
nvarchar(4000) | Informasi unik yang hanya berlaku untuk satu peristiwa dikembalikan sebagai XML. Beberapa tindakan yang dapat diaudit berisi informasi semacam ini. Satu tingkat tumpukan T-SQL ditampilkan dalam format XML untuk tindakan yang memiliki tumpukan T-SQL yang terkait dengannya. Format XML adalah: <tsql_stack><frame nest_level = '%u' database_name = '%.*s' schema_name = '%.*s' object_name = '%.*s' /></tsql_stack>frame nest_level menunjukkan tingkat berlapis bingkai saat ini. Nama modul diwakili dalam format tiga bagian (database_name, schema_name, dan object_name). Nama modul diurai untuk meloloskan karakter XML yang tidak valid seperti <, >, /, _x. Mereka lolos sebagai _xHHHH_. Singkatan HHHH dari kode UCS-2 heksadesimal empat digit untuk karakter tersebut. Dapat diubah ke null. Mengembalikan NULL ketika tidak ada informasi tambahan yang dilaporkan oleh peristiwa. |
file_name |
varchar(260) | Jalur dan nama file log audit tempat rekaman berasal. Tidak dapat diubah ke null. |
audit_file_offset |
bigint | Offset buffer dalam file yang berisi catatan audit. Tidak dapat diubah ke null. |
user_defined_event_id |
smallint | ID peristiwa yang ditentukan pengguna diteruskan sebagai argumen ke sp_audit_write.
NULL untuk peristiwa sistem (default) dan bukan nol untuk peristiwa yang ditentukan pengguna. Untuk informasi selengkapnya, lihat sp_audit_write (Transact-SQL). |
user_defined_information |
nvarchar(4000) | Digunakan untuk merekam informasi tambahan yang ingin dicatat pengguna dalam log audit dengan menggunakan prosedur tersimpan sp_audit_write . |
audit_schema_version |
int | Selalu 1. |
sequence_group_id |
varbinary | Pengidentifikasi unik.< |
transaction_id |
bigint | Pengidentifikasi unik untuk mengidentifikasi beberapa peristiwa audit dalam satu transaksi. |
client_ip |
nvarchar(128) | IP sumber aplikasi klien. |
application_name |
nvarchar(128) | Nama aplikasi klien yang menjalankan pernyataan yang menyebabkan peristiwa audit. |
duration_milliseconds |
bigint | Durasi eksekusi kueri dalam milidetik. |
response_rows |
bigint | Jumlah baris yang ditampilkan dalam kumpulan hasil.< |
affected_rows |
bigint | Jumlah baris yang dipengaruhi oleh pernyataan yang dijalankan. |
connection_id |
pengidentifikasi unik | ID koneksi di server. |
data_sensitivity_information |
nvarchar(4000) | Jenis informasi dan label sensitivitas yang dikembalikan oleh kueri yang diaudit, berdasarkan kolom yang diklasifikasikan dalam database. Pelajari selengkapnya tentang penemuan dan klasifikasi data Azure SQL Database. |
host_name |
nvarchar(128) | Nama Host komputer klien. |
session_context |
nvarchar(4000) | Pasangan kunci-nilai yang merupakan bagian dari konteks sesi saat ini. |
client_tls_version |
bigint | Versi TLS minimum yang didukung oleh klien. |
client_tls_version_name |
nvarchar(128) | Versi TLS minimum yang didukung oleh klien. |
database_transaction_id |
bigint | ID transaksi transaksi saat ini dalam sesi saat ini. |
ledger_start_sequence_number |
bigint | Nomor urut operasi dalam transaksi yang membuat versi baris. |
external_policy_permissions_checked |
nvarchar(4000) | Informasi yang terkait dengan pemeriksaan izin otorisasi eksternal, saat peristiwa audit dibuat, dan kebijakan otorisasi eksternal Purview dievaluasi. |
obo_middle_tier_app_id |
varchar(120) | ID aplikasi aplikasi tingkat menengah yang terhubung menggunakan akses atas nama (OBO). Dapat diubah ke null. Mengembalikan NULL jika permintaan tidak dibuat menggunakan akses OBO. |
is_local_secondary_replica |
bit |
True jika rekaman audit berasal dari replika sekunder lokal baca-saja, False jika tidak. |
Peningkatan atas sys.fn_get_audit_file
Fungsi ini sys.fn_get_audit_file_v2 menawarkan peningkatan besar atas sys.fn_get_audit_file yang lebih lama dengan memperkenalkan pemfilteran berbasis waktu yang efisien di tingkat file dan rekaman. Pengoptimalan ini sangat bermanfaat untuk kueri yang menargetkan rentang waktu yang lebih kecil dan dapat membantu menjaga performa di lingkungan multi-database.
Pemfilteran tingkat ganda
Pemfilteran tingkat file: Fungsi pertama-tama memfilter file berdasarkan rentang waktu yang ditentukan, mengurangi jumlah file yang perlu dipindai.
Pemfilteran tingkat rekaman: Kemudian menerapkan pemfilteran dalam file yang dipilih untuk mengekstrak hanya rekaman yang relevan.
peningkatan performa
Peningkatan performa terutama tergantung pada waktu rollover file blob dan rentang waktu yang dikueri. Dengan asumsi distribusi rekaman audit yang seragam:
Mengurangi beban: Dengan meminimalkan jumlah file dan rekaman yang akan dipindai, ini mengurangi beban pada sistem dan meningkatkan waktu respons kueri.
Skalabilitas: Membantu mempertahankan performa bahkan saat jumlah database meningkat, meskipun peningkatan bersih mungkin kurang terucap di lingkungan dengan jumlah database yang tinggi.
Keterangan
Jika argumen file_pattern diteruskan untuk fn_get_audit_file_v2 mereferensikan jalur atau file yang tidak ada, atau jika file bukan file audit, MSG_INVALID_AUDIT_FILE pesan kesalahan dikembalikan.
Fungsi tidak fn_get_audit_file_v2 dapat digunakan saat audit dibuat dengan APPLICATION_LOGopsi , SECURITY_LOG, atau EXTERNAL_MONITOR .
Saat ini di Fabric Data Warehouse, Anda tidak dapat mengakses file individual, hanya folder audit. Argumen berikut tidak didukung untuk Audit SQL pada item gudang: file_pattern, initial_file_name, . audit_record_offset
Izin
Izin yang diperlukan di Azure SQL Database
Memerlukan CONTROL DATABASE izin.
Admin server dapat mengakses log audit semua database di server.
Admin non server hanya dapat mengakses log audit dari database saat ini.
Blob yang tidak memenuhi kriteria di atas dilewati (daftar blob yang dilewati ditampilkan dalam pesan output kueri). Fungsi mengembalikan log hanya dari blob yang aksesnya diizinkan.
Izin yang diperlukan dalam database Fabric SQL
Untuk mengelola audit menggunakan peran ruang kerja Fabric, pengguna harus memiliki keanggotaan dalam peran Kontributor ruang kerja Fabric atau izin yang lebih tinggi. Untuk mengelola audit dengan izin SQL:
- Untuk mengonfigurasi audit database, pengguna harus memiliki izin ALTER ANY DATABASE AUDIT.
- Untuk melihat log audit menggunakan T-SQL, pengguna harus memiliki izin LIHAT AUDIT KEAMANAN DATABASE.
Untuk informasi selengkapnya, lihat Mengaudit dalam database Fabric SQL.
Izin yang diperlukan di Fabric Data Warehouse
Pengguna harus memiliki izin item Audit Fabric. Untuk informasi selengkapnya, lihat Izin.
Contoh
A. Melihat log audit SQL untuk Azure SQL Database
Contoh ini mengambil log audit dari lokasi Azure Blob Storage tertentu, memfilter rekaman antara 2023-11-17T08:40:40Z dan 2023-11-17T09:10:40Z.
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. Melihat log audit SQL untuk Fabric Data Warehouse
Contoh ini mengambil log audit dari folder OneLake yang selaras dengan ruang kerja dan gudang saat ini, memfilter rekaman antara 2023-11-17T08:40:40Z dan 2023-11-17T09:10:40Z.
Di portal Fabric, ambil dan workspaceIDwarehouseID:
-
<workspaceID>: Kunjungi ruang kerja Anda di portal Fabric. Temukan GUID ruang kerja di URL setelah/groups/bagian, atau dengan menjalankanSELECT @@SERVERNAMEdi gudang yang ada. Jika URL Anda/groups/diikuti oleh/me/, Anda menggunakan ruang kerja default, dan saat ini SQL Audit for Fabric Data Warehouse tidak didukung di ruang kerja default. -
<warehouseID>: Kunjungi gudang Anda di portal Fabric. Temukan ID gudang di URL setelah/warehouses/bagian.
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. Melihat log audit SQL untuk database SQL di Microsoft Fabric
Contoh ini mengambil log audit dari OneLake di Microsoft Fabric, antara 2025-11-17T08:40:40Z dan 2025-11-17T09:10:40Z.
Dalam skrip berikut, Anda perlu memberikan ID ruang kerja Microsoft Fabric dan ID database Anda. Keduanya dapat ditemukan di URL dari portal Fabric. Misalnya: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>. String pengidentifikasi unik pertama dalam URL adalah ID ruang kerja Fabric, dan string pengidentifikasi unik kedua adalah ID database SQL.
- Ganti
<fabric_workspace_id>dengan ID ruang kerja Fabric Anda. Anda dapat menemukan ID ruang kerja dengan mudah di URL, yang merupakan rangkaian unik antara dua karakter/setelah/groups/di jendela penelusur Anda. - Ganti
<fabric sql database id>dengan database SQL Anda di ID database Fabric. Anda dapat menemukan ID item database dengan mudah di URL, ini adalah string unik di dalam dua/karakter setelah/sqldatabases/di jendela browser Anda.
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')
Informasi selengkapnya
Tampilan katalog sistem:
- sys.server_audit_specifications (T-SQL)
- sys.server_audit_specification_details (T-SQL)
- sys.database_audit_specifications (T-SQL)
- sys.database_audit_specification_details (T-SQL)
Transact-SQL:
- BUAT AUDIT SERVER (Transact-SQL)
- MENGUBAH AUDIT SERVER (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- MEMBUAT SPESIFIKASI AUDIT SERVER (Transact-SQL)
- UBAH SPESIFIKASI AUDIT SERVER (Transact-SQL)
- SPESIFIKASI AUDIT SERVER DROP (Transact-SQL)
- MEMBUAT SPESIFIKASI AUDIT DATABASE (Transact-SQL)
- UBAH SPESIFIKASI AUDIT DATABASE (Transact-SQL)
- HILANGKAN SPESIFIKASI AUDIT DATABASE (T-SQL)
- ALTER AUTHORIZATION (Transact-SQL)