Referensi tabel sistem log audit
Penting
Fitur ini ada di Pratinjau Publik.
Artikel ini menguraikan skema tabel log audit dan memberi Anda contoh kueri yang dapat Anda gunakan dengan tabel sistem log audit untuk menjawab pertanyaan penggunaan akun umum. Untuk informasi tentang peristiwa log audit, lihat Referensi log diagnostik.
Tabel sistem log audit terletak di system.access.audit
.
Pertimbangan log audit
- Sebagian besar log audit hanya tersedia di wilayah ruang kerja.
- Hanya log tingkat akun Unity Catalog yang tersedia di semua wilayah.
- Log audit tingkat akun mencatat
workspace_id
sebagai0
.
Mengaudit skema tabel sistem log
Tabel sistem log audit menggunakan skema berikut:
Nama kolom | Jenis data | Deskripsi | Contoh |
---|---|---|---|
version |
string | Versi skema log audit | 2.0 |
event_time |
rentang waktu | Tanda Waktu | 2023-01-01T01:01:01.123 |
event_date |
date | Tanggal kalender tindakan berlangsung | 2023-01-01 |
workspace_id |
long | ID ruang kerja | 1234567890123456 |
source_ip_address |
string | Alamat IP tempat permintaan berasal | 10.30.0.242 |
user_agent |
string | Asal permintaan | Apache-HttpClient/4.5.13 (Java/1.8.0_345) |
session_id |
string | ID sesi tempat permintaan berasal | 123456789 |
user_identity |
string | Identitas pengguna yang memulai permintaan | {"email": "user@domain.com", "subjectName": null} |
service_name |
string | Permintaan memulai nama layanan | unityCatalog |
action_name |
string | Kategori peristiwa yang diambil dalam log audit | getTable |
request_id |
string | ID permintaan | ServiceMain-4529754264 |
request_params |
peta | Peta nilai kunci yang berisi semua parameter permintaan. Bergantung pada jenis permintaan | [["full_name_arg", "user.chat.messages"], ["workspace_id", "123456789"], ["metastore_id", "123456789"]] |
response |
struktur | Struktur nilai pengembalian respons | {"statusCode": 200, "errorMessage": null, "result": null} |
audit_level |
string | Peristiwa tingkat ruang kerja atau akun | ACCOUNT_LEVEL |
account_id |
string | ID akun | 23e22ba4-87b9-4cc2-9770-d10b894bxx |
event_id |
string | ID peristiwa | 34ac703c772f3549dcc8671f654950f0 |
Contoh kueri
Bagian berikut menyertakan kueri sampel yang bisa Anda gunakan untuk mendapatkan wawasan tentang tabel sistem log audit Anda. Agar kueri ini berfungsi, ganti nilai dalam tanda kurung {{}}
kurawal dengan parameter Anda sendiri.
Catatan
Beberapa contoh ini termasuk peristiwa log audit verbose, yang tidak diaktifkan secara default. Untuk mengaktifkan log audit verbose di ruang kerja, lihat Mengaktifkan log audit verbose.
Artikel ini menyertakan contoh kueri berikut:
- Siapa dapat mengakses tabel ini?
- Pengguna mana yang mengakses tabel dalam hari terakhir?
- Tabel mana yang diakses pengguna?
- Menampilkan semua perubahan izin
- Menampilkan perintah buku catatan yang terakhir dijalankan
Siapa dapat mengakses tabel ini?
Kueri ini menggunakan information_schema
untuk mengetahui pengguna mana yang memiliki izin pada tabel.
SELECT DISTINCT(grantee) AS `ACCESSIBLE BY`
FROM system.information_schema.table_privileges
WHERE table_schema = '{{schema_name}}' AND table_name = '{{table_name}}'
UNION
SELECT table_owner
FROM system.information_schema.tables
WHERE table_schema = '{{schema_name}}' AND table_name = '{{table}}'
UNION
SELECT DISTINCT(grantee)
FROM system.information_schema.schema_privileges
WHERE schema_name = '{{schema_name}}'
Pengguna mana yang mengakses tabel dalam hari terakhir?
Catatan
Nama lengkap tidak diambil dalam log untuk operasi DML. Sertakan skema dan nama sederhana untuk mengambil semua.
SELECT
user_identity.email as `User`,
IFNULL(request_params.full_name_arg,
request_params.name)
AS `Table`,
action_name AS `Type of Access`,
event_time AS `Time of Access`
FROM system.access.audit
WHERE (request_params.full_name_arg = '{{catalog.schema.table}}'
OR (request_params.name = '{{table_name}}'
AND request_params.schema_name = '{{schema_name}}'))
AND action_name
IN ('createTable','getTable','deleteTable')
AND event_date > now() - interval '1 day'
ORDER BY event_date DESC
Tabel mana yang diakses pengguna?
Catatan
Untuk memfilter menurut rentang tanggal, batalkan komentar klausa tanggal di bagian bawah kueri.
SELECT
action_name as `EVENT`,
event_time as `WHEN`,
IFNULL(request_params.full_name_arg, 'Non-specific') AS `TABLE ACCESSED`,
IFNULL(request_params.commandText,'GET table') AS `QUERY TEXT`
FROM system.access.audit
WHERE user_identity.email = '{{User}}'
AND action_name IN ('createTable',
'commandSubmit','getTable','deleteTable')
-- AND datediff(now(), event_date) < 1
-- ORDER BY event_date DESC
Contoh hasil:
EVENT |
WHEN |
TABLE ACCESSED |
QUERY TEXT |
---|---|---|---|
getTable |
2023-05-31 |
system.access.audit |
GET table |
getTable |
2023-05-31 |
system.access.table_lineage |
GET table |
commandSubmit |
2023-05-31 |
Non-specific |
show functions; |
commandSubmit |
2023-05-31 |
Non-specific |
SELECT request_params FROM system.access.audit WHERE service_name = "notebook" AND action_name = "moveFolder" LIMIT 5 |
Lihat perubahan izin untuk semua objek yang dapat diamankan
Kueri ini akan mengembalikan peristiwa untuk setiap perubahan izin yang telah terjadi di akun Anda. Kueri akan mengembalikan pengguna yang membuat perubahan, jenis dan nama objek yang dapat diamankan, dan perubahan spesifik yang dibuat.
SELECT event_time, user_identity.email, request_params.securable_type, request_params.securable_full_name, request_params.changes
FROM system.access.audit
WHERE service_name = 'unityCatalog'
AND action_name = 'updatePermissions'
ORDER BY 1 DESC
Menampilkan perintah buku catatan yang terakhir dijalankan
Kueri ini mengembalikan perintah notebook yang terakhir dijalankan bersama dengan pengguna yang menjalankan perintah.
Catatan
Tindakan runCommand
ini hanya dipancarkan ketika log audit verbose diaktifkan. Untuk mengaktifkan log audit verbose, lihat Mengaktifkan log audit verbose.
SELECT event_time, user_identity.email, request_params.commandText
FROM system.access.audit
WHERE action_name = `runCommand`
ORDER BY event_time DESC
LIMIT 100
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk