web-dev-qa-db-ja.com

OracleのSIDのリストを取得する方法

ホスト、ポート、ユーザーID、およびパスワードがありますが、OracleDBMSに接続するためのSIDがありません。そのサーバー上のSIDのリストを見つけるにはどうすればよいですか?

15
Roman Kagan

より良い方法は、ホストマシンにアクセスでき、Oracleのインストールが次のコマンドを使用することです。lsnrctl status。これは、Unix、Linux、およびWindowsマシンの両方で機能します。 statusコマンドは、すべてのリスナー(およびそれらに関連付けられたSID)を表示します。

C:\>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 15-JUN-2009 16:16:34
Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Start Date                13-JUN-2009 12:04:14
Uptime                    2 days 4 hr. 12 min. 19 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   C:\Oracle\XE\app\Oracle\product\10.2.0\server\network\admin\listener.ora
Listener Log File         C:\Oracle\XE\app\Oracle\product\10.2.0\server\network\log\listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=ThinkpadT61)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=127.0.0.1)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
    Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
   Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
   Instance "xe", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
   Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
   Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully

上記の例では、接続文字列XEXDB、XE_XPT、またはXEを使用してXEデータベースに接続できます。

19

簡単に言うと、ホストOSにアクセスする必要があります。

Unixの場合、ps -ef | grep pmonora_pmon_xxxxのような名前の1つ以上のプロセスを表示し、xxxxはインスタンス名です。

Windowsでは、タスクリストに同様の署名があると思います。

実際には、この情報は通常、接続アカウントの作成時にデータベースを管理する人から提供されます。

5
dpbradley

問題は、ホストXポートYで実行されているリスナーによってどのOracle_SIDまたはサービスがサポートされているかということです。このリスナーの構成の安全性に応じて、lsnrctlがインストールされているクライアントからlsnrctlコマンドを使用してこれを確認できます。これを実行できるようにするには、そのクライアントにOracleサーバーをインストールする必要があります。あなたがそれを持っているときあなたは発行することができます

lsnrctl
set current_listener (description=(address=(Host=X)(port=Y)(protocol=tcp)))
status

10gリスナーフィルのデフォルト設定により、次の結果が発生します。TNS-01189:リスナーはユーザーを認証できませんでした

これは、10g以降、Oracleのデフォルトでセキュリティがオンになっているためです。ローカルOS認証は、リスナーを開始したローカルOSユーザーのみがリスナーにlsnrctlコマンドを発行できることを意味します。リスナーは他のユーザーへの応答を拒否します。

3
ik_zelf

考慮すべきもう1つのオプションは、Unixのファイル/ etc/oratab、またはWindowsの同等のファイルです。これはレジストリHiveだと思います。

Oratabは、現在実行されているかどうかに関係なく、ホスト上のすべてのSIDを一覧表示する必要があります。

2
Karl

Oracle-sid-bruteに役立つ可能性のあるnmapスクリプトがあります。

http://nmap.org/nsedoc/scripts/Oracle-sid-brute.html

それは私のシステムにnmapでインストールされました。

nmap --script Oracle-sid-brute -p 1521-1560 [Host]

これは、SIDがリストで一致できる場合にのみ役立ちます。デフォルトのリストは次のとおりです。

http://www.red-database-security.com/scripts/sid.txt

1
mathewguest