5 Şubat 2013 Salı

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  erdem.logon_trigger
   AFTER LOGON ON DATABASE
BEGIN
   IF     SYS_CONTEXT (‘USERENV’, ‘SESSION_USER’) IN ( ‘ERDEM’)
     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
              (‘ERDEM_1’)
      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 ERDEM userının sisteme connect olabilmesi için 192.168.2.50-49-48 nolu ip’ lerden ERDEM_1 kullanıcısının da 192.168.2.47-46-45 nolu ip adreslerinden gelmesi gerekmektedir.

Hiç yorum yok:

Yorum Gönder