Oracle 监听器密码设置方法(LISTENER)

监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从而造成任意新的会话都将无法建立连接。在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理。也容易导致数据库受到损坏。

1. 未设定密码情形下停止监听

[oracle@test ~]$ lsnrctl stop listener_demo92  -->停止监听,可以看出不需要任何密码即可停止 

LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 08:22:26          

Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.             

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
The command completed successfully 

2. 重新启动监听并设置密码

[oracle@test ~]$ lsnrctl                                                 

LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 08:24:09
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.                            

Welcome to LSNRCTL, type "help" for information.
LSNRCTL> set current_listener listener_demo92 -->设置当前监听器
Current Listener is listener_demo92
LSNRCTL> start       -->启动过程也不需要任何密码,启动的详细信息省略
LSNRCTL> change_password  -->使用change_password来设置密码
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
Password changed for listener_demo92
The command completed successfully
LSNRCTL> save_config    -->注意此处的save_config失败
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
TNS-01169: The listener has not recognized the password
LSNRCTL> set password    -->输入新设定的密码验证
Password:
The command completed successfully
LSNRCTL> save_config    -->再次save_config成功
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
Saved listener_demo92 configuration parameters.
Listener Parameter File  /oracle/92/network/admin/listener.ora
Old Parameter File  /oracle/92/network/admin/listener.bak
The command completed successfully                                            

-->增加密码之后可以看到listener.ora文件中有一条新增的记录,即密码选项(注:尽管使用了密码管理方式,仍然可以无需密码启动监听)
[oracle@test admin]$ more listener.ora
	#----ADDED BY TNSLSNR 26-JUN-2011 05:12:48---
	PASSWORDS_listener_demo92 =
	#--------------------------------------------

3. 尝试未使用密码的情况下停止监听

[oracle@test ~]$ lsnrctl stop listener_demo92
LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 26-JUN-2011 06:09:51
Copyright (c) 1991, 2006, Oracle Corporation. All rights reserved.             

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
TNS-01169: The listener has not recognized the password  -->收到错误信息,需要使用密码认证

4. 使用密码来停止监听

[oracle@test ~]$ lsnrctl
LSNRCTL> set current_listener listener_demo92
Current Listener is listener_demo92
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
TNS-01169: The listener has not recognized the password
LSNRCTL> set password
Password:
The command completed successfully
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
The command completed successfully
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
 TNS-00511: No listener
  Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
 TNS-00511: No listener
  Linux Error: 2: No such file or directory

5. save_config失败的问题

-->在 Oracle 9i中,使用save_config命令将会失败
	LSNRCTL> save_config
	Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=<port>)))
	TNS-01169: The listener has not recognized the password	                               

-->应该先使用set password之后再save_config,则保存配置成功。
	LSNRCTL> set password
	Password: <the password you chose>
	The command completed successfully
/*在Oracle 10g 中不会出现类似的问题,因为在10g中可以使用基于操作系统验证方式。listener将检测到如果用户属于dba组的成员,
将会被授予改变密码,保存配置以及停止监听等权限。 */

6. 配置listener.ora中ADMIN_RESTRICTIONS参数

参数作用:
当在listener.ora文件中设置了ADMIN_RESTRICTIONS参数后,在监听器运行时,不允许执行任何管理命令,同时set命令将不可用
,不论是在服务器本地还是从远程执行都不行。此时对于监听的设置仅仅通过手工修改listener.ora文件,要使修改生效,只能
使用lsnrctl reload命令或lsnrctl stop/start命令重新载入一次监听器配置信息。
修改方法:
在listener.ora文件中手动加入下面这样一行
ADMIN_RESTRICTIONS_<监听器名> = ON

下面是其它网友的补充:

LSNRCTL> change_password
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
Password changed for LISTENER
The command completed successfully
LSNRCTL> set password
Password:
The command completed successfully
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Old Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.bak
The command completed successfully
[oracle@ecp-uc-db1 admin]$ cat listener.ora
#—-ADDED BY TNSLSNR 10-JUN-2011 18:13:24—
PASSWORDS_LISTENER = 6D7AA003392C436A
#——————————————–
note:10g数据库上需要上添加(重启监听)
LOCAL_OS_AUTHENTICATION_LISTENER = OFF

