Membuat Audit delete record log dengan trigger MS SQL 2005
Posted on December 23, 2007
Tulisan ini sebenarnya merupakan pemenuhan janji saya kepada salah satu peserta training yang ingin mengetahui tentang konsep Auditing Record Log di sebuah database MS SQL Server 2005 (any edition). Saya mohon maaf kepada Pak Indra yang sudah menanti cukup lama untuk tulisan ini
.
Kita mulai dari cara yang sederhana yaitu dengan membuat sebuah database / menggunakan sebuah database yang sudah ada. Beberapa prasyarat awal untuk mengetahui lebih detail konsep ini bisa dimulai pemahaman tentang Trigger. Kenaapa menggunakan trigger ? Sebagai sebuah object database yang sebenarnya ‘berdiri sendiri’, trigger mempunyai kemampuan utk meng-antisipasi sebuah aksi yang dilakukan ke database / table dengan merespon balik berupa reaksi terhadap table itu sendiri (tempat trigger berada) / kepada object (table,view dll) yang juga terdapat di dalam database itu. Fungsi trigger sebenarnya mirip Check constraint tetapi trigger mempunya fungsionalitas yang lebih luas dibandingkan dengan Check Constraint.
Mari kita mulai pembahasan topik ini dengan membuat sebuah skenario berikut : Sebuah aplikasi berbasis windows based client dan database MS SQL 2005 sebagai backend-nya sering mendapatkan sebuah kasus dimana database-nya / tabel / record-nya tiba-tiba data-nya menghilang, sebagai seorang DBA tentunya kita harus mempunyai cara untuk mengetahui siapa, kapan, dan lewat mana data tersebut ‘terhapus’ entah itu sengaja atau tidak sengaja. Beberapa prasyarat untuk membuatnya adalah sebagai berikut :
- Tentukan terlebih dahulu mana tabel yang akan di audit, karena semakin banyak trigger yang harus di aktifkan di sebuah database dapat menurunkan performance dari database tersebut.
- Buat database dan table kosong yang baru di SQL 2005 dengan menggunakan SQL Management Studio nama-nya terserah anda : “testingAudit” dengan menggunakan konfigurasi standard :
create database testingAudit
go
create table testDelete
(
id_record varchar(5),
Deskripsi varchar(20)
)
go
‘insert data dummy ke table testDelete, jalankan script :insert into testDelete values (’ABC’,'testing 123′)
insert into testDelete values (’BCD’,'testing 124′)
insert into testDelete values (’CDE’,'testing 125′)
insert into testDelete values (’EFG’,'testing 126′)
insert into testDelete values (’FGH’,'testing 126′)
insert into testDelete values (’GHI’,'testing 127′)
insert into testDelete values (’HIJ’,'testing 128′)
insert into testDelete values (’IJK’,'testing 129′)
insert into testDelete values (’JKL’,'testing 130′)
insert into testDelete values (’KLM’,'testing 131′)
insert into testDelete values (’LMN’,'testing 132′)
insert into testDelete values (’MNO’,'testing 133′) - Setelah kita tentukan tabel mana yang akan di audit yaitu testdelete table, buatlah sebuah tabel yang dimanfaatkan sebagai audit log table yang di dalamnya terdapat beberapa informasi seperti : deleted_date_hour_minute,who_deleted,id_record_deleted,application. Berikut contoh script untuk membuat tabel-nya :
use testingAudit
go
create table log_record
(
dateDeleted datetime,
personWho varchar(30),
Id_record varchar(10)
) - Setelah table log dibuat, tahap berikut-nya adalah membuat trigger on delete di dalam table testDelete
Setiap perintah transaction (insert,update,delete) statement di table MS SQL Server pasti selalu muncul beberapa table sementara yang hanya muncul disaat eksekusi trigger. Table-table itu diantaranya adalah sebagai berikut :
- inserted (muncul pada saat terjadi proses transaksi perintah insert terhadap sebuah tabel)
- deleted (muncul pada saat terjadi proses transaksi perintah delete terhadap sebuah tabel)
- Sedangkan untuk transaksi Update , proses yang terjadi adalah deleted yang pertama kali di kerjakan baru setelah itu Inserted.Gambaran script untuk pembuatan trigger-nya adalah sebagai berikut :
create trigger tr_test on testdelete
for delete
as
declare @date1 datetime,@person varchar(30) , @id varchar(10)
set @date1 = getdate()
set @person = suser_sname()
select @id = id_record from deleted
insert into log_record values (@date1,@person,@id) - Pastikan trigger tr_test sudah terdapat dalam tabel testDelete, dengan menggunaan SSMS (SQL Server Management Studio).
- Coba jalankan perintah delete terhadap 1 record di tabel testDelete kemudian cek apakah log_record table telah terisi siapa, kapan dan record mana yang terhapus.
- Tolong dipastikan juga bahwa user yang authorized delete record di testDelete bisa melakukan perintah insert di table log_record.
- Selamat mencoba.
Feel free your comment,
Sony
» Filed Under Database | 5 Comments
Pengelolaan Knowledge Management di Perusahaan
Posted on December 23, 2007
Terminologi tentang Knowledge Management (KM) pada dasarnya mempunyai arti sebuah proses untuk meng-optimalisasi kekayaan intelektual di suatu organisasi untuk kepentingan organisasi. Keberadaan KM di sebuah organisasi tidak secara langsung dapat terlihat hasilnya karena beberapa hal yang berkaitan dengan Kekayaan Intelektual (Intelektual capital) yang di dalamnya terdiri dari komponen utama yaitu : human capital , Social capital, dan Corporate capital. Ketiga komponen ini merupakan komponen inti dari enterprise knowledge. Ketika salah satu dari ketiga komponen tadi tidak dapat dipenuhi oleh sebuah organisasi maka bisa dibilang implementasi dari KM ini akan gagal.
-
Human Capital (Kekayaan sumber daya manusia)
Kekayaan sumber daya manusia merupakan kekayaan yang paling besar dan paling berpengaruh terhadap pengembangan KM di sebuah organisasi. Masing-masing individu di sebuah organisasi mempunyai sumber daya yang disesuaikan dengan kemampuan dan pengetahuan yang saat ini dimilikinya. Seringkali kondisi pengelolaan kemampuan intelektual dari setiap individu selalu dipegang dan hanya dikembangkan oleh 1 orang tertentu saja. Hal ini berakibat ketergantungan terhadap 1 orang ini akan sangat tinggi dan ketika sudah saatnya dia menyatakan keluar (resign) perusahaan akan kelabakan karena sangat tergantung pada kemampuan skill-nya. -
Corporate Capital (Kekayaan milik korporasi)
Di dalamnya termasuk kekayaan intelektual (Intellectual Property) baik itu formal maupun informal seperti contohnya adalah : source code, paten, ide, merek dagang dan lain sebagainya, terutama yang berkaitan dengan sesuatu hal yang bisa menjadikan kekayaan ini sebagai sumber daya potensial untuk perusahaan agar bisa dikenal dan dianggap sebagai kekuatan utama di dunia luar. -
Social Capital (Kekayaan sosial)
Bagian kerja dari sebuah perangkat komunikasi di sebuah perusahaan di dalamnya termasuk ketersediaan hubungan antar manusia menggunakan Virtual Network dan juga interaksi antar setiap komponen sosial yang ada di dalam perusahaan.
- Teknologi : berkaitan erat dengan beberapa hal yaitu memberdayakan, mem-fasilitasi dan menyebar luaskan inovasi keseluruh organisasi.
- Isi (Content) : berkaitan dengan nilai, relevansi dan keadaan informasi yang terkini
- Proses : berkaitan dengan pengelompokan, pengumpulan, penyelarasan (synchronize), menganalisa dan penyebaran informasi.
- Budaya (culture) : berkaitan dengan komitmen, memberikan informasi ke orang lain (sharing) , saling bertukar (exchange) dan membangun hubungan (relationship).
- Pembelajaran (Learning) : berkaitan dengan membangun kontekstual, membuat dan mengembangkan proses transfer ilmu.
- Identifikasi mana “Nilai” yang paling tinggi dari sebuah organisasi di sesuaikan dengan kebutuhan organisasi tersebut untuk dapat meningkatkan nilai perusahaan itu di dunia luar. Contohnya adalah perusahaan yang bergerak di bidang IT Solutions harus selalu meningkatkan kemampuan mengelola portfolio apa yang sudah pernah mereka lakukan agar lebih dikenal di kalangan industri yang menggunakan jasa-nya. Dengan kemampuan mengelola portfolio di perusahaan berbasis IT Solutions dapat dipergunakan untuk kalangan internal agar dapat mencontoh success stories dari sebuah solusi yang pernah dikembangkan sebelumnya. Selain itu kegagalan-kegagalan yang terjadi dapat juga dijadikan sebagai senjata agar mereka tidak kembali mengulang kegagalan yang sudah pernah mereka dapat sebelumnya.
- Penjelasan yang detail belum tentu penting. Sebuah penjelasan yang terlalu “dalam” dari sebuah hirarki di dalam akar pengetahuan di organisasi dapat membuat terlalu banyaknya pekerjaan yang tidak penting dilakukan oleh seorang pengelola KM di organisasi. Oleh karena itu harus dilakukan pengamatan terlebih dahulu antara pengembangan keluasan dan kedalaman pengetahuan disesuaikan need and demand dari sebuah organisasi.
- Buka Forum untuk mencari pola. Diperlukan waktu yang cukup lama untuk organisasi jika ingin menemukan pola yang tepat dari sebuah pendekatan yang sistematis untuk tukar menukar informasi jika hanya mengandalkan pengamatan belaka. Diperlukan sebuah perangkat tools yang sanggup untuk menjembatani proses tukar menukar informasi tadi, salah satu yang cukup mewakili adalah Blog dan Wiki. Kedua tools tadi dapat dijadikan sebagai ajang untuk mewakili suara dari setiap karyawan organisasi untuk membahas sebuah topik secara bertanggung jawab demi kepentingan perusahaan dengan mengurangi hambatan waktu dan tempat dalam pembahasan sebuah topik yang bersifat terbuka.
- KM harus sejalan dengan penerapan bisnis. Sebuah proses pekerjaan di organisasi seharusnya mempunyai standar kerja yang dijadikan sebagai patokan kecepatan dan kualitas pekerjaan tersebut untuk dapat memenuhi kebutuhan bisnis yang cepat. Proses KM yang benar dapat mempercepat waktu tempuh dalam pembuatan proses bisnis secara keseluruhan, sehingga dapat dijadikan alat pengukuran bagaimana mengetahui KM dapat memberikan ROI (Return of Investment) terhadap organisasi penaung-nya. Itu adalah tantangan bagi para praktisi informasi untuk dapat mencari cara-cara yang paling tepat agar mereka dapat melakukan efesiensi pekerjaan dalam mencari informasi yang tepat dan cepat.
Berikut tulisan saya yang pertama tentang Knowledge Management, selanjutnya dalam tulisan berikutnya saya akan memberikan detail penerapan KM ditinjau dari pemanfaatan teknologi yang ada saat ini.
» Filed Under Knowledge Management | 1 Comment