NormalTable
dan AuditNormalTable
.
NormalTable
dan AuditNormalTable
.
Jawaban:
Tabel Audit digunakan untuk melacak transaksi terhadap tabel atau tabel tertentu. Mereka memungkinkan Anda untuk melihat "log" yang sedang berlangsung (karena tidak ada kata yang lebih baik). Misalnya, Anda memiliki tabel seperti ini:
create table SensitiveInformation
(
SensitiveNumber int not null,
SensitiveData varchar(100) not null
)
go
Mungkin ada pengguna dan / atau aplikasi yang memiliki akses untuk menyisipkan, memperbarui, dan menghapus dari tabel itu. Tetapi karena sifat sensitif data itu, Anda mungkin ingin memiliki cara cepat dan mudah untuk melacak siapa yang melakukan apa yang ada di tabel itu.
Jadi, Anda memiliki Meja Audit untuk melacak apa yang sedang dilakukan di atas meja itu. Biasanya itu akan mencakup dasar Who , What , When .
Tabel audit bisa terlihat seperti ini:
create table SensitiveInformationAudit
(
SensitiveNumberNew int null,
SensitiveNumberOld int null,
SensitiveDataNew varchar(100) null,
SensitiveDataOld varchar(100) null,
Action varchar(50) not null,
AuditDate datetime not null,
LastUpdatedUser varchar(100) not null
)
go
Tabel Audit biasanya diisi melalui penggunaan Pemicu Database. Dengan kata lain, ketika X
tindakan terjadi SensitiveInformation
, masukkan detailnya di SensitiveInformationAudit
.
Action
bidangnya adalah UPDATE
atau INSERT
atau DELETE
?
Salah satu aspek penting lain dari tabel audit yang belum disorot sejauh ini, adalah bahwa selain melacak siapa yang melakukan apa pada catatan mana (sering termasuk sebelum dan setelah foto) tabel audit ditulis-sekali .
Catatan dalam tabel audit mungkin tidak diperbarui atau dihapus (lihat catatan), hanya disisipkan . Ini kadang-kadang dipaksakan menggunakan pemicu atau mungkin hanya logika aplikasi, tetapi penting dalam praktiknya karena memberi Anda "bukti" bahwa tidak ada yang dirusak dengan cara yang sulit dideteksi.
Catatan: Membersihkan catatan lama dari tabel audit membutuhkan proses khusus yang seringkali harus disetujui oleh manajemen atau auditor.
Tabel audit umumnya digunakan ketika Anda ingin melacak perubahan di tabel sensitif / rahasia. Jika ada tabel yang digunakan untuk tingkat pembayaran dan persentase bonus, dan aplikasi SDM membayar gaji berdasarkan data ini, maka pengguna dengan akses tulis ke tabel ini dapat melakukan modifikasi pembayaran yang tidak sah.
Pada saat yang sama, beberapa pengguna harus diizinkan bekerja di tabel ini. Di sinilah tabel audit masuk. Tabel audit dapat digunakan untuk melacak nilai sebelum dan sesudah data yang diubah. Biasanya mereka juga menyimpan informasi tambahan seperti orang yang melakukan perubahan dan waktu di mana perubahan dilakukan.
Oleh karena itu tabel audit ini menghalangi pengguna yang diberdayakan untuk melakukan kegiatan yang tidak sah. Mereka juga menyediakan cara untuk kembali ke nilai yang benar.
SQL 2008 dan di atasnya memiliki fitur bawaan yang disebut Change Data Capture yang dapat digunakan untuk ini.
Tabel audit digunakan oleh alat audit asli atau pihak ke-3 yang menangkap perubahan data yang terjadi pada basis data, biasanya termasuk informasi tentang siapa yang membuat perubahan, objek mana yang dipengaruhi olehnya, kapan objek itu dibuat serta informasi tentang Login SQL, aplikasi dan host digunakan untuk melakukan perubahan. Semua informasi yang ditangkap disimpan dalam tabel audit dan harus tersedia dalam format yang ramah pengguna melalui ekspor atau kueri.