Как получить список SID Oracle - PullRequest
15 голосов
/ 15 июня 2009

У меня есть хост, порт, идентификатор пользователя и пароль, но отсутствует SID для подключения к СУБД Oracle. Как найти список идентификаторов безопасности на этом сервере?

Ответы [ 5 ]

19 голосов
/ 16 июня 2009

Лучше, если у вас есть доступ к хост-машине и установка Oracle - использовать команду: lsnrctl status. Это работает как на машинах Unix, Linux, так и на Windows. Команда состояния покажет вам всех слушателей (и связанных с ними 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

В приведенном выше примере вы можете подключиться к базе данных XE, используя Conect Strings XEXDB, XE_XPT или XE.

5 голосов
/ 15 июня 2009

Краткий ответ: вам нужен доступ к операционной системе хоста:

Для Unix ps -ef | grep pmon покажет вам один или несколько процессов с именами, такими как ora_pmon_xxxx, а xxxx - это имя экземпляра.

В Windows, похоже, в списке задач есть аналогичная подпись.

На практике эту информацию обычно дает вам тот, кто управляет базой данных при создании вашей учетной записи.

3 голосов
/ 16 июня 2009

Вопрос сводится к следующему: какие ORACLE_SID или службы поддерживаются слушателем, работающим на хост-порту Y. В зависимости от того, насколько защищен этот слушатель, вы можете увидеть это с помощью команды lsnrctl от клиента, на котором установлен lsnrctl , Для этого вам нужно установить сервер Oracle на этом клиенте. Если у вас есть, вы можете выдать

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

Настройка по умолчанию для заполнения 10g слушателя приводит к следующему результату: TNS-01189: слушателю не удалось аутентифицировать пользователя

Это потому, что из 10g по умолчанию оракул имеет Безопасность включена: локальная проверка подлинности ОС Это означает, что только локальный пользователь ОС, запустивший прослушиватель, может выдавать команды lsnrctl слушателю. Слушатель откажется отвечать любому другому пользователю.

2 голосов
/ 17 июня 2009

Другой вариант, который следует рассмотреть, - это файл / etc / oratab в Unix или его эквивалент в Windows, который я считаю кустом реестра.

В oratab должен быть указан список всех идентификаторов безопасности хоста, независимо от того, запущен он в данный момент или нет.

1 голос
/ 29 июля 2014

Существует скрипт nmap, который может помочь, oracle-sid-brute:

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 / скрипты / sid.txt

...