English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
リスナーにはセキュリティがありますか?もちろんです!デフォルトでは、任意のユーザーは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 このサービスのハンドラ...
コマンドが正常に完了しました