實用腳本--使用觸發器實現限制用戶IP登錄
概述
很多時候我們想實現限制某個IP段登錄數據庫,比較常用的是用觸發器來實現,這裏大致介紹下。
觸發器實現
create or replace trigger logon_ip_control
after logon on database
declare
ip STRING(30);
user STRING(30);
begin
SELECT SYS_CONTEXT('USERENV','SESSION_USER') into user from dual;
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') into ip from dual;
if user='NWPP'
THEN
IF ip not in ('192.168.219.20','192.168.219.22')
THEN raise_application_error(-20001,'User '||user||' is not allowed to connect from '||ip);
END IF;
END IF;
end;
/
說明:該觸發器對用戶EPAY_USER進行了IP限制(只允許'192.168.219.20','192.168.219.22',如果需要設置IP段,用%或?代替即可,如'192.168.219.%‘)。
測試驗證
1)從非允許IP地址登陸 (192.168.219.21),連接失敗
2)從允許IP地址登陸(192.168.219.22),連接成功
3)從本地登陸(192.168.219.23)不受IP限制影響,連接成功
這個觸發器還是挺好用的,大家有空也可以自己測試一下。後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~