Tengo el host, el puerto, el ID de usuario y la contraseña, pero me falta el SID para conectarme a Oracle DBMS. ¿Cómo puedo encontrar la lista de SID en ese servidor?Cómo obtener la lista de SID de Oracle
Respuesta
Una mejor manera es, si tiene acceso a la máquina host y la instalación de Oracle es utilizar el comando: lsnrctl status
. Esto funciona tanto en máquinas Unix, Linux y Windows. El comando de estado le mostrará todos los oyentes (y sus SID asociados).
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
En el ejemplo anterior se puede conectar a la base de datos XE con el Conect Cuerdas XEXDB, XE_XPT o XE.
La respuesta corta es que es necesario tener acceso al sistema operativo anfitrión:
Para Unix, ps-ef | pmon grep le mostrará uno o más procesos con nombres como ora_pmon_xxxx, y xxxx es el nombre de la instancia.
En Windows, supongo que hay una firma similar en la lista de tareas.
En la práctica, esta información la suele proporcionar quien administra la base de datos cuando se crea su cuenta de conexión.
En Windows, SID no sería visible en el administrador de tareas, tendrá que comprobar los servicios en ejecución (services.msc) para comprobar si hay SID. Por ejemplo: OracleServiceORCL asumiendo que ORCL es el SID – Sathya
Gracias - por la aclaración - no tengo experiencia en la plataforma Windows – dpbradley
La pregunta se reduce a: qué ORACLE_SID o servicios son compatibles con el oyente que se ejecuta en el puerto X del host X. Dependiendo de qué tan seguro esté configurado este oyente, puede verlo usando el comando lsnrctl de un cliente que tiene lsnrctl instalado Para poder hacer esto, necesita una instalación del servidor Oracle en ese cliente. Cuando se tiene que se puede emitir
lsnrctl
set current_listener (description=(address=(host=X)(port=Y)(protocol=tcp)))
status
La configuración por defecto del oyente 10g llenar causa el siguiente resultado: TNS-01189: El oyente no pudo autenticar al usuario
Esto se debe a defecto de Oracle 10g tiene Seguridad ENCENDIDO: Autenticación del sistema operativo local , lo que significa que solo el usuario del SO local que inició el escuchador puede emitir comandos lsnrctl al oyente. El oyente se negará a responder a cualquier otro usuario.
Otra opción a considerar es el archivo/etc/oratab en Unix o su equivalente en Windows, que creo que es una sección de registro.
El oratab debe enumerar todos los SID en un host, ya sea que se estén ejecutando o no.
Comentario de @saritonin, que no tiene los privilegios para comentar: "Tenga en cuenta que/etc/oratab puede no ser útil si el $ El parámetro ORACLE_SID es el comodín '*' ". –
Hay un script de nmap que tal vez podría ayudar, Oracle-sid-bruta:
http://nmap.org/nsedoc/scripts/oracle-sid-brute.html
Se instaló con nmap en mi sistema.
nmap --script oracle-sid-brute -p 1521-1560 [host]
Esto solo ayudaría si el SID puede coincidir en una lista. La lista predeterminada está aquí:
- 1. ¿Qué significan el nombre de Oracle DB y SID?
- 2. Cómo obtener el SID de inicio de sesión en C#
- 3. ¿Por qué se requiere sid en 'KILL SESSION' (Oracle SQL)?
- 4. Comprobación de sid de Oracle y el nombre de la base de datos
- 5. Java JDBC - Cómo conectarse a Oracle utilizando el nombre de servicio en lugar de SID
- 6. ¿Cómo puedo cambiar el SID de una instancia de Oracle XE?
- 7. Dado el SID de un usuario, ¿cómo obtengo su userPrincipalName?
- 8. Cómo obtener la lista de todos los procedimientos dentro de un paquete oracle
- 9. ¿Cómo puedo obtener el SID de la cuenta actual de Windows?
- 10. ¿Cómo puedo seleccionar de la lista de valores en Oracle
- 11. ¿Cómo extraer el SID de la computadora/máquina?
- 12. Drupal: cómo obtener la lista de módulos
- 13. ¿Cómo obtener la lista de widgets instalados?
- 14. ¿Cómo SID es diferente del nombre del servicio en Oracle tnsnames.ora
- 15. obtener el SID de la máquina (incluido el controlador de dominio principal)
- 16. Oracle Query para obtener la lista de la tabla para la cual el usuario actual tiene acceso de lectura
- 17. Cómo obtener un nombre de usuario y SID para el usuario por un nombre de dominio en ldap
- 18. ¿Cuál es la mejor manera de obtener el SID del usuario actual?
- 19. Cómo convertir SID a String en .net
- 20. Dado el SID de un usuario, ¿cómo puedo obtener AD DirectoryEntry?
- 21. Cómo Obtener la lista de atributos de ArrayList de objetos
- 22. Tengo un SID de una cuenta de usuario y quiero los SID de los grupos a los que pertenece
- 23. ¿Cómo obtener la lista de valores en la cláusula GROUP_BY?
- 24. Cómo obtener la lista de cumpleaños contactos de iPhone
- 25. ¿Cómo obtener Scala List de la lista de Java?
- 26. ¿Cómo obtener la lista de comandos de Visual Studio?
- 27. Cómo obtener la lista de invocación de cualquier evento
- 28. ¿La mejor manera de resolver el nombre de usuario de visualización por SID?
- 29. cómo obtener una lista secundaria de una lista en ocaml
- 30. android, cómo obtener una lista de directorios?
Había considerado este enfoque para mi respuesta, pero técnicamente esto solo funciona si el oyente predeterminado. El enfoque más enrevesado para usar lsnrctl es primero obtener una lista de oyentes a través de ps-ef | grep lsnr, y luego emitir el comando STATUS para cada uno de los oyentes. No quería complicar demasiado la respuesta ya que probablemente el 99% de las instalaciones usan la configuración de oyente predeterminada – dpbradley