15 Stimmen

So erhalten Sie die Liste der SIDs von Oracle

Ich habe den Host, den Port, die Benutzerkennung und das Passwort, aber es fehlt die SID für die Verbindung zum Oracle DBMS. Wie kann ich die Liste der SIDs auf diesem Server finden?

23voto

Thomas Jones-Low Punkte 6881

Ein besserer Weg ist, wenn Sie Zugriff auf den Hostrechner und die Oracle-Installation haben, den Befehl zu verwenden: lsnrctl status . Dies funktioniert sowohl auf Unix-, Linux- als auch auf Windows-Rechnern. Der Befehl status zeigt Ihnen alle Hörer (und ihre zugehörigen SIDs) an.

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

Im obigen Beispiel können Sie eine Verbindung zur XE-Datenbank mit den Conect Strings XEXDB, XE_XPT oder XE herstellen.

7voto

dpbradley Punkte 11447

Die kurze Antwort lautet, dass Sie Zugriff auf das Host-Betriebssystem benötigen:

Für Unix, ps -ef | grep pmon zeigt Ihnen einen oder mehrere Prozesse mit Namen wie ora_pmon_xxxx y xxxx ist der Name der Instanz.

Unter Windows gibt es vermutlich eine ähnliche Signatur in der Aufgabenliste.

In der Praxis werden Ihnen diese Informationen in der Regel von demjenigen mitgeteilt, der die Datenbank verwaltet, wenn Ihr Verbindungskonto erstellt wird.

3voto

ik_zelf Punkte 5982

Die Frage lautet: Welche ORACLE_SIDs oder Dienste werden von dem Listener unterstützt, der auf Host X, Port Y, läuft. Je nachdem, wie sicher dieser Listener konfiguriert ist, können Sie dies mit dem Befehl lsnrctl von einem Client aus sehen, der lsnrctl installiert hat. Um dies tun zu können, benötigen Sie eine Oracle-Server-Installation auf diesem Client. Wenn Sie diese haben, können Sie den Befehl

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

Die Standardeinstellung der 10g-Listener-Füllung führt zu folgendem Ergebnis: TNS-01189: Der Listener konnte den Benutzer nicht authentifizieren

Der Grund dafür ist, dass ab 10g Oracle standardmäßig Folgendes hat Sicherheit EIN: Lokale OS-Authentifizierung was bedeutet, dass nur der lokale Betriebssystembenutzer, der den Listener gestartet hat, lsnrctl-Befehle an den Listener senden kann. Der Listener wird sich weigern, anderen Benutzern zu antworten.

2voto

Karl Punkte 3228

Eine weitere Möglichkeit ist die Datei /etc/oratab unter Unix bzw. ihr Äquivalent unter Windows, bei der es sich meines Erachtens um eine Registry-Hive handelt.

Das oratab sollte alle SIDs auf einem Host auflisten, unabhängig davon, ob sie gerade laufen oder nicht.

1voto

mathewguest Punkte 573

Es gibt ein nmap-Skript, das vielleicht helfen kann: oracle-sid-brute:

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

Es wurde mit nmap auf meinem System installiert.

nmap --script oracle-sid-brute -p 1521-1560 [host]

Dies wäre nur dann hilfreich, wenn die SID in einer Liste abgeglichen werden kann. Die Standardliste befindet sich hier:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X