Cara menggunakan plugin log audit mysql

Plugin Log Audit Percona menyediakan pemantauan dan pencatatan koneksi dan aktivitas kueri yang dilakukan pada server tertentu. Informasi tentang aktivitas akan disimpan dalam file log XML di mana setiap peristiwa akan memiliki bidang

+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)
7, bidang
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)
8 uniknya sendiri, dan bidang
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)
9

Pencatatan audit mendokumentasikan penggunaan basis data. Anda dapat menggunakan log untuk pemecahan masalah

Instalasi

Plugin Log Audit diinstal dengan Percona Server untuk MySQL, tetapi tidak diaktifkan secara default. Anda dapat memverifikasi apakah plugin diaktifkan dengan menjalankan perintah berikut

mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%';

Outputnya harus serupa dengan yang berikut;

Empty set (0.00 sec)
_

mysql> SHOW variables LIKE 'audit%';

Outputnya harus serupa dengan yang berikut;

Empty set (0.01 sec)
_

mysql> SHOW variables LIKE 'plugin%';

Outputnya harus serupa dengan yang berikut;

+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| plugin_dir    | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
1 row in set (0.00 sec)

Catatan

Lokasi direktori plugin MySQL bergantung pada sistem operasi dan mungkin berbeda

Perintah berikut mengaktifkan plugin

mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
_

Jalankan perintah berikut untuk memverifikasi apakah plugin telah diinstal dengan benar

mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G

Outputnya harus serupa dengan yang berikut;

*************************** 1. row ***************************
          PLUGIN_NAME: audit_log
        PLUGIN_VERSION: 0.2
        PLUGIN_STATUS: ACTIVE
          PLUGIN_TYPE: AUDIT
  PLUGIN_TYPE_VERSION: 4.1
        PLUGIN_LIBRARY: audit_log.so
PLUGIN_LIBRARY_VERSION: 1.7
        PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
    PLUGIN_DESCRIPTION: Audit log
        PLUGIN_LICENSE: GPL
          LOAD_OPTION: ON
1 row in set (0.00 sec)

Anda dapat meninjau variabel log audit dengan perintah berikut

mysql> SHOW variables LIKE 'audit%';

Outputnya harus serupa dengan yang berikut;

Empty set (0.00 sec)
_0

Plugin Log Audit menghasilkan log peristiwa berikut

  • Audit - Acara audit menunjukkan bahwa pencatatan audit dimulai atau selesai.
    +---------------+------------------------+
    | Variable_name | Value                  |
    +---------------+------------------------+
    | plugin_dir    | /usr/lib/mysql/plugin/ |
    +---------------+------------------------+
    1 row in set (0.00 sec)
    
    7 field akan menjadi
    mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    1 saat logging dimulai dan
    mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    2 saat logging selesai. Catatan audit juga menyertakan versi server dan argumen baris perintah

Contoh acara Audit

Empty set (0.00 sec)
_1

  • Sambungkan/Putuskan - Sambungkan rekaman acara akan memiliki bidang
    +---------------+------------------------+
    | Variable_name | Value                  |
    +---------------+------------------------+
    | plugin_dir    | /usr/lib/mysql/plugin/ |
    +---------------+------------------------+
    1 row in set (0.00 sec)
    
    7
    mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    4 saat pengguna masuk atau gagal masuk, atau
    mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    5 saat koneksi ditutup

Bidang tambahan untuk acara ini adalah sebagai berikut

  • mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    _6

  • mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    _7

  • mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    _8

  • mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    
    _9

  • mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    _0

  • mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    _1

  • mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    _2

  • mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    _3

Nilai untuk

mysql> INSTALL PLUGIN audit_log SONAME 'audit_log.so';
7 adalah
mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
5 untuk login yang berhasil dan bukan nol untuk login yang gagal

Contoh acara Disconnect

