English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Oracleリスナーのパスワード設定方法(LISTENER)

リスナーにはセキュリティがありますか?もちろんです!デフォルトでは、任意のユーザーはlsnrctlツールを使用してOracleリスナーを操作したり、閉じたりすることができ、その結果、新しいセッションが接続できないことがあります。 9i Oracleリスナーは、lsnrctlを使用してリモートからリスナーの管理を誰でも行うことができます。これにより、データベースが破損する可能性があります。

1. パスワードが設定されていない場合のリスナー停止

[oracle@test ~]$ lsnrctl stop listener_demo92  -->リスナーを停止します、パスワードは必要ありません 
LSNRCTL for Linux: バージョン 9.2.0.8.0 - プロダクション 26-JUN-2011 08:22:26          
Copyright (c) 1991, 2006, Oracle Corporation. 全ての権利は保留です。             
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))         
コマンドが正常に完了しました 

2. リスナーを再起動し、パスワードを設定します

[oracle@test ~]$ lsnrctl                                                 
LSNRCTL for Linux: バージョン 9.2.0.8.0 - プロダクション 26-JUN-2011 08:24:09                         
Copyright (c) 1991, 2006, Oracle Corporation. 全ての権利は保留です。                            
LSNRCTLへようこそ、情報を取得するには"help"とタイプしてください。	                                    
LSNRCTL> set current_listener listener_demo92 -->現在のリスナーを設定します                             
現在のリスナーはlistener_demo92                                            
LSNRCTL> start       -->起動プロセスもパスワードは必要ありません、詳細は省略します                         
LSNRCTL> change_password  -->change_passwordを使用してパスワードを設定してください                                
Old password:                                                       
New password:                                                       
Reenter new password:                                                   
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))                        
listener_demoのパスワードが変更されました92                                           
コマンドが正常に完了しました                                            
LSNRCTL> save_config    -->このsave_configは失敗しました                                 
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))                        
TNS-01169: The listener has not recognized the password                                  
LSNRCTL> set password    -->新しい設定されたパスワードで確認してください                                    
Password:                                                         
コマンドが正常に完了しました                                            
LSNRCTL> save_config    -->再度save_configが成功しました                                     
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))                        
listener_demoを保存しました92 設定パラメータ。                                      
リスナー パラメータ ファイル  /oracle/92/ネットワーク/管理者/listener.ora                              
Old Parameter File  /oracle/92/ネットワーク/管理者/listener.bak                                
コマンドが正常に完了しました                                            
-->パスワードを追加すると、listener.oraファイルに新しいレコードが追加され、パスワードオプションが見られます(注:パスワード管理方式を使用しても、パスワードなしでリスナーを起動できます)
[oracle@test admin]$ more listener.ora                                          
	#----ADDED BY TNSLSNR 26-JUN-2011 05:12:48---                                      
	PASSWORDS_listener_demo92 =                                               
	#--------------------------------------------

3. パスワードを使用しないでリスナーを停止しようとしました

[oracle@test ~]$ lsnrctl stop listener_demo92                        
LSNRCTL for Linux: バージョン 9.2.0.8.0 - プロダクション 26-JUN-2011 06:09:51          
Copyright (c) 1991, 2006, Oracle Corporation. 全ての権利は保留です。             
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))         
TNS-01169: The listener has not recognized the password  -->エラーメッセージを受信しました。パスワード認証が必要です

4. パスワードを使用してリスナーを停止

[oracle@test ~]$ lsnrctl                            
LSNRCTL> set current_listener listener_demo92                 
現在のリスナーはlistener_demo92                      
LSNRCTL> stop                                 
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))   
TNS-01169: The listener has not recognized the password            
LSNRCTL> set password                             
Password:                                   
コマンドが正常に完了しました                       
LSNRCTL> stop                                 
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))   
コマンドが正常に完了しました                       
LSNRCTL> status                                
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))   
TNS-12541: TNS:リスナーが見つかりません                           
 TNS-12560: TNS:プロトコルアダプタエラー                     
 TNS-00511: リスナーが見つかりません                            
  Linuxエラー: 111: 接続が拒否されました                    
接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))       
TNS-12541: TNS:リスナーが見つかりません                           
 TNS-12560: TNS:プロトコルアダプタエラー                     
 TNS-00511: リスナーが見つかりません                            
  Linuxエラー: 2: ファイルまたはディレクトリが見つかりません	                 

5. save_configの失敗

