為listener設定口令!

warehouse發表於2008-10-24
在windows的服務中stop listener口令不起作用,但是如果為listener設定了口令,那麼在lsnrctl中執行stop,save_config,change_password命令操作不論時local還是remote listener時都需要透過set password來輸入口令,只有口令正確才能執行上述命令。[@more@]

環境:9i

測試如下:

我事先已經為listener設定了口令system,為listener設定口令可以透過change_password命令,修改口令也是該命令。

--修改口令

LSNRCTL> change_password
Old password:輸入system
New password:輸入manager
Reenter new password:輸入manager
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
LISTENER的口令已更改
命令執行成功

--儲存時要求輸入口令了
LSNRCTL> save_config
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL> set password
Password:--此時輸入system,結果下面的save_config沒有執行成功,因為上面修改口令已經生效了
命令執行成功
LSNRCTL> save_config
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL> set password
Password:--輸入修改後的口令manager
命令執行成功
LSNRCTL> save_config
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
儲存的LISTENER配置引數。
監聽器引數檔案 C:oracleora92networkadminlistener.ora
舊的引數檔案C:oracleora92networkadminlistener.bak
命令執行成功
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
命令執行成功
LSNRCTL> exit

C:>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 24-1月 -2008 20:53
:35

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

歡迎來到LSNRCTL,請鍵入"help"以獲得資訊。

LSNRCTL> start
啟動tnslsnr:請稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
系統引數檔案為C:oracleora92networkadminlistener.ora
寫入C:oracleora92networkloglistener.log的日誌資訊
監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC0ipc)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
啟動日期 24-1月 -2008 20:53:39
正常執行時間 0 天 0 小時 0 分 2 秒
跟蹤級別 off
安全性 ON
SNMP OFF
監聽器引數檔案 C:oracleora92networkadminlistener.ora
監聽器日誌檔案 C:oracleora92networkloglistener.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xys)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC0ipc)))
服務摘要..
服務 "db9i" 包含 1 個例程。
例程 "db9i", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功

--我們發現啟動並不需要口令,因為口令是存放在listener.ora檔案中,啟動時需要讀取listener.ora檔案,只有啟動listener之後才可以讀取口令,因此start無需口令,一旦啟動之後執行stop,save_config,change_password這些命令就需要口令驗證了。
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xys)(PORT=1522)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1012378/,如需轉載,請註明出處,否則將追究法律責任。

相關文章