PolarDB for PostgreSQL (Compatible with Oracle) dan mendukung ekstensi pgAudit yang menghasilkan log audit. Log ini sering diperlukan untuk memenuhi persyaratan sertifikasi pemerintah, keuangan, atau ISO. Anda dapat menggunakan log audit tersebut untuk mendiagnosis gangguan database, menganalisis perilaku, serta melacak operasi database.
Cakupan
PolarDB for PostgreSQL (Compatible with Oracle) mendukung versi berikut:
Oracle syntax compatible 2.0 (minor engine version 2.0.14.5.1.0 dan yang lebih baru)
Oracle syntax compatible 1.0 (minor engine version 2.0.11.9.25.0 dan yang lebih baru)
Anda dapat melihat minor engine version di console atau dengan menjalankan pernyataan SHOW polardb_version;. Jika kluster Anda tidak memenuhi persyaratan versi, lakukan upgrade minor engine version.
Catatan penting
Log audit dapat dilihat di SQL Explorer.
Diperlukan akun istimewa untuk mengonfigurasi parameter ekstensi.
Panduan penggunaan
Instal ekstensi
CREATE EXTENSION pgaudit;Audit operasi baca
Jalankan perintah berikut untuk mengaudit semua operasi baca di database pgaudit_testdb.
ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'READ';Setelah perintah tersebut dijalankan, semua operasi baca—seperti SELECT—di database pgaudit_testdb akan diaudit. Operasi tulis, seperti INSERT dan UPDATE, tidak termasuk dalam audit.
Audit operasi baca dan tulis
Jalankan perintah berikut untuk mengaudit semua operasi baca dan tulis di database pgaudit_testdb.
ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'READ,WRITE';Setelah perintah tersebut dijalankan, semua operasi baca dan tulis—seperti SELECT, INSERT, dan UPDATE—di database pgaudit_testdb akan diaudit.
Nonaktifkan auditing
ALTER DATABASE pgaudit_testdb SET pgaudit.log = 'NONE';Audit operasi pada objek tertentu
Jalankan perintah berikut untuk menetapkan pengguna audit pada database pgaudit_testdb, membuat tabel, serta memberikan semua izin pada tabel tersebut kepada pengguna tersebut.
CREATE USER audit_role;
ALTER DATABASE pgaudit_testdb SET pgaudit.role = 'audit_role';
CREATE TABLE test_audit (id INT);
GRANT ALL ON test_audit TO audit_role;Setelah perintah tersebut dijalankan, hanya operasi pada tabel test_audit di database pgaudit_testdb yang akan diaudit.
Uninstal ekstensi
DROP EXTENSION pgaudit;Referensi
Untuk informasi selengkapnya tentang pgAudit, lihat dokumentasi resmi pgAudit.