oracle远程关闭监听器,为监听设置密码防止远端关闭监听

数据库的帐号需要密码进行保护,监听同样需要设置密码进行保护,否则就会留下安全隐患。

监听是操作系统上启动的进程,负责将用户的请求连接到Oracle的实例上。一旦监听被关闭,数据库服务器以外的用户将无法正常登陆数据库。

监听命令可以通过配置本地监听参数文件listener.ora来达到获取远端监听信息,甚至关闭远端监听的能力。

本地监听环境的设置如下:

# LISTENER.ORA Network Configuration File: E:oracleoracle920networkadminlistener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = ytk-thinkpad)(PORT = 1521))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = E:oracleoracle920)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = ytk92.ytk_thinkpad)

(ORACLE_HOME = E:oracleoracle920)

(SID_NAME = ytk92)

)

)

LISTENER1 =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.1.100)(PORT = 1521))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

)

其中LISTENER1的设置是手工添加的远端配置,目前远端监听已经启动,下面就可以通过指定LISTENER1来获取远端监听的状态,甚至关闭远端监听:

E:>ipconfig

Windows IP Configuration

Ethernet adapter无线网络连接2:

Connection-specific DNS Suffix . :

IP Address. . . . . . . . . . . . : 172.25.13.100

Subnet Mask . . . . . . . . . . . : 255.255.0.0

Default Gateway . . . . . . . . . : 172.25.13.1

Ethernet adapter本地连接:

Media State . . . . . . . . . . . : Media disconnected

Ethernet adapter本地连接2:

Media State . . . . . . . . . . . : Media disconnected

E:>%ORACLE_HOME%/bin/lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.4.0 - Production on 07-5月-2008 00:00

:44

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

欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> status listener1正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.1.100)(PORT=1521)))

LISTENER的STATUS

------------------------别名LISTENER版本TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Produc

tion启动日期07-5月-2008 00:01:30正常运行时间0天0小时3分49秒跟踪级别off安全性OFF

SNMP OFF监听器参数文件F:oracleora92networkadminlistener.ora监听器日志文件F:oracleora92networkloglistener.log监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))服务摘要..服务"PLSExtProc"包含1个例程。例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...服务"dicsys.YANGTINGKUN"包含1个例程。例程"DICSYS",状态UNKNOWN,包含此服务的1个处理程序...服务"test.yangtingkun"包含1个例程。例程"test",状态UNKNOWN,包含此服务的1个处理程序...服务"test1"包含1个例程。例程"test1",状态UNKNOWN,包含此服务的1个处理程序...服务"test2"包含1个例程。例程"test2",状态UNKNOWN,包含此服务的1个处理程序...服务"test3"包含1个例程。例程"test3",状态UNKNOWN,包含此服务的1个处理程序...服务"test4"包含1个例程。例程"test4",状态UNKNOWN,包含此服务的1个处理程序...服务"test5"包含1个例程。例程"test5",状态UNKNOWN,包含此服务的1个处理程序...服务"testst"包含1个例程。例程"testst",状态UNKNOWN,包含此服务的1个处理程序...服务"yangtk.yangtingkun"包含1个例程。例程"yangtk",状态UNKNOWN,包含此服务的1个处理程序...命令执行成功LSNRCTL> stop listener1正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.1.100)(PORT=1521)))命令执行成功

通过这个例子可以看到,只需要知道远端数据库的地址和监听端口,就可以通过配置来关闭远端的监听。这存在很大的安全隐患。

解决的方法是为监听设置密码,方法如下:

F:>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.4.0 - Production on 07-5月-2008 00:15

:36

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

欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> start启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Production系统参数文件为F:oracleora92networkadminlistener.ora写入F:oracleora92networkloglistener.log的日志信息监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))

LISTENER的STATUS

------------------------别名LISTENER版本TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Produc

tion启动日期07-5月-2008 00:15:38正常运行时间0天0小时0分0秒跟踪级别off安全性OFF

