Mengonfigurasi perilaku logging

Untuk mengonfigurasi perilaku logging pgAudit, Anda menetapkan flag pgaudit.log atau flag pgaudit.role:

  • Tetapkan pgaudit.log untuk mengaktifkan dan mengonfigurasi logging sesi. Anda dapat menetapkan tanda ini pada instance, database, atau peran untuk menentukan cakupan operasi yang dicatat dalam log pgAudit. Anda menetapkan tanda ke nilai yang menentukan jenis operasi yang dicatat dalam log pgAudit.

  • Tetapkan pgaudit.role untuk mengaktifkan dan mengonfigurasi logging objek, yang mencatat pernyataan yang memengaruhi hubungan tertentu. Anda menetapkan tanda ini ke nama peran, lalu memberikan akses pernyataan ke objek tertentu yang ingin Anda catat ke dalam log. Akses pernyataan mencakup SELECT, INSERT, UPDATE, and DELETE. pgAudit mencatat semua operasi yang cocok dengan kombinasi akses dan objek yang dijalankan oleh pengguna mana pun.

Bagian berikut memberikan contoh yang menunjukkan opsi untuk menetapkan perilaku logging pgAudit.

Untuk kemampuan tambahan ekstensi, tinjau dokumentasi pgAudit.

Mengonfigurasi logging audit sesi untuk semua database dalam instance

Untuk mengonfigurasi audit untuk semua database dalam satu instance, tetapkan flag pgaudit.log di tingkat instance.

Contoh:

  • Untuk mengaktifkan audit untuk semua operasi di semua database dalam instance:
    gcloud alloydb instances update my-instance \
        --database-flags pgaudit.log=all[,flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    
  • Untuk mengaktifkan audit hanya untuk operasi baca dan tulis pada semua database dalam instance:
    gcloud alloydb instances update my-instance \
        --database-flags=^:^pgaudit.log=read,write[:flag2=value2...] \
        --region=us-central1 \
        --cluster=my-cluster \
        --project=my-project
    

Perhatikan penggunaan sintaksis pemisah alternatif, yang memungkinkan Anda menggunakan karakter koma dalam nilai flag.

Untuk mengetahui informasi tentang cara mengonfigurasi flag database, lihat Mengonfigurasi flag database.

Mengonfigurasi logging audit sesi untuk database tertentu

Anda dapat mengonfigurasi audit untuk database tertentu dengan menetapkan tanda pgaudit.log di tingkat database.

Misalnya, untuk mengaktifkan pengauditan baca/tulis untuk database, keuangan:

finance=> ALTER DATABASE finance SET pgaudit.log = 'read,write';

Mengonfigurasi logging audit sesi untuk satu pengguna

Anda dapat mengaktifkan pengauditan untuk pengguna tertentu dengan menetapkan pgaudit.log pada tingkat per peran.

Misalnya, untuk menetapkan audit untuk semua operasi database yang dijalankan oleh pengguna, Alice:

finance=> ALTER ROLE alice SET pgaudit.log = 'all';

Mengonfigurasi logging audit objek

Mengaudit suatu relasi lebih sempit daripada mengaudit basis data tertentu. Saat Anda mengaudit sebuah relasi, sistem akan menetapkan peran auditor unik ke parameter pgaudit.role. Operasi ini mencatat objek atau relasi apa pun yang diberikan ke peran ini.

Contoh:

  • Untuk mengonfigurasi audit untuk semua kueri SELECT pada relasi gaji dalam database karyawan:
    employee=> CREATE ROLE auditor WITH NOLOGIN;
    employee=> ALTER DATABASE employee SET pgaudit.role = 'auditor';
    employee=> GRANT SELECT ON salary TO auditor;
    

Anda juga dapat mengaudit subset kolom untuk relasi tertentu.

Contoh:

  • Untuk mengonfigurasi logging audit yang hanya terjadi saat kolom income dan tax_status diakses dari relasi gaji:
    employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;