Sisteme Connect Olan Kullanıcıları Tespit Etme

 Database’ deki kullanıcı sayısı fazla olan şirketler de bir süre sonra şöyle bir problem ortaya çıkıyor. İşe başlayan personele bir database accountu açılıyor. Sonra zaman içerisinde kimi personel ayrılıyor, kimisi yeni işe başlıyor derken ipin ucu bir noktada kaçabiliyor dolayısıyla işten ayrılmış olan personelin accountu sistemde açık olarak kalabiliyor. Buda aslında sisteminiz için bir güvenlik açığı oluşturuyor. Peki bunu nasıl giderebiliriz? Birebir çözümü olmasa da (en azından ben öyle düşünüyorum) şöyle bir tespitte bulunabiliriz. Database’ e connect olan kullanıcıları sisteme giriş yaptığı anda tespit edip, bizim istemiş olduğumuz bazı bilgileri bir tabloya yazdırıp sonrasında sistemdeki tüm kullanıcılar ile karşılaştırıp baktığımız zaman aralığında sisteme hiç giriş yapmamış olan kullanıcıları bulabiliriz. Tabi bu kullanıcıları hemen drop etmek çok akıllıca olmayabilir, burada şu yapılabilir bu kullanıcıların  accountları locklanıp en azından araştırmak için zaman kazanılabilir. Şimdi bunun için neler yapmamız gerektiğine bakalım;

Önce v$sessionın tüm kolonlarını içeren bir tablo create edip, trigger da bunu kullanacğım. Aslında bu iş için v$session tablosundaki tüm kolonlara ihtiyacımız yok, siz isterseniz insert ve create table scriptini özelliştirip nesnelerinizi kolon bazında tanımlayıp create edebilirsiniz.

— tablomuzu create edelim ;

create table kamil.logon_user as select * from v$session where 0=1
Table created.

— triggerımızı create edelim ;

create or replace trigger
   kamil.logon_user_control
AFTER LOGON ON DATABASE
BEGIN
insert into kamil.logon_user select * from  v$session ;
END;
/

Trigger created.

Şimdi tablomuzu kontrol edelim, yeni gelen sessionlara ait tüm bilgileri bizim tablomuzada insert ediyor olması gerekiyor.

select count(*)  from kamil.logon_user ;

  COUNT(*)
———-
     1078
1 row selected

Evet tablo doluyor, problem yok.

Şimdi yaptığımız işlemleri geri alalım. Temizlik zamanı;

drop trigger    kamil.logon_user_control ;
Trigger dropped

drop table kamil.logon_user ;
Table dropped

Umarım işinize yarar zaman zaman bu tarz bilgileri kimi uygulama sahipleri isteyebiliyor. Aslında dba’ ler olarak kimi noktalarda bizim de işimize yarıyor.

Be Sociable, Share!

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


+ 3 = onbir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">