oracle10g的监听安全管理机制和oracle9i有很大的变化,listener的安全机制使用了password方式和local os authentication方式,在
oracle10g的监听安全管理机制和oracle9i有很大的变化,listener的安全机制使用了password方式和local os authentication方式,在使用了local os authentication方式下,即使是设置了监听密码,对于启动监听的用户来说,也是可以不需要任何密码就可以停止监听的。如没有在listener.ora文件里特殊设置的话,oracle10g的监听默认是采用local os authentication安全认证方式的。所以在这种情况下,即使你创建了监听密码,也可以不需要输入密码就可以停止监听。
oracle10g具体采用哪种监听认证方式,可以从listener的启动和lsnrctl status中看到,例如:
lsnrctl> status
正在连接到 (description=(address=(protocol=ipc)(key=extproc1)))
listener 的 status
------------------------
别名 listener
版本 tnslsnr for 32-bit windows: version 10.2.0.1.0 - produ
ction
启动日期 12-5月 -2011 18:55:40
正常运行时间 0 天 0 小时 13 分 2 秒
跟踪级别 off
安全性 on: password or local os authentication
snmp off
监听程序参数文件 c:/oracle/product/10.2.0/db_1/network/admin/listener.o
ra
监听程序日志文件 c:/oracle/product/10.2.0/db_1/network/log/listener.log
。。。。。
从上面的内容“安全性” 可以了解到,监听安全认证的方式是:password or local os authentication
那如何让oracle10g采用passwod的方式的?只需要在listener.ora文件中添加:local_os_authentication_[listener name] = off
例如,我现在,,在我的listener.ora文件里添加 local_os_authentication_listener = off
文件内容如下:
# listener.ora network configuration file: c:/oracle/product/10.2.0/db_1/network/admin/listener.ora
# generated by oracle configuration tools.
###skate add
local_os_authentication_listener = off
sid_list_listener =
(sid_list =
(sid_desc =
(sid_name = plsextproc)
(oracle_home = c:/oracle/product/10.2.0/db_1)
(program = extproc)
)
)
listener =
(description_list =
(description =
(address = (protocol = ipc)(key = extproc1))
(address = (protocol = tcp)(host = lenovev001)(port = 1521))
)
)
。。。。。。
修改之后,在像oracle9i里那样设置监听密码,这回就需要输入密码验证了,采用了password的认证方式了,例如
lsnrctl> service
正在连接到 (description=(address=(protocol=ipc)(key=extproc1)))
服务摘要..
服务 plsextproc 包含 1 个例程。
例程 plsextproc, 状态 unknown, 包含此服务的 1 个处理程序...
处理程序:
dedicated 已建立:0 已被拒绝:0
local server
服务 orcl 包含 1 个例程。
例程 orcl, 状态 ready, 包含此服务的 1 个处理程序...
处理程序:
dedicated 已建立:0 已拒绝:0 状态:ready
local server
。。。。。。
命令执行成功
lsnrctl> quit
c:/documents and settings/administrator>lsnrctl
lsnrctl for 32-bit windows: version 10.2.0.1.0 - production on 12-5月 -2011 19:1
8:05
copyright (c) 1991, 2005, oracle. all rights reserved.
欢迎来到lsnrctl, 请键入help以获得信息。
lsnrctl> service
正在连接到 (description=(address=(protocol=ipc)(key=extproc1)))
tns-01169: 监听程序尚未识别口令
lsnrctl> set password
password:
命令执行成功
lsnrctl> service
正在连接到 (description=(address=(protocol=ipc)(key=extproc1)))
服务摘要..
服务 plsextproc 包含 1 个例程。
例程 plsextproc, 状态 unknown, 包含此服务的 1 个处理程序...
处理程序:
dedicated 已建立:0 已被拒绝:0
local server
。。。。。。
命令执行成功
lsnrctl>
---end----