linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001
Oracle特定用户登录失败案例 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下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001相关推荐
- ORACLE 触发器控制用户登录之权限限制
出于数据安全性,公司要求DBA实现控制拒绝特定的用户登录,由于公司不同的工作楼层分属于不同的vlan,因此单从linux主机层次依赖ACL访问列表控制登录数据库服务器,已经不能实现. 因此,只能考虑从 ...
- Oracle数据库用管理员登录,oracle数据库关于用户登录
本文主要向大家介绍了oracle数据库关于用户登录的问题,通过具体的内容向大家展现,希望对大家学习oracle数据库有所帮助. oracle 数据库的安装 : 一: 安装的时候可以设定解锁的用户 一 ...
- oracle通过sid远程登录,oracle怎么捕获用户登录信息,如SID,IP地址等
可以利用登录触发器,如 CREATE OR REPLACE TRIGGER tr_login_record AFTER logon ON DATABASE DECLARE miUserSid NUMB ...
- Linux下scp无密码上传 下载 文件 目录的方法
这篇文章主要介绍了Linux下scp无密码上传 下载 文件 目录的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在Linux下远程备份的时候,需要配置scp的 无密码复制文件.目录.就把这个 ...
- Linux下向GitHub 上传代码
Linux下向GitHub 上传代码 1.先在Github个人主页创建一个仓库 2.在根目录下,复制仓库链接,将仓库复制到本地 git clone https://gitclone.com/githu ...
- Linux下shell脚本实战之批量新建用户
Linux下shell脚本实战之批量新建用户 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.使用提供的user.txt用户列表 2.批量新建us ...
- 微信小程序同一个登录按钮上触发获取微信用户信息和电话号码
微信小程序同一个登录按钮上触发获取微信用户信息和电话号码 因为微信小程序获取用户信息getuserinfo方法和获取电话号码open-type="getPhoneNumber" @ ...
- html用户登录页面设计,简洁时尚的用户登录界面设计效果
这是一款简洁时尚的用户登录界面设计效果.该用户登录效果使用CSS和JS来完成,它使用元素滑动效果来制作登录表单动画,字体效果时尚大方,是非常不错的用户登录界面UI设计效果. 使用方法 HTML结构 该 ...
- Linux空间过满无法登录,linux下磁盘空间不足导致oracle无法登录的解决方案
问题:oracle突然无法登录成功 原因:发现是磁盘空间不足,而且oracle被关闭了 解决方案如下: 1.确定oracle安装在哪台linux机器,并登录 2.查看磁盘使用情况 : df ...
- oracle禁用系统用户登录,关闭系统 - 在 x86 平台上引导和关闭 Oracle Solaris
关闭系统 以下过程和示例说明如何使用 shutdown 和 init 命令关闭系统. 如何确定登录到系统的用户 对于作为多用户分时系统的 Oracle Solaris 系统,关闭系统前可能需要确定是否 ...
最新文章
- [置顶] 我整理的一些常用网址
- Android 抽屉效果的导航菜单实现
- kill bill 杀死比尔盖茨比尔克林顿在人心中的位置..
- html抽奖源码_开源FPGA开发板OpenICE 介绍及抽奖
- JAVA 实现FTP功能_Java实现FTP上传下载功能
- 1056. 组合数的和(15)
- 《Effective Java》—— 对于所有对象都通用的方法
- [转] Lodash
- Struts项目中前端页面向后台页面传参中文出现乱码(Get请求)
- 对waitpid 的学习
- poj3984(经典dfs)
- win32汇编实现一个简单的TCP服务端程序(WinSock的简单认知应用)
- 十大OpenGL教程
- vtk相机_VTK相机参数
- python 华泰股票交易接口_TradeApi 自带资金管理的A股程序化交易接口
- 清除浮动解决高度坍塌的5种方法 以及兼容IE
- steam饥荒服务器为什么显示未响应,《饥荒:联机版》服务器卡顿原因分析及解决教程...
- flex的常用用法二十条
- 虚幻引擎5.1现已发布!
- c++ 隐藏和显示标题栏
热门文章
- Hacking EV3系列之七:iPhone 手势无线控制LEGO EV3 Gyro Boy 机器人
- 37.WLAN Qos介绍
- 祝贺光环2014年6月28日PMP考试通过率90.28%
- [BJWC2008]王之财宝
- android+串口+键盘,串口转USB HID键盘鼠标方案
- 我国IPTV研究目前已达到全球领先水平
- 华为nova 2 Plus魔镜版语音助手逗趣玩不停
- 设计模式之美 精华总结 笔记(一)
- 缓存面试五连击(下篇)
- 北京外国语大学计算机考研,北京外国语大学考研难吗?一般要什么水平才可以进入?...