12c öncesinde kullanıcıların database’ lere en son ne zaman login olduklarını tespit etmek çeşitli yöntemlere başvururduk. Özellikle kurumsal firmaların güvenlik departmanları işten ayrılan personellerin database accountlarının da silinmesi için bu bilgiye ihtiyaç duyuyorlar. Bunu tespit etmek için çoğunlukla logon trigger adını verdiğimiz bir trigger yardımı ile sisteme connect olan kullanıcıların connection kurdukları zaman bilgilerini bir tabloya yazarak belirli aralıklarla bunları raporlamak suretiyle çözüm üretirdik. Aslında bu yöntemin kendine göre handikapları bulunuyor. Trigger dan gelen kayıtların tablonun içinde bulunduğu tablespace’ in dolduğunu düşünürseniz (ki bu olası bir durum) tabloya yeni kayıt gelemeyeceğinden dolayı sistem bu tabloya kayıt atamadığı için içeriye yeni bir kullanıcının da gelmesini engelliyor buda beraberinde daha kritik başka problemlere yol açıyor idi.
Aslında bunu bir süredir yeni versiyonlar ile bekliyorduk. Oracle 12c ile birlikte dba_users view’ ine eklediği bir alan ile kullanıcı bazından her bir kullanıcının database’ e connection kurduğu last login time’ i buraya da yazmaya başladı.
===> column username format A30
===> select username, last_login from dba_users where username =’C##KAMIL’
USERNAME LAST_LOGIN
—————————— ———————————–
C##KAMIL 05/06/2015 08:04:19,000000000 +03:0
1 row selected.
Aslında aynı durumu database’ e sunucu üzerinden sqlplus ile bağlantı kurduğunuz dada görebilir durumdayız ;
[oracle@Redhat70 ~]$ sqlplus c##kamil/kamil
SQL*Plus: Release 12.1.0.2.0 Production on Fri Jun 5 08:04:19 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Last Successful login time: Mon May 18 2015 22:19:09 +03:00
Continue reading