Programlarda veri güvenliği için logging yani kayıtların kütüğünü tutmak şart olmaya başladı..
Loggingde olması gerekenler
1)Giriş bilgisi table,field
2)Silme bilgisi table,silinen kayıt bilgileri..
3)Düzeltme bilgisi table,düzeltilen kayıt bilgisi eski ve yeni hali bilgileri..
bu konuda çalışma yapan ve bilgilerini paylaşan arkadaşlara teşekkürler..
Daha kaliteli programlar yazmamız ve insanlara kazandırmamız dileğiyle..
Logging olayını trigerler ile yapan bir çalışma paylaşılırsa çok iyi olur arkadaşlar..
Firebird veritabanında logging Nasıl yapılır
- softdestek
- Üye
- Mesajlar: 155
- Kayıt: 17 Eyl 2010 03:53
- softdestek
- Üye
- Mesajlar: 155
- Kayıt: 17 Eyl 2010 03:53
Re: Firebird veritabanında logging Nasıl yapılır
Cevabı yine ben vereyim
select
ibe$log_tables1.id,
ibe$log_tables1.table_name,
ibe$log_tables1.operation,
ibe$log_tables1.date_time,
ibe$log_tables1.user_name,
ibe$log_fields.field_name,
ibe$log_fields.old_value,
ibe$log_fields.new_value
from ibe$log_fields
inner join ibe$log_tables ibe$log_tables1 on (ibe$log_fields.log_tables_id = ibe$log_tables1.id)
Cevap bu kadar basit ama veren çıkmadı maalesef merak edenler mesaj atsın..Kimsenin merak ettiği yok sanırım
select
ibe$log_tables1.id,
ibe$log_tables1.table_name,
ibe$log_tables1.operation,
ibe$log_tables1.date_time,
ibe$log_tables1.user_name,
ibe$log_fields.field_name,
ibe$log_fields.old_value,
ibe$log_fields.new_value
from ibe$log_fields
inner join ibe$log_tables ibe$log_tables1 on (ibe$log_fields.log_tables_id = ibe$log_tables1.id)
Cevap bu kadar basit ama veren çıkmadı maalesef merak edenler mesaj atsın..Kimsenin merak ettiği yok sanırım
Re: Firebird veritabanında logging Nasıl yapılır
Merhaba,
Merak edilmediğini düşünme En az yüzlerce insan arama yaptırıp bu konuyu okumuştur. Bende fikir almak için en pratik trigger kodu yazarak bu işi yapmanın yolunu bulmaya çalışanlardan biriyim. Anladığım kadarıyla field degeri bazında bu işi çözmüşsün. Tek tek fieldların değerlerini if (new.fieldvalu <> old.fieldvalue) karşılaştırmasına sokmak gerekiyor. Bu şekilde iş biraz uzun olabilir ama sonuçta bir çözümdür.
Benim düşündüğüm bir "database trigger" ın OnCommitTransaction trigger olayını yakalayıp oradaki commit edilen statement yakalamaya dayanmaktaydı. Dolayısıyla veritabanı loglamak için sadece bir triggerı yakalamak yetmekte. Ancak teknik olarak işi çözemedim , henüz Eğer çözümü bilen arkadaşlarımız varsa lütfen bu mesajı cevaplasın, hasretle beklemekteyiz
Merak edilmediğini düşünme En az yüzlerce insan arama yaptırıp bu konuyu okumuştur. Bende fikir almak için en pratik trigger kodu yazarak bu işi yapmanın yolunu bulmaya çalışanlardan biriyim. Anladığım kadarıyla field degeri bazında bu işi çözmüşsün. Tek tek fieldların değerlerini if (new.fieldvalu <> old.fieldvalue) karşılaştırmasına sokmak gerekiyor. Bu şekilde iş biraz uzun olabilir ama sonuçta bir çözümdür.
Benim düşündüğüm bir "database trigger" ın OnCommitTransaction trigger olayını yakalayıp oradaki commit edilen statement yakalamaya dayanmaktaydı. Dolayısıyla veritabanı loglamak için sadece bir triggerı yakalamak yetmekte. Ancak teknik olarak işi çözemedim , henüz Eğer çözümü bilen arkadaşlarımız varsa lütfen bu mesajı cevaplasın, hasretle beklemekteyiz
Re: Firebird veritabanında logging Nasıl yapılır
merhaba, bu yukardaki kod logging mi yapıyor şimdi? ben bunu nereye yazıcam ?softdestek yazdı:Cevabı yine ben vereyim
select
ibe$log_tables1.id,
ibe$log_tables1.table_name,
ibe$log_tables1.operation,
ibe$log_tables1.date_time,
ibe$log_tables1.user_name,
ibe$log_fields.field_name,
ibe$log_fields.old_value,
ibe$log_fields.new_value
from ibe$log_fields
inner join ibe$log_tables ibe$log_tables1 on (ibe$log_fields.log_tables_id = ibe$log_tables1.id)
Cevap bu kadar basit ama veren çıkmadı maalesef merak edenler mesaj atsın..Kimsenin merak ettiği yok sanırım
- softdestek
- Üye
- Mesajlar: 155
- Kayıt: 17 Eyl 2010 03:53
Re: Firebird veritabanında logging Nasıl yapılır
İlgilen arkadaşlar aşağıdaki uygulmayı indir.Db ve exe dosya ve source da ekdedir.
http://www58.zippyshare.com/v/16699449/file.html
http://www58.zippyshare.com/v/16699449/file.html