1、添加LOCAL_OS_AUTHENTICATION_LISTENER = OFF之前

Security ON: Password or Local OS Authentication

2、添加LOCAL_OS_AUTHENTICATION_LISTENER = OFF之后

Security ON: Password
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
TNS-01169: The listener has not recognized the password
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
TNS-01169: The listener has not recognized the password
LSNRCTL> set password 123456
The command completed successfully
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp-uc-db1)(PORT=1521)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.4.0 – Production
Start Date 10-JUN-2011 18:15:49
Uptime 0 days 0 hr. 1 min. 16 sec
Trace Level off
Security ON: Password
SNMP OFF
Listener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /opt/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ECP-UC-DB1)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary…
Service “PLSExtProc” has 1 instance(s).
Instance “PLSExtProc”, status UNKNOWN, has 1 handler(s) for this service…
Service “ecp” has 1 instance(s).
Instance “ecp”, status READY, has 1 handler(s) for this service…
Service “ecpXDB” has 1 instance(s).
Instance “ecp”, status READY, has 1 handler(s) for this service…
Service “ecp_XPT” has 1 instance(s).
Instance “ecp”, status READY, has 1 handler(s) for this service…
The command completed successfully

(0)

相关推荐

  • Oracle监听器被优化大师挂掉后的完美解决方法

    Oracle监听器被优化大师挂掉后的解决方法: 在启动oracleorahome90tnslistener服务 时出错,信息: 在本地计算机无法启动oracleorahome90tnslistener服务, 错误3:系统找不到指定路径. 我在网上查资料后,发现一般这些文件的位置由注册表的 ORACLE_HOME 变量决定. 先看一看注册表中 HKEY_LOACL_MACHINE/ SOFTWARE/ORACLE 下的 ORACLE_HOME值 如果没有这个值 ,那你一定要添加进去. ORACLE

  • Oracle安装监听器错误的解决方法

    小白在搭载环境时,经常遇到的一个问题就是数据库安装错误,其中Oracle监听器的错误是经常出现的一个错误,搞不好还要重装系统.下面我就总结一下解决监听器配置问题的三个方法. 一.删除监听器重新配置 在cmd命令栏,sercices.msc查看服务,找到Oracle监听器,停止运行.找到配置和移植工具下的Net Configuration Assistant进行简单的删除再重新建一个即可,直接点击下一步(ps重新配置完成后需重启电脑). 二.重新配置IP地址 如果在服务中Oracle监听器已经打开

  • Oracle监听器服务不能启动的解决方法

    Oracle监听器服务不启动的时候可采取以下措施予以解决: 一.连接主机字符串,提示没有监听器 SVRMGR> connect internal/oracle@orcl: ORA-12541: TNS:no listener SVRMGR> 二.运行监听器,提示地址的协议专用组件指定不正确 在开始菜单运行中键入lsnrctl LSNRCTL for 32-bit Windows: Version 9.0.1.1.1 - Production on 08-6月 -2006 14:31:53 Co

  • Linux下重启oracle服务及监听器和实例详解

    一.在Linux下重启Oracle数据库及监听器: 方法1: 用root以ssh登录到linux,打开终端输入以下命令: cd $ORACLE_HOME #进入到oracle的安装目录 dbstart #重启服务器 lsnrctl start #重启监听器 cd $ORACLE_HOME #进入到oracle的安装目录 dbstart #重启服务器 lsnrctl start #重启监听器 ----------------------------------- 方法2: Sql代码 cd $OR

  • Oracle监听口令及监听器安全详解

    很多Oracle用户都知道,Oracle的监听器一直存在着一个安全隐患,假如对此不设置安全措施,那么能够访问的用户就可以远程关闭监听器. 相关示例如下: D:>lsnrctl stop eygle LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-11月-2007 10:02:40 Copyright (c) 1991, 2006, Oracle. All rights reserved. 正在连接到 (DESCR

  • Oracle 11g2的监听器配置教程

    Oracle的监听器服务注册方式有两种,分别为动态和静态.通过动态注册的服务在lsnrctl status时显示的状态为ready,静态的服务为unknown. 11g2以前的版本,监听器通过listener.ora文件进行配置.在11g2版本中,监听器的配置方式发生了变化,增加了一个新的配置文件endpoints_listener.ora,并且此文件和原来的listener.ora文件都转移到$GRID_HOME/network/admin目录下了. 11g2的监听器的配置信息保存在$GRID

  • Oracle 监听器密码设置方法(LISTENER)

    监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从而造成任意新的会话都将无法建立连接.在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理.也容易导致数据库受到损坏. 1. 未设定密码情形下停止监听 [oracle@test ~]$ lsnrctl stop listener_demo92 -->停止监听,可以看出不需要任何密码即可停止 LSNRCTL fo

  • Linux环境下Oracle安装参数设置方法详解

    前面讲了虚拟机的设置和OracleLinux的安装,接下来我们来说下Oracle安装前的准备工作. 1.系统信息查看 系统信息查看 首先服务器ip:192.168.8.120 服务器系统:Oracle Linux Server release 6.5 服务器主机名:oracle-learn 查看磁盘空间情况: [root@oracle-learn ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 32G 4.8G 26G

  • Linux下root初始密码设置方法

    Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定. 以安装ubuntu时输入的用户名登陆,该用户在admin组中,有权限给root设定密码. 给root用户设置密码的具体步骤: 1. 打开一个terminal,然后输入下面的命令 sudo passwd root 回车后会出现让你输入原始密码,新密码和确认密码: [sudo] password for you: ---> 输入你的密码(你现在这个用户的密码) Enter new UNIX pass

  • window中oracle环境变量设置方法分享

    window server中Oracle的环境变量设置 1.右击"我的电脑"->选择"属性"->选择"高级"->单击"环境变量"2.选择"Path"这一行,单击"编辑",在"Path"的变量值文本框的最后面先加入一个分号":",然后再分号后面加入sqlplus文件的目录路径,如"C:\Program Files\orac

  • oracle 重置sys密码的方法介绍

    如何重置oracle 10g SYS 的密码 安装完oracle 10g后,竟然将安装时设置的系统密码忘记.在同事的帮助下通过一下方法解决. 1.oracle的密码文件存在于:oracle_home/database/pwd<sid>.ora 2.使用orapwd 重置SYS密码 C:oracleproduct10.2.0db_1database>orapwd Usage: orapwd file=<fname> password=<password> entri

  • Oracle用户密码设为不过期的两种方法

    1.在SQL Plus下,以DBA身份登陆 用户名/密码@服务器SID as sysdba 方法一:(注意必须用双引号把后面的引上) C:/Documents and Settings/ssy>sqlplus sys/system@test as sysdba SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 3月 17 18:01:41 2008 Copyright (c) 1982, 2002, Oracle Corporation. All r

  • PB7 连接 Oracle 的设置方法

    正在看的ORACLE教程是:PB7 连接 Oracle 的设置方法. 系统环境: 1.操作系统:Windows 2000 2.数据库: Oracle 8i R2 (8.1.6) for NT 企业版 3.安装路径:C:\ORACLE 访问方法: 1.首先安装好Oracle客户端应用程序,确保Oracle网络连通 配置C:\Oracle\Ora81\network\ADMIN\tnsnames.ora文件, 创建连接到服务器的数据库别名 注: 服务器端Oracle数据库实例名:oradb 服务器端

  • Oracle用户密码过期和用户被锁的解决方法

    今天正在上班的过程中,客户反映了他们的系统登录不了,经过我的一番检查,发现是因为数据库密码过期导致的,在网上查找相关资料发现还真有此种情况发生,在此顺便做了个整理,以便共同交流! 产生原因: 在oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. 在oracle11g中默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10次",当输入密码错误次数达到设置值将导致此问题. 解

  • linux服务器开机启动oracle的设置方法

    1.首先切换到Oracle用户 [oracle@oracletest ~]$ cd /u01/app/oracle/product/11.2.0/db_1/bin/ -----标红字体部分数据库可能不一样,有的是dbhome_1,以自己实际配置目录为准 [oracle@oracletest bin]$ vi dbstart LOGMSG="logger -puser.alert -s " trap 'exit' 1 2 3 # for script tracing case $ORAC

随机推荐