Dosen :
RESUME
AUDIT
A. Audit Operasi di Suatu Table
Misalkan kita ingin mengetahui user mana saja yang melakukan perubahan (INSERT,
UPDATE, DELETE) pada suatu tabel.
1. Aktifkan melalui parameter AUDIT_TRAIL. Ada tiga pilihan value, yaitu:
DB
OS
NONE : By default nilainya adalah NONE, mematikan kumpulan history dari audit.
Dari AUDIT_TRAIL kita bisa mengetahui update table ini dilakukan kapan, oleh user siapa,
dari mesin mana, dan lain-lain.
SQL> alter system set AUDIT_TRAIL=DB scope=spfile;
SQL> shutdown immediate
SQL> startup
2. Lakukan perintah audit. Misalkan kita ingin mengaudit operasi INSERT, UPDATE,
DELETE pada tabel pegawai (di schema test)
SQL> AUDIT INSERT, UPDATE, DELETE ON test.pegawai
BY ACCESS WHENEVER SUCCESSFUL;
3. Lihat hasilnya
SQL> select * FROM SYS.AUD$;
4. Untuk meng-cancel audit
SQL> NOAUDIT INSERT, UPDATE, DELETE ON test.pegawai;
B. Audit Update Table dengan Trigger
Kita mungkin ingin menyimpan data lama sebelum diupdate sehingga bisa mengetahui
history perubahan data. Jenis audit yang seperti ini disebut sebagai Value-Based Auditing
(VBA). Untuk itu kita bisa menggunakan TRIGGER.
C. Trigger: Mencatat History Startup & shutdown DB
Kita bisa mengetahui kapan database shutdown dan kapan database startup, biasanya
dengan melihat di alert log. Namun kita perlu usaha ekstra untuk membaca alert log. Untuk
mempermudahnya, kita bisa membuat TRIGGER yang mencatat setiap aktivitas (startup dan
shutdown) ke tabel history. Untuk melakukan ini, gunakanan user yang punya privilege DBA
(misalnya SYS atau SYSTEM).
D. Memanage History Perkembangan Data
Database Administrator (DBA) haarus mengetahui perkembangan data (database) yang
tengah dimaintainnya. Ini penting sekali untuk:
1. Dari sisi aplikasi (user), memprediksi jumlah data pada waktu mendatang. Apakah
satu, dua, atau sepuluh tahun ke depan aplikasi masih mampu mensupport proses data
sebesar itu?
2. Dari sisi infrastruktur, memprediksi kebutuhan storage (penyimpanan).
3. Bagi manajemen, tentu saja untuk memprediksi budget buat pengadaan storage.
TUJUAN AUDIT
Audit bertujuan untuk mengawasi aktifitas yang mencurigakan pada database,
mengawasi perubahan data pada database yang dilakukan user.
IMPLEMENTASI AUDIT
Misalkan kita ingin mengetahui user mana saja yang melakukan perubahan (INSERT,
UPDATE, DELETE) pada suatu tabel.
1. Aktifkan melalui parameter AUDIT_TRAIL. Ada tiga pilihan value, yaitu:
DB
OS
NONE : By default nilainya adalah NONE, mematikan kumpulan history dari audit.
Dari AUDIT_TRAIL kita bisa mengetahui update table ini dilakukan kapan, oleh user
siapa, dari mesin mana, dan lain-lain.
SQL> alter system set AUDIT_TRAIL=DB scope=spfile;
SQL> shutdown immediate
SQL> startup
2. Lakukan perintah audit. Misalkan kita ingin mengaudit operasi INSERT, UPDATE,
DELETE pada tabel pegawai (di schema test)
SQL> AUDIT INSERT, UPDATE, DELETE ON test.pegawai
BY ACCESS WHENEVER SUCCESSFUL;
3. Lihat hasilnya
SQL> select * FROM SYS.AUD$;
4. Untuk meng-cancel audit
SQL> NOAUDIT INSERT, UPDATE, DELETE ON test.pegawai;
Misalakan kita ingin menyimpan data lama sebelum diupdate sehingga bisa
mengetahui history perubahan data. Untuk ini kita bisa menggunakan TRIGGER.
1. Misalkan kita punya tabel EMP2
CREATE TABLE EMP2
(
EMPNO NUMBER(4),
ENAME VARCHAR2(20),
JOB VARCHAR2(10),
SAL NUMBER
);
insert into EMP2 values (1, 'Rohmad', 'DBA', 400000);
commit;
2. Buat tabel yang menampung hasil audit tersebut, misalkan kita beri nama
EMP2_audit.
CREATE TABLE EMP2_audit
(
Tanggal_edit date,
EMPNO NUMBER(4),
ENAME VARCHAR2(20),
JOB VARCHAR2(10),
SAL NUMBER
);
3. Buat trigger yang mencatat nilai sebelum di-update
TANGGAL_E
--------06-AUG-08
EMPNO
--------
ENAME
---------1
JOB
----------
Rohmad
DBA
SAL
-----
----400000