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.
Hiç yorum yok:
Yorum Gönder