Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Audit di Oracle

Jika Anda memiliki edisi perusahaan 10g, Anda harus melihat Audit Butir Halus Oracle. Ini jelas lebih baik daripada menggulung sendiri.

Tetapi jika Anda memiliki versi yang lebih rendah atau karena alasan tertentu FGA tidak sesuai dengan selera Anda, berikut adalah cara melakukannya. Kuncinya adalah:buat tabel audit terpisah untuk setiap tabel aplikasi .

Saya tahu ini bukan yang ingin Anda dengar karena tidak cocok dengan struktur tabel yang Anda uraikan di atas. Tetapi menyimpan baris dengan nilai LAMA dan BARU untuk setiap kolom yang terpengaruh oleh pembaruan adalah ide yang sangat buruk:

  1. Itu tidak berskala ( pembaruan tunggal yang menyentuh sepuluh kolom menghasilkan sepuluh sisipan)
  2. Bagaimana jika Anda memasukkan catatan?
  3. Sangat sulit untuk mengumpulkan status rekor pada waktu tertentu

Jadi, miliki tabel audit untuk setiap tabel aplikasi, dengan struktur yang identik. Itu berarti memasukkan CHANGED_TIMESTAMP dan CHANGED_USER pada tabel aplikasi, tapi itu bukan hal yang buruk.

Terakhir, dan Anda tahu ke mana arahnya, miliki pemicu di setiap tabel yang menyisipkan seluruh catatan hanya dengan nilai :NEW ke dalam tabel audit. Pemicu harus diaktifkan pada INSERT dan UPDATE. Ini memberikan sejarah yang lengkap, cukup mudah untuk membedakan dua versi catatan. Untuk DELETE, Anda akan memasukkan catatan audit hanya dengan kunci utama terisi dan semua kolom lainnya kosong.

Keberatan Anda adalah bahwa Anda memiliki terlalu banyak tabel dan terlalu banyak kolom untuk mengimplementasikan semua objek ini. Tapi cukup sederhana untuk menghasilkan tabel dan memicu pernyataan DDL dari kamus data (user_tables, user_tab_columns).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki Kesalahan "ORA-01789:blok kueri memiliki jumlah kolom hasil yang salah"

  2. ORA-01438:nilai lebih besar dari presisi yang ditentukan yang diizinkan untuk kolom ini saat memasukkan 3

  3. Kunci liquibase - alasan?

  4. Instal Oracle SQL Developer 19.1 di Mac OS dengan JDK 8

  5. Putar di Oracle 10g