Untuk mengontrol operasi SQL dan objek database mana yang dicatat dalam log audit, Anda dapat mengonfigurasi logging sesi dan objek pgAudit di AlloyDB untuk PostgreSQL dengan menetapkan flag pgaudit.log atau flag pgaudit.role:
Tetapkan
pgaudit.loguntuk mengaktifkan dan mengonfigurasi logging sesi. Anda dapat menetapkan flag ini pada instance, database, atau peran untuk menentukan cakupan operasi yang dicatat pgAudit ke dalam log. Anda menetapkan flag ke nilai yang menentukan jenis operasi yang dicatat pgAudit ke dalam log.Tetapkan
pgaudit.roleuntuk mengaktifkan dan mengonfigurasi logging objek, yang mencatat laporan log yang memengaruhi relasi tertentu. Anda menetapkan flag ini ke nama peran, lalu memberikan akses pernyataan ke objek tertentu yang ingin Anda catat ke dalam log. Akses pernyataan mencakupSELECT,INSERT,UPDATE, danDELETE. 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 satu instance
Guna mengonfigurasi audit untuk semua database dalam satu instance, tetapkan
flag pgaudit.log di level instance.
Contoh:
- Untuk mengaktifkan pengauditan semua operasi di semua database dalam sebuah 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 pengauditan 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 pembatas 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 pengauditan untuk database tertentu dengan menetapkan flag pgaudit.log
di tingkat database.
Misalnya, untuk mengaktifkan audit baca dan tulis untuk database, 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 flag pgaudit.log
pada tingkat per peran.
Misalnya, untuk menetapkan pengauditan untuk semua operasi database yang dijalankan oleh pengguna, Alice:
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 ke dalam log setiap objek atau relasi
yang diberikan ke peran ini.
Contoh:
- Untuk mengonfigurasi pengauditan untuk semua kueri
SELECTpada relasi gaji dalam database karyawan:CREATE ROLE auditor WITH NOLOGIN; ALTER DATABASE employee SET pgaudit.role = 'auditor'; 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
incomedantax_statusdiakses dari relasi gaji:GRANT SELECT(income, tax_status) ON salary TO auditor;