-->Oracleで 9iで、save_configコマンドの実行は失敗します                                     
	LSNRCTL> save_config                                                 
	接続先(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<ホスト名>)(PORT=<ポート番号>)))                  
	TNS-01169: The listener has not recognized the password	                               
-->set passwordを使用してからsave_configを実行すると、設定の保存が成功します。                              
	LSNRCTL> set password                                                
	Password: <選んだパスワード>                                          
	コマンドが正常に完了しました                          
/*Oracleで 10gでは問題が発生しません。なぜなら、10gではオペレーティングシステムの認証方式を使用できます。リスナーはユーザーがdbaグループのメンバーであるかどうかを確認します
パスワードの変更、設定の保存、リスナーの停止などの権限が付与されます。 */                                 

6. listener.oraのADMIN_RESTRICTIONSパラメータを設定

パラメータの作用:
listener.oraファイルにADMIN_RESTRICTIONSパラメータが設定されている場合、リスナーが実行中に管理コマンドの実行が許可されず、setコマンドも使用できません
サーバーのローカルかリモートから実行する場合でも、設定は通じておりません。この場合、リスナーの設定はlistener.oraファイルを手動で修正することでのみ、有効になります。
lsnrctl reloadコマンドまたはlsnrctl stopを使用して/startコマンドでリスナーの設定情報を再読み込みします。
修正方法:
listener.oraファイルに以下のように一行を手動で追加します
ADMIN_RESTRICTIONS_<リスナー名> = ON

以下は他のユーザーの補足です:

LSNRCTL> change_password
Old password:
New password:
Reenter new password:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp)-uc-db1)(ポート=1521))
Password changed for LISTENER
コマンドが正常に完了しました
LSNRCTL> set password
Password:
コマンドが正常に完了しました
LSNRCTL> save_config
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp)-uc-db1)(ポート=1521))
Saved LISTENER configuration parameters.
リスナー パラメータ ファイル /opt/oracle/製品/10.2.0/db_1/ネットワーク/管理者/listener.ora
Old Parameter File /opt/oracle/製品/10.2.0/db_1/ネットワーク/管理者/listener.bak
コマンドが正常に完了しました
[oracle@ecp-uc-db1 admin]$ cat listener.ora
#—-ADDED BY TNSLSNR 10-JUN-2011 18:13:24—
PASSWORDS_LISTENER = 6D7AA003392C436A
#——————————————–
note:10gデータベース上に必要に追加(リスナーの再起動)
LOCAL_OS_AUTHENTICATION_LISTENER = OFF

1、添加LOCAL_OS_AUTHENTICATION_LISTENER = OFF之前

Security ON: Password or Local OS Authentication

2、添加LOCAL_OS_AUTHENTICATION_LISTENER = OFF之后

セキュリティ ON: パスワード
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp)-uc-db1)(ポート=1521))
TNS-01169: The listener has not recognized the password
LSNRCTL> stop
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp)-uc-db1)(ポート=1521))
TNS-01169: The listener has not recognized the password
LSNRCTL> set password 123456
コマンドが正常に完了しました
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ecp)-uc-db1)(ポート=1521))
リスナーのステータス
————————
エイリアス LISTENER
バージョン TNSLSNR for Linux: バージョン 10.2.0.4.0 – 生産
開始日 10-JUN-2011 18:15:49
Uptime 0 日 0 時。 1 min. 16 sec
トレース レベルオフ
セキュリティ ON: パスワード
SNMP OFF
リスナー パラメータ ファイル /opt/oracle/製品/10.2.0/db_1/ネットワーク/管理者/listener.ora
リスナー ログ ファイル /opt/oracle/製品/10.2.0/db_1/ネットワーク/ログ/listener.log
リスニングエンドポイント要約...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ECP-UC-DB1)(ポート=1521))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
サービス要約...
サービス「PLSExtProc」は次の 1 インスタンス。
インスタンス「PLSExtProc」,ステータス UNKNOWN,次の 1 このサービスのハンドラ...
サービス「ecp」は次の 1 インスタンス。
インスタンス「ecp」,ステータス READY,次の 1 このサービスのハンドラ...
サービス「ecpXDB」は次の 1 インスタンス。
インスタンス「ecp」,ステータス READY,次の 1 このサービスのハンドラ...
サービス「ecp_XPT」は次の 1 インスタンス。
インスタンス「ecp」,ステータス READY,次の 1 このサービスのハンドラ...
コマンドが正常に完了しました

おすすめ