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 mencakupSELECT, 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
dantax_status
diakses dari relasi gaji:employee=> GRANT SELECT(income, tax_status) ON salary TO auditor;