很多時候我們想實現限制某個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方面的内容,感興趣的朋友可以關注一下~
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!