当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-05-20

    本文导语: 昨晚收到开发的邮件,说使用PL/SQL DEV登录数据库时,出现如下错误,要求处理下: 看到这个错误我也比较郁闷,没碰到过这种情况。于是手工创建了一个测试用户scott,发现远程登录没有问题的。此时考虑应该是数据库中有些...

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

Oracle特定用户登录失败案例 ORA-20001[图片]

看到这个错误我也比较郁闷,没碰到过这种情况。于是手工创建了一个测试用户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%';


Oracle特定用户登录失败案例 ORA-20001[图片]

果然是使用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(另一个用户,没有做限制)登录 访问加用户前缀,或者去除触发器(不建议)。

 


    
 
 

您可能感兴趣的文章:

  • 在ubuntu10.04上安装oracle11g失败
  • jsp文件连接oracle失败
  • Oracle 11G SELinux原因启动失败的解决办法
  • linux 4虚拟机下安装oracle 10g失败。
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • 解决oracle用户连接失败的解决方法
  • SOS!!!环境:Tomcat4+Oracle8i;链接数据库失败,请各位大虾帮忙指正
  • Oracle用户密码含特殊字符时登陆失败问题
  • oracle客户端PLSQL连接失败解决方法
  • 安装Oracle失败后是否一定要重装系统
  • rh9下安装oracle9.2失败,(确切说是在install完毕后的配置里面),救命!
  • Oracle Dataguard备库失败与主库响应测试
  • 浅析基于Oracle案例知识库设计
  • oracle使用sql脚本生成csv文件案例学习
  • Oracle案例:分析10053跟踪文件
  • Linux下Oracle常见安装错误总结及参考案例
  • Oracle PL/SQL入门案例实践
  • oracle—SQL技巧之(一)连续记录查询sql案例测试
  • Oracle案例详细分析:Job任务停止执行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 登录oracle数据库时密码忘记的解决方法
  • Oracle 10g各个帐号的访问权限、登录路径、监控状态命令查询等等
  • 学习登录oracle数据库时常用的操作命令
  • asp.net使用ODP即oracle连接方式的的防注入登录验证程序
  • Oracle限制IP登录
  • Oracle 10g的DBA无法登录解决方案
  • [Oracle] 如何使用触发器实现IP限制用户登录
  • Linux下安装Metasploit破解Oracle登录用户名密码
  • Oracle 登录产生了01033错误
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,