日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001

發(fā)布時(shí)間:2023/12/18 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Oracle特定用戶登錄失敗案例 ORA-20001

昨晚收到開發(fā)的郵件,說使用PL/SQL DEV登錄數(shù)據(jù)庫時(shí),出現(xiàn)如下錯(cuò)誤,要求處理下:

看到這個(gè)錯(cuò)誤我也比較郁悶,沒碰到過這種情況。于是手工創(chuàng)建了一個(gè)測試用戶scott,發(fā)現(xiàn)遠(yuǎn)程登錄沒有問題的。此時(shí)考慮應(yīng)該是數(shù)據(jù)庫中有些用戶限制了登錄的。再看錯(cuò)誤編號:ORA-20001,Oracle保留的異常錯(cuò)誤號范圍為-20999到-20000,提供給用戶自定義異常使用的,這進(jìn)一步確認(rèn)了數(shù)據(jù)庫的一些用戶被做了限制的。那到底做了哪些限制呢?

通常有兩種方法:

(1)在sqlnet.ora文件中配置,比如:

限制IP地址192.168.131.109對數(shù)據(jù)庫的訪問

在sqlnet.ora文件中添加如下內(nèi)容:

tcp.validnode_checking=yes

tcp.invited_nodes=(192.168.130.11)

tcp.excluded_nodes=(192.168.131.109)

第一行的含義:啟用IP限制功能;

第二行的含義:允許訪問數(shù)據(jù)庫的IP地址列表,多個(gè)IP地址使用逗號分開,此例中我們寫入數(shù)據(jù)庫服務(wù)器的IP地址;

第三行的含義:禁止訪問數(shù)據(jù)庫的IP地址列表,多個(gè)IP地址使用逗號分開,此處我們寫入欲限制的IP地址192.168.131.109。

然后重啟監(jiān)聽生效。

(2)使用trigger

在trigger中定義,哪些IP及哪些用戶能夠遠(yuǎn)程登錄數(shù)據(jù)庫。

說明:使用profile是不能做到限制IP登錄的。

很明顯,方法(1)不能自定義錯(cuò)誤號:ORA-20001,而使用方法(2)trigger中可以定義錯(cuò)誤號,很有可能使用的是trigger,于是查看:

select t.owner,t.trigger_name,t.triggering_event,t.table_owner,t.status,t.trigger_body,t.description from dba_triggers t where t.triggering_event like '%LOGON%';

果然是使用trigger限制登錄IP及用戶的。

trigger_body:

DECLARE

ipaddr VARCHAR2(30);

BEGIN

SELECT sys_context('userenv', 'ip_address') INTO ipaddr FROM dual;

IF ipaddr not in ('192.168.131.54','192.168.131.55','192.168.131.97','192.168.131.60','192.168.131.61','192.168.131.63','192.168.131.64','192.168.131.62','192.168.131.65','192.168.131.95','192.168.131.57','192.168.131.58','192.168.131.59','192.168.131.94','192.168.131.93','192.168.105.94','192.168.105.95','192.168.105.96','192.168.105.98','192.168.105.99','192.168.105.65') THEN

raise_application_error('-20001', 'You can not login,Please contact administrator');

END IF;

END disablelogin_userdb1;

最后給出的建議:

可以以mtdb(另一個(gè)用戶,沒有做限制)登錄 訪問加用戶前綴,或者去除觸發(fā)器(不建議)。

總結(jié)

以上是生活随笔為你收集整理的linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。