sys.fn_get_audit_file (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
Mengembalikan informasi dari file audit yang dibuat oleh audit server di SQL Server. Untuk informasi selengkapnya, lihat Audit SQL Server (Mesin Database).
Catatan
Untuk Azure SQL Database, pertimbangkan untuk menggunakan sys.fn_get_audit_file_v2 sebagai gantinya. sys.fn_get_audit_file_v2
memperkenalkan pemfilteran berbasis waktu pada tingkat file dan rekaman, memberikan peningkatan performa yang signifikan, terutama untuk kueri yang menargetkan rentang waktu tertentu.
Sintaks
fn_get_audit_file ( file_pattern ,
{ default | initial_file_name | NULL } ,
{ default | audit_record_offset | NULL } )
Argumen
file_pattern
Menentukan direktori atau jalur dan nama file untuk set file audit yang akan dibaca. Jenisnya adalah nvarchar(260).
Meneruskan jalur tanpa pola nama file menghasilkan kesalahan.
Argumen ini harus menyertakan jalur (huruf kandar atau berbagi jaringan) dan nama file yang dapat menyertakan kartubebas. Tanda bintang tunggal (*) dapat digunakan untuk mengumpulkan beberapa file dari kumpulan file audit. Contohnya:
\<path>\*
- Kumpulkan semua file audit di lokasi yang ditentukan.<path>\LoginsAudit_{GUID}*
- Kumpulkan semua file audit yang memiliki nama dan pasangan GUID yang ditentukan.<path>\LoginsAudit_{GUID}_00_29384.sqlaudit
- Kumpulkan file audit tertentu.
initial_file_name
Menentukan jalur dan nama file tertentu dalam set file audit untuk mulai membaca catatan audit. Jenisnya adalah nvarchar(260).
Argumen initial_file_name harus berisi entri yang valid atau harus berisi default
nilai atau NULL
.
audit_record_offset
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
. Jenisnya besar.
Tabel dikembalikan
Tabel berikut ini menjelaskan konten file audit yang dapat 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 = false |
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. Berlaku untuk: SQL Server saja |
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).Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru, Azure SQL Database, dan SQL Managed Instance |
user_defined_information |
nvarchar(4000) | Digunakan untuk merekam informasi tambahan yang ingin dicatat pengguna dalam log audit dengan menggunakan prosedur tersimpan sp_audit_write .Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru, Azure SQL Database, dan SQL Managed Instance |
audit_schema_version |
int | Selalu 1 . |
sequence_group_id |
varbinary | Pengidentifikasi unik. Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru |
transaction_id |
bigint | Pengidentifikasi unik untuk mengidentifikasi beberapa peristiwa audit dalam satu transaksi. Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru |
client_ip |
nvarchar(128) | IP sumber aplikasi klien. Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database |
application_name |
nvarchar(128) | Nama aplikasi klien yang menjalankan pernyataan yang menyebabkan peristiwa audit. Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database |
duration_milliseconds |
bigint | Durasi eksekusi kueri dalam milidetik. Berlaku untuk: Azure SQL Database dan SQL Managed Instance |
response_rows |
bigint | Jumlah baris yang dikembalikan dalam tataan hasil. Berlaku untuk: Azure SQL Database dan SQL Managed Instance |
affected_rows |
bigint | Jumlah baris yang dipengaruhi oleh pernyataan yang dijalankan. Berlaku untuk: Hanya Azure SQL Database |
connection_id |
pengidentifikasi unik | ID koneksi di server. Berlaku untuk: Azure SQL Database dan SQL Managed Instance |
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. Berlaku untuk: Hanya 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. Berlaku untuk: Hanya Azure SQL Database |
external_policy_permissions_checked |
nvarchar(4000) | Informasi yang terkait dengan pemeriksaan izin otorisasi eksternal, saat peristiwa audit dibuat, dan kebijakan otorisasi eksternal Purview dievaluasi. Berlaku untuk: Hanya Azure SQL Database |
obo_middle_tier_app_id |
varchar(120) | ID aplikasi aplikasi tingkat menengah yang terhubung ke Azure SQL Database menggunakan akses atas nama (OBO). Dapat diubah ke null. Mengembalikan NULL jika permintaan tidak dibuat menggunakan akses OBO.Berlaku untuk: Hanya Azure SQL Database |
is_local_secondary_replica |
bit | True jika rekaman audit berasal dari replika sekunder lokal baca-saja, False jika tidak.Berlaku untuk: Hanya Azure SQL Database |
Keterangan
Jika argumen file_pattern diteruskan untuk
fn_get_audit_file
mereferensikan jalur atau file yang tidak ada, atau jika file bukan file audit,MSG_INVALID_AUDIT_FILE
pesan kesalahan dikembalikan.fn_get_audit_file
tidak dapat digunakan saat audit dibuat denganAPPLICATION_LOG
opsi , ,SECURITY_LOG
atauEXTERNAL_MONITOR
.
Izin
Memerlukan CONTROL SERVER
izin.
Contoh
Contoh ini membaca dari file yang bernama \\serverName\Audit\HIPAA_AUDIT.sqlaudit
.
SELECT *
FROM sys.fn_get_audit_file(
'\\serverName\Audit\HIPAA_AUDIT.sqlaudit',
DEFAULT,
DEFAULT
);
GO
Untuk contoh lengkap tentang cara membuat audit, lihat Audit SQL Server (Mesin Database).
Batasan
Memilih baris dari sys.fn_get_audit_file
dalam Buat Tabel Sebagai Pilih (CTAS) atau INSERT INTO
merupakan batasan saat berjalan di Azure Synapse Analytics. Meskipun kueri berhasil diselesaikan dan tidak ada pesan kesalahan yang muncul, tidak ada baris yang ada dalam tabel yang dibuat menggunakan CTAS atau INSERT INTO
.
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:
- CREATE SERVER AUDIT (Transact-SQL)
- ALTER SERVER AUDIT (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)