設定listener 的安全機制

it_newbalance發表於2012-10-11
設定listener 的安全機制

設定listener password後,在LSNRCTL中執行stop或者save_config之前,需要使用set password指定密碼。

1.設定密碼
進入LSNRCTL:
LSNRCTL> change_password
Old password:
New password:
Reenter new password:
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
LISTENER的口令已更改
命令執行成功
LSNRCTL>
LSNRCTL> set password
Password:
命令執行成功
LSNRCTL> save_config
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
儲存的LISTENER配置引數。
監聽器引數檔案          D:\oracle\ora92\network\admin\listener.ora
舊的引數檔案D:\oracle\ora92\network\admin\listener.bak
命令執行成功
LSNRCTL>
LSNRCTL>exit


檢視listener.ora檔案中多出一段密碼的資訊:
#----ADDED BY TNSLSNR 10-1月 -2011 17:44:28---
PASSWORDS_LISTENER = 9954B30C9A1B9049
#---------------------------------------------


2.測試密碼
重新進入LSNRCTL:

LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL> save_config
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL>
LSNRCTL>
LSNRCTL> set password
Password:
命令執行成功
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
命令執行成功
LSNRCTL>

3.設定ADMIN_RESTRICTIONS_LISTENER
在listener.ora最後新增
ADMIN_RESTRICTIONS_LISTENER = on

這樣可以阻止在listener執行期間類似於set命令的修改,除非stop listener並且將該引數置為off的時候,才可以。
例如:
ADMIN_RESTRICTIONS_LISTENER = on

LSNRCTL> set log_file
Parameter Value: d:\a.log
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
TNS-12508: TNS:監聽器無法分解給定的 COMMAND
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
命令執行成功

修改ADMIN_RESTRICTIONS_LISTENER = off
LSNRCTL> start
啟動tnslsnr:請稍候...
......
命令執行成功
LSNRCTL> set log_file
Parameter Value: d:\a.log
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=CCBU-3038)(PORT=1521)))
LISTENER 引數 \log_file\ 被設為 d:\a.log
命令執行成功
LSNRCTL>  



如果密碼忘記,
1、修改listener.ora檔案,把ADMIN_RESTRICTIONS_LISTENER
/PASSWORDS_LISTENER那一行刪掉/註釋掉就可以吧

2、直接set password
C:\>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 01-3月 -2011 13:12
:45

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

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

LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL> start
啟動tnslsnr:請稍候...

Service OracleOraHome92TNSListener already running.
TNS-12536: TNS: 操作可能阻塞
TNS-12560: TNS: 協議介面卡錯誤
  TNS-00506: 操作可能阻塞
   32-bit Windows Error: 997: Unknown error
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-01169: 監聽器尚未識別口令
LSNRCTL> set password
Password:
命令執行成功
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
命令執行成功
LSNRCTL> start
啟動tnslsnr:請稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
系統引數檔案為D:\oracle\ora92\network\admin\listener.ora
寫入D:\oracle\ora92\network\log\listener.log的日誌資訊
監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=liq)(PORT=1521)))

正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
啟動日期                  01-3月 -201113:13:15
正常執行時間              0 天 0 小時 0 分 2 秒
跟蹤級別                  off
安全性                    OFF
SNMP                      OFF
監聽器引數檔案          D:\oracle\ora92\network\admin\listener.ora
監聽器日誌檔案          D:\oracle\ora92\network\log\listener.log
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=liq)(PORT=1521)))
服務摘要..
服務 "ora9i" 包含 1 個例程。
  例程 "ora9i", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
LSNRCTL>
LSNRCTL> save_config
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
未儲存對LISTENER所作的更改
命令執行成功
LSNRCTL>

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

相關文章