Forum
Merhaba kolay gelsin ben sql serverda kullanıcının login ve logout olduğu zamanları kendi oluşturduğum bir tabloda tutmak istiyorum.
Login olduğu zamanı sysprocess tablosundan veya kullandığım programdan direk alabiliyorum fakat kullanıcının logout olma durumunu sysprocess'ten alamıyorum çünkü o kayıt silinmiş oluyor. sysprocesses'e trigger da eklenemiyor bildiğiniz gibi system nesnesi olduğu için. Kullandığım programda kapanırken alma şansım vardı onda da kullanıcı görev yöneticisinden işlemi sonlandırdığında işlem yarım kalmakta dolayısıyla ordan da alamıyorum.
SQL üzerinde bu bilgileri alma şansımız nedir daha önce benzer bi uygulama yapan oldu mu ?
Merhaba,
Logon işlemini Logon trigger ile halledebilirsiniz. Logon trigger kodlarken ve üretim ortamına alırken dikkat etmenizi tavsiye ederim(Olası kötü senaryolara karşı DAC ı açmak, açık connection bırakmak, yetkili yedek bir kullanıcı bulundurmak bunlardan sadece birkaçı).
Hem logon hem logout işlemlerini Trace ile yakalayabilirsiniz. Server side trace açıp istediğiniz filtreye göre olan kayıtları bir tabloda yada bir dosyada tutabilirsiniz.
İlginize teşekkür ederim Mehmet Bey fakat şöyle bir durum söz konusu aslında benim yapmaya çalıştığım şey bir kullanıcının programımı ne zaman açtığı ve ne zaman kapattığını bilmek. Ne zaman açtığında problem yok fakat kullanıcı programı görev yöneticisinden kestiğinde ne zaman kapandı bilgisini alamıyorum. Hal böyle olunca trace file ve service broker yöntemleri her kurulum yapılan yerde yapılması gereken işlem haline dönüyor.
DDL trigger ları ile alakalı olarak da logoff işlemine ait herhangi bir bilgiye rastlayamadım. Logon için hazır örneklerim bile mevcut fakat logoff olayı için event notification yordamını araştırdım ordada sanırım ben yetersiz kaldım. Bu arada yanlış bilmiyor isem SQL 2000 DDL triggerlarını desteklemiyor.
Bu arada hatırlatmakta fayda var ; Mehmet GÜZEL Türkiye'deki SQL üstadlarından biridir 🙂
Logon trigger bildiğim kadarıyla SQL Server 2005 SP2 ile birlikte geldi, SQL Server 2000 de yoktu.
Uygulamanızın logout event'ında bu istediğinizi yapamıyor musunuz?
Bu arada hatırlatmakta fayda var ; Mehmet GÜZEL Türkiye'deki SQL üstadlarından biridir 🙂
Est. üstadlık nerde biz nerde; biz olsa olsa talep eden oluruz yani her daim talebeyiz:)
hocam uygulama task manager'dan sonlandırıldığında event falan hak getire 🙂