SNMP OFF监听器参数文件F:oracleora92networkadminlistener.ora监听器日志文件F:oracleora92networkloglistener.log监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))服务摘要..服务"PLSExtProc"包含1个例程。例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...服务"dicsys.YANGTINGKUN"包含1个例程。例程"DICSYS",状态UNKNOWN,包含此服务的1个处理程序...服务"test.yangtingkun"包含1个例程。例程"test",状态UNKNOWN,包含此服务的1个处理程序...服务"test1"包含1个例程。例程"test1",状态UNKNOWN,包含此服务的1个处理程序...服务"test2"包含1个例程。例程"test2",状态UNKNOWN,包含此服务的1个处理程序...服务"test3"包含1个例程。例程"test3",状态UNKNOWN,包含此服务的1个处理程序...服务"test4"包含1个例程。例程"test4",状态UNKNOWN,包含此服务的1个处理程序...服务"test5"包含1个例程。例程"test5",状态UNKNOWN,包含此服务的1个处理程序...服务"testst"包含1个例程。例程"testst",状态UNKNOWN,包含此服务的1个处理程序...服务"yangtk.yangtingkun"包含1个例程。例程"yangtk",状态UNKNOWN,包含此服务的1个处理程序...命令执行成功LSNRCTL> change_password

Old password:

New password:

Reenter new password:正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))

LISTENER的口令已更改命令执行成功LSNRCTL> set password

Password:命令执行成功LSNRCTL> save_config正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))保存的LISTENER配置参数。监听器参数文件F:oracleora92networkadminlistener.ora旧的参数文件F:oracleora92networkadminlistener.bak命令执行成功

由于设置了密码,以后无论是本地还是远端执行类似LSNRCTL STOP或者SAVE_CONFIG等操作都会提示输入密码。

以后本地的关闭监听操作为:

LSNRCTL> exit

F:>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.4.0 - Production on 07-5月-2008 00:19

:55

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

欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> stop正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))

TNS-01169:监听器尚未识别口令LSNRCTL> set password

Password:命令执行成功LSNRCTL> stop正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))命令执行成功LSNRCTL> start启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Production系统参数文件为F:oracleora92networkadminlistener.ora写入F:oracleora92networkloglistener.log的日志信息监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))

LISTENER的STATUS

------------------------别名LISTENER版本TNSLSNR for 32-bit Windows: Version 9.2.0.4.0 - Produc

tion启动日期07-5月-2008 00:20:20正常运行时间0天0小时0分0秒跟踪级别off安全性ON

SNMP OFF监听器参数文件F:oracleora92networkadminlistener.ora监听器日志文件F:oracleora92networkloglistener.log监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))服务摘要..服务"PLSExtProc"包含1个例程。例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...服务"dicsys.YANGTINGKUN"包含1个例程。例程"DICSYS",状态UNKNOWN,包含此服务的1个处理程序...服务"test.yangtingkun"包含1个例程。例程"test",状态UNKNOWN,包含此服务的1个处理程序...服务"test1"包含1个例程。例程"test1",状态UNKNOWN,包含此服务的1个处理程序...服务"test2"包含1个例程。例程"test2",状态UNKNOWN,包含此服务的1个处理程序...服务"test3"包含1个例程。例程"test3",状态UNKNOWN,包含此服务的1个处理程序...服务"test4"包含1个例程。例程"test4",状态UNKNOWN,包含此服务的1个处理程序...服务"test5"包含1个例程。例程"test5",状态UNKNOWN,包含此服务的1个处理程序...服务"testst"包含1个例程。例程"testst",状态UNKNOWN,包含此服务的1个处理程序...服务"yangtk.yangtingkun"包含1个例程。例程"yangtk",状态UNKNOWN,包含此服务的1个处理程序...命令执行成功

这时远端尝试关闭监听就会报错并提示输入密码:

LSNRCTL> stop listener1正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.1.100)(PORT=1521)))

TNS-01169:监听器尚未识别口令

通过设置监听的密码,提高了系统的安全性。

从10g开始,Oracle增加了监听程序的安全性,即使不设置密码,也没有办法从远端关闭监听。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值