實用腳本--使用觸發(fā)器實現(xiàn)限制用戶IP登錄
概述
很多時候我們想實現(xiàn)限制某個IP段登錄數(shù)據(jù)庫,比較常用的是用觸發(fā)器來實現(xiàn),這里大致介紹下。
觸發(fā)器實現(xiàn)
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; /
說明:該觸發(fā)器對用戶EPAY_USER進行了IP限制(只允許'192.168.219.20','192.168.219.22',如果需要設(shè)置IP段,用%或?代替即可,如'192.168.219.%‘)。
測試驗證
1)從非允許IP地址登陸 (192.168.219.21),連接失敗
2)從允許IP地址登陸(192.168.219.22),連接成功
3)從本地登陸(192.168.219.23)不受IP限制影響,連接成功
這個觸發(fā)器還是挺好用的,大家有空也可以自己測試一下。后面會分享更多devops和DBA方面的內(nèi)容,感興趣的朋友可以關(guān)注一下~
