Bagikan melalui


Log audit di Azure Database for MariaDB

Penting

Azure Database for MariaDB berada di jalur penghentian. Kami sangat menyarankan Anda bermigrasi ke Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke Azure Database for MySQL, lihat Apa yang terjadi pada Azure Database for MariaDB?.

Di Azure Database for MariaDB, log audit tersedia untuk pengguna. Log audit dapat digunakan untuk melacak aktivitas tingkat database dan biasanya digunakan untuk kepatuhan.

Mengonfigurasi log audit

Penting

Sebaiknya cukup catat jenis peristiwa dan pengguna yang diperlukan untuk tujuan audit Anda guna memastikan performa server tidak terlalu terpengaruh.

Secara default log audit dinon-fungsikan. Untuk mengaktifkannya, set audit_log_enabled ke AKTIF.

Parameter lain yang dapat Anda sesuaikan meliputi:

  • audit_log_events: mengontrol peristiwa yang akan dicatat. Lihat tabel di bawah ini untuk peristiwa audit tertentu.
  • audit_log_include_users: Pengguna MariaDB akan disertakan untuk logging. Nilai default untuk parameter ini kosong, yang mana akan mencakup semua pengguna untuk masuk. Hal ini memiliki prioritas lebih tinggi daripada audit_log_exclude_users. Panjang maksimum parameter adalah 512 karakter.
  • audit_log_exclude_users: Pengguna MariaDB akan dikecualikan dari logging. Memperbolehkan paling banyak empat pengguna. Panjang maksimum parameter adalah 256 karakter.

Catatan

audit_log_include_users memiliki prioritas lebih tinggi daripada audit_log_exclude_users. Misalnya, jika audit_log_include_users = demouser dan audit_log_exclude_users = demouser, pengguna akan disertakan dalam log audit karena audit_log_include_users memiliki prioritas lebih tinggi.

Kejadian Keterangan
CONNECTION - inisiasi Koneksi ion (berhasil atau tidak berhasil)
- Autentikasi ulang pengguna dengan pengguna/kata sandi yang berbeda selama sesi
- Penghentian koneksi
DML_SELECT Kueri PILIH
DML_NONSELECT Kueri SISIPKAN/HAPUS/PERBARUI
DML DML = DML_SELECT + DML_NONSELECT
DDL Kueri seperti "HILANGKAN DATABASE"
DCL Kueri seperti "BERIKAN IZIN"
ADMIN Kueri seperti "TAMPILKAN STATUS"
GENERAL Semua dalam DML_SELECT, DML_NONSELECT, DML, DDL, DCL, dan ADMIN

Mengakses log audit

Log audit terintegrasi dengan Log Diagnostik Azure Monitor. Setelah mengaktifkan log audit di server MariaDB, Anda dapat memancarkannya ke log Azure Monitor, Pusat Aktivitas, atau Penyimpanan Azure. Untuk mempelajari selengkapnya tentang cara mengaktifkan log diagnostik di portal Azure, lihat artikel portal log audit.

Skema Log Diagnostik

Bagian berikut menjelaskan output apa yang dihasilkan oleh log audit MariaDB berdasarkan jenis peristiwa. Tergantung pada metode output, bidang yang dimasukkan dan urutan munculnya dapat bervariasi.

Connection

Properti Keterangan
TenantId ID penyewa Anda
SourceSystem Azure
TimeGenerated [UTC] Tanda waktu ketika log direkam di UTC
Type Jenis log. Selalu AzureDiagnostics
SubscriptionId GUID untuk langganan milik server
ResourceGroup Nama grup sumber daya milik server
ResourceProvider Nama penyedia sumber daya. Selalu MICROSOFT.DBFORMARIADB
ResourceType Servers
ResourceId URI Sumber Daya
Resource Nama server
Category MySqlAuditLogs
OperationName LogEvent
event_class_s connection_log
event_subclass_s CONNECT, DISCONNECT
connection_id_d ID koneksi unik yang dihasilkan oleh MariaDB
host_s Kosong
ip_s Alamat IP klien yang terhubung ke MariaDB
user_s Nama pengguna yang menjalankan kueri
db_s Nama database yang tersambung ke
\_ResourceId URI Sumber Daya

Umum

Skema di bawah ini berlaku untuk jenis peristiwa GENERAL, DML_SELECT, DML_NONSELECT, DML, DDL, DCL, dan ADMIN.

Catatan

Untuk sql_text, log akan terpotong jika melebihi 2.048 karakter.

Properti Keterangan
TenantId ID penyewa Anda
SourceSystem Azure
TimeGenerated [UTC] Tanda waktu ketika log direkam di UTC
Type Jenis log. Selalu AzureDiagnostics
SubscriptionId GUID untuk langganan milik server
ResourceGroup Nama grup sumber daya milik server
ResourceProvider Nama penyedia sumber daya. Selalu MICROSOFT.DBFORMARIADB
ResourceType Servers
ResourceId URI Sumber Daya
Resource Nama server
Category MySqlAuditLogs
OperationName LogEvent
LogicalServerName_s Nama server
event_class_s general_log
event_subclass_s LOG, , ERRORRESULT
event_time Kueri memulai detik dalam cap waktu UNIX
error_code_d Kode galat jika kueri gagal. 0 berarti tidak ada kesalahan
thread_id_d ID alur yang menjalankan kueri
host_s Kosong
ip_s Alamat IP klien yang terhubung ke MariaDB
user_s Nama pengguna yang menjalankan kueri
sql_text_s Teks kueri lengkap
\_ResourceId URI Sumber Daya

Menganalisis log di Azure Monitor Logs

Setelah log audit Anda disalurkan ke Azure Monitor Logs melalui Log Diagnostik, Anda dapat melakukan analisis lebih lanjut tentang peristiwa yang diaudit. Di bawah ini adalah beberapa contoh kueri untuk membantu Anda memulai. Pastikan untuk memperbarui di bawah ini dengan nama server Anda.

  • Cantumkan peristiwa UMUM di server tertentu

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs' and event_class_s == "general_log"
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last 
    
  • Daftar peristiwa KONEKSI pada server tertentu

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs' and event_class_s == "connection_log"
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last
    
  • Meringkas peristiwa yang diaudit pada server tertentu

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | summarize count() by event_class_s, event_subclass_s, user_s, ip_s
    
  • Membuat grafik distribusi jenis peristiwa audit di server tertentu

    AzureDiagnostics
    | where LogicalServerName_s == '<your server name>'
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m)
    | render timechart 
    
  • Daftar peristiwa yang diaudit di semua server MariaDB dengan Log Diagnostik diaktifkan untuk log audit

    AzureDiagnostics
    | where Category == 'MySqlAuditLogs'
    | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s 
    | order by TimeGenerated asc nulls last
    

Langkah berikutnya