21 Ocak 2011 Cuma

Bilinen Adıyla LOGON TRIGGER


Güvenlik anlamında bir adım daha ileri giderek sisteme  connect olan bazı userların sadece bir (veya birkaç ip’ den) gelmesini istiyorsunuz. Veya zaten birkaç ip’ den geliyordur siz bunların dışındaki olası girişlerin önüne geçmek isteyebilirsiniz. Aşağıdaki trigger da aynen bu işlemi gerçekleştirmektedir. Belirlenmiş olan kullanıcıların hangi ip adresinden geldiğine bakıp izin verilen adres ise connect’ inı kurmasını sağlayıp, farklı bir ip (bizim tanımlamadığımız bir ip)  adresinden ise kullanıcıya hata dönüp sisteme connection kurmasına izin vermemektedir. 

CREATE OR REPLACE TRIGGER  kamil.logon_trigger
   AFTER LOGON ON DATABASE
BEGIN
   IF     SYS_CONTEXT ('USERENV', 'SESSION_USER') IN
              ( 'KAMIL')
      AND SYS_CONTEXT ('USERENV', 'IP_ADDRESS') NOT IN
                                             ('192.168.2.50', '192.168.2.49', '192.168.2.48’)
   THEN
      raise_application_error
           (-20003,
            'Erişim engellendi! Lütfen Veritabanı Yöneticileriyle görüşünüz.'
           );
   ELSIF SYS_CONTEXT ('USERENV', 'SESSION_USER') IN
              ('HAKAN')
      AND SYS_CONTEXT ('USERENV', 'IP_ADDRESS') NOT IN
                                             ('192.168.2.47', '192.168.2.46', '192.168.2.45')
   THEN
      raise_application_error
           (-20003,
            'Erişim engellendi! Lütfen Veritabanı Yöneticileriyle görüşünüz.'
           );
   END IF;
END;

Yukarıda örneğimizde KAMIL userının sisteme connect olabilmesi için 192.168.2.50-49-48 nolu ip’ lerden HAKAN kullanıcısının da 192.168.2.47-46-45 nolu ip adreslerinden gelmesi gerekmektedir. 



Kamil TÜRKYILMAZ 

Hiç yorum yok: