适用于
--------
Oracle Net Services
本文信息适用于所有平台
实用性检查于8-OCT-2009
--------
Oracle Net Services
本文信息适用于所有平台
实用性检查于8-OCT-2009
目标
-----
如何设置10g和新增监听密码,通过默认OS机制存放。
在Oracle 10g和新监听中,监听对外是安全的,不需要设置监听密码去限制LSNRCTL命令的执行权限。
从10g开始,监听采用本地OS认证。当执行LSNRCTL特权命令(stop、status等)时,如果用户与启动监听的用户是同一个,则该用户具有正在运行监听的所有管理权限,不需要提供密码。
-----
如何设置10g和新增监听密码,通过默认OS机制存放。
在Oracle 10g和新监听中,监听对外是安全的,不需要设置监听密码去限制LSNRCTL命令的执行权限。
从10g开始,监听采用本地OS认证。当执行LSNRCTL特权命令(stop、status等)时,如果用户与启动监听的用户是同一个,则该用户具有正在运行监听的所有管理权限,不需要提供密码。
该安全特性被默认启用,在监听启用或者执行LSNRCTL STATUS命令时可以通过如下显示确认:
Security ON: Local OS Authentication
如果oracle用户启动了TNSListener,之后用户sales尝试管理监听,或者其他节点的oracle用户尝试管理监听,会有如下错误显示:
TNS-01190: The user is not authorized to execute the requested listener command
以下命令都是特权命令:
SAVE_CONFIG, STOP, TRACE, SPAWN, RELOAD,
SET {LOG_FILE, LOG_STATUS, INBOUND_CONNECT_TIMEOUT, SAVE_CONFIG_STOP_ON,
TRC_FILE, TRC_LEVEL, LOG_DIRECTORY, STARTUP_WAITTIME}
TRC_FILE, TRC_LEVEL, LOG_DIRECTORY, STARTUP_WAITTIME}
SHOW {RULES, TRC_DIRECTORY, LOG_FILE, LOG_STATUS, INBOUND_CONNECT_TIMEOUT,
SNMP_VISIBLE, TRC_FILE, TRC_LEVEL, LOG_DIRECTORY, STARTUP_WAITTIME,
SAVE_CONFIG_STOP_ON}
SNMP_VISIBLE, TRC_FILE, TRC_LEVEL, LOG_DIRECTORY, STARTUP_WAITTIME,
SAVE_CONFIG_STOP_ON}
解决方案
----------
监听设置密码之后,一些其他用户想要管理必须通过密码验证,例如,oracle用户设置了一个加密口令,用户sales想要停止监听:
oracle用户设置加密口令:
1) LSNRCTL> set current_listener
2) LSNRCTL> change_password
Old password:
New password: 10glistener (内容不会明文显示)
Reenter new password: 10glistener (内容不会明文显示)
3) LSNRCTL> save_config
4) LSNRCTL> status
1) LSNRCTL> set current_listener
2) LSNRCTL> change_password
Old password:
New password: 10glistener (内容不会明文显示)
Reenter new password: 10glistener (内容不会明文显示)
3) LSNRCTL> save_config
4) LSNRCTL> status
STATUS output will now show:
Security ON: Password or Local OS Authentication
Security ON: Password or Local OS Authentication
sales用户登录,输入密码管理监听:
1) LSNRCTL> set password
Password: 10glistener (内容不会明文显示)
2) LSNRCTL> stop