Empty set (0.00 sec)
_2

  • Kueri - Bidang tambahan untuk acara ini adalah.
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    6 (values come from the
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    7 array in the
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    8select
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9alter_table
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9create_table
    *************************** 1. row ***************************
              PLUGIN_NAME: audit_log
            PLUGIN_VERSION: 0.2
            PLUGIN_STATUS: ACTIVE
              PLUGIN_TYPE: AUDIT
      PLUGIN_TYPE_VERSION: 4.1
            PLUGIN_LIBRARY: audit_log.so
    PLUGIN_LIBRARY_VERSION: 1.7
            PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
        PLUGIN_DESCRIPTION: Audit log
            PLUGIN_LICENSE: GPL
              LOAD_OPTION: ON
    1 row in set (0.00 sec)
    
    1CONNECTION_ID
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9STATUS
    *************************** 1. row ***************************
              PLUGIN_NAME: audit_log
            PLUGIN_VERSION: 0.2
            PLUGIN_STATUS: ACTIVE
              PLUGIN_TYPE: AUDIT
      PLUGIN_TYPE_VERSION: 4.1
            PLUGIN_LIBRARY: audit_log.so
    PLUGIN_LIBRARY_VERSION: 1.7
            PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
        PLUGIN_DESCRIPTION: Audit log
            PLUGIN_LICENSE: GPL
              LOAD_OPTION: ON
    1 row in set (0.00 sec)
    
    3SQLTEXT
    *************************** 1. row ***************************
              PLUGIN_NAME: audit_log
            PLUGIN_VERSION: 0.2
            PLUGIN_STATUS: ACTIVE
              PLUGIN_TYPE: AUDIT
      PLUGIN_TYPE_VERSION: 4.1
            PLUGIN_LIBRARY: audit_log.so
    PLUGIN_LIBRARY_VERSION: 1.7
            PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
        PLUGIN_DESCRIPTION: Audit log
            PLUGIN_LICENSE: GPL
              LOAD_OPTION: ON
    1 row in set (0.00 sec)
    
    4USER
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9HOST
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9OS_USER
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9IP
    *************************** 1. row ***************************
              PLUGIN_NAME: audit_log
            PLUGIN_VERSION: 0.2
            PLUGIN_STATUS: ACTIVE
              PLUGIN_TYPE: AUDIT
      PLUGIN_TYPE_VERSION: 4.1
            PLUGIN_LIBRARY: audit_log.so
    PLUGIN_LIBRARY_VERSION: 1.7
            PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
        PLUGIN_DESCRIPTION: Audit log
            PLUGIN_LICENSE: GPL
              LOAD_OPTION: ON
    1 row in set (0.00 sec)
    
    8NAME
    *************************** 1. row ***************************
              PLUGIN_NAME: audit_log
            PLUGIN_VERSION: 0.2
            PLUGIN_STATUS: ACTIVE
              PLUGIN_TYPE: AUDIT
      PLUGIN_TYPE_VERSION: 4.1
            PLUGIN_LIBRARY: audit_log.so
    PLUGIN_LIBRARY_VERSION: 1.7
            PLUGIN_AUTHOR: Percona LLC and/or its affiliates.
        PLUGIN_DESCRIPTION: Audit log
            PLUGIN_LICENSE: GPL
              LOAD_OPTION: ON
    1 row in set (0.00 sec)
    
    9Query
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9Prepare
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9Execute
    mysql> SELECT * FROM information_schema.PLUGINS WHERE PLUGIN_NAME LIKE '%audit%'\G
    
    9Change user`, etc

Catatan

mysql> SHOW variables LIKE 'audit%';
_3 mengisi bidang kelas perintah log audit, misalnya, kueri
mysql> SHOW variables LIKE 'audit%';
4

Entri

mysql> SHOW variables LIKE 'audit%';
_5 mengisi bidang kelas perintah log audit sebagai teks huruf kecil, misalnya, kueri
mysql> SHOW variables LIKE 'audit%';
6. Jika Anda menjalankan perintah 'Ping', maka kolom command_class adalah 'ping', dan untuk 'Init DB', kolom command_class adalah 'init db'

Contoh acara Query

Empty set (0.00 sec)
_3

Format Log

Plugin log audit mendukung format log berikut.

mysql> SHOW variables LIKE 'audit%';
7,
mysql> SHOW variables LIKE 'audit%';
8,
mysql> SHOW variables LIKE 'audit%';
9, dan
Empty set (0.00 sec)
00. Format
Empty set (0.00 sec)
01` dan format``NEW
Empty set (0.00 sec)
02OLD
Empty set (0.00 sec)
03NEW` menentukan setiap catatan log dengan tag XML. Informasi yang dicatat sama untuk keempat format. Variabel audit_log_format mengontrol pilihan format log

Contoh format

mysql> SHOW variables LIKE 'audit%';
_7

Empty set (0.00 sec)
_4

Contoh format

mysql> SHOW variables LIKE 'audit%';
_8

Empty set (0.00 sec)
_5

Contoh format

mysql> SHOW variables LIKE 'audit%';
_9

Empty set (0.00 sec)
_6

Contoh format

Empty set (0.00 sec)
00

Empty set (0.00 sec)
_7

Streaming log audit ke syslog

Untuk mengalirkan log audit ke syslog, Anda harus menyetel variabel audit_log_handler ke

Empty set (0.00 sec)
08. Untuk mengontrol penangan file syslog, variabel berikut dapat digunakan. audit_log_syslog_ident, audit_log_syslog_facility, dan audit_log_syslog_priority Variabel-variabel ini memiliki arti yang sama dengan parameter yang dijelaskan dalam manual syslog(3)

Catatan

Tindakan untuk variabel. audit_log_strategy, audit_log_buffer_size, audit_log_rotate_on_size, audit_log_rotations ditangkap hanya dengan

Empty set (0.00 sec)
09 handler

Memfilter menurut pengguna

Di Percona Server untuk MySQL 5. 7. 14-7 Percona Server for MySQL Audit Log Plugin sekarang mendukung pemfilteran berdasarkan pengguna, sql_command, dan database