最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle特定用户登录失败案例ORA-20001

来源:懂视网 责编:小采 时间:2020-11-09 10:47:23
文档

Oracle特定用户登录失败案例ORA-20001

Oracle特定用户登录失败案例ORA-20001:手工创建了一个测试用户scott,发现远程登录没有问题的。此时考虑应该是数据库中有些用户限制了登录的。再看错误编号:ORA-20001 昨晚收到开发的邮件,说使用PL/SQL DEV登录数据库时,出现如下错误,要求处理下: 看到这个错误我也比较郁闷,没碰到过这种
推荐度:
导读Oracle特定用户登录失败案例ORA-20001:手工创建了一个测试用户scott,发现远程登录没有问题的。此时考虑应该是数据库中有些用户限制了登录的。再看错误编号:ORA-20001 昨晚收到开发的邮件,说使用PL/SQL DEV登录数据库时,出现如下错误,要求处理下: 看到这个错误我也比较郁闷,没碰到过这种

手工创建了一个测试用户scott,发现远程登录没有问题的。此时考虑应该是数据库中有些用户限制了登录的。再看错误编号:ORA-20001

昨晚收到开发的邮件,说使用PL/SQL DEV登录数据库时,出现如下错误,要求处理下:

看到这个错误我也比较郁闷,没碰到过这种情况。于是手工创建了一个测试用户scott,,发现远程登录没有问题的。此时考虑应该是数据库中有些用户限制了登录的。再看错误编号:ORA-20001,Oracle保留的异常错误号范围为-20999到-20000,提供给用户自定义异常使用的,这进一步确认了数据库的一些用户被做了限制的。那到底做了哪些限制呢?
通常有两种方法:
(1)在sqlnet.ora文件中配置,比如:
限制IP地址192.168.131.109对数据库的访问
在sqlnet.ora文件中添加如下内容:
tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.130.11)
tcp.excluded_nodes=(192.168.131.109)

第一行的含义:启用IP限制功能;
第二行的含义:允许访问数据库的IP地址列表,多个IP地址使用逗号分开,此例中我们写入数据库服务器的IP地址;
第三行的含义:禁止访问数据库的IP地址列表,多个IP地址使用逗号分开,此处我们写入欲限制的IP地址192.168.131.109。
然后重启监听生效。

(2)使用trigger
在trigger中定义,哪些IP及哪些用户能够远程登录数据库。

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

很明显,方法(1)不能自定义错误号:ORA-20001,而使用方法(2)trigger中可以定义错误号,很有可能使用的是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(另一个用户,没有做限制)登录 访问加用户前缀,或者去除触发器(不建议)。

linux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Oracle特定用户登录失败案例ORA-20001

Oracle特定用户登录失败案例ORA-20001:手工创建了一个测试用户scott,发现远程登录没有问题的。此时考虑应该是数据库中有些用户限制了登录的。再看错误编号:ORA-20001 昨晚收到开发的邮件,说使用PL/SQL DEV登录数据库时,出现如下错误,要求处理下: 看到这个错误我也比较郁闷,没碰到过这种
推荐度:
标签: 登录 用户 错误
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top