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.

Be Sociable, Share!

Bir cevap yazın

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


+ yedi = 10