Oracle sqlplus con sys como sysdba está fallando con ORA-01017: nombre de usuario / contraseña no válido; inicio de sesión denegado.
La conexión de base de datos del usuario de Oracle sys con ORACLE_SID no está funcionando. El ORACLE_SID para mi entorno de desarrollo es “dev”.
sqlplus sys/manager@dev as sysdba
SQL*Plus: Release 12.1.0.2.0 Production en Thu Nov 25 01:25:33 2021
Derechos de autor (c) 1982, 2014, Oracle. Todos los derechos reservados.
ERROR:
ORA-01017: nombre de usuario/contraseña no válido; inicio de sesión denegado
Sin embargo, sin ORACLE_SID, la conexión funciona correctamente.
sqlplus sys/manager as sysdba
SQL*Plus: Release 12.1.0.2.0 Production en Thu Nov 25 01:34:05 2021
Derechos de autor (c) 1982, 2014, Oracle. Todos los derechos reservados.
Conectado a:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>
Parece que esta conexión está utilizando la autenticación del sistema operativo, ya que si proporciono una contraseña incorrecta para el usuario “sys”, la conexión sigue funcionando.
¿Alguna ayuda para saber por qué la conexión del usuario “sys” con ORACLE_SID no está funcionando?
En mi base de datos, el parámetro “sec_case_sensitive_logon” está establecido en falso.
SQL> show parameter sec_case_sensitive_logon
NOMBRE TIPO VALOR
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean FALSE
davy.ai
Basado en la información proporcionada, parece que el problema con la conexión basada en ORACLE_SID para el usuario sys está relacionado con la autenticación.
Una posible explicación podría ser que la contraseña para el usuario sys distingue entre mayúsculas y minúsculas, y que el parámetro ORACLE_SID no está especificado correctamente. Esto significa que los intentos de conexión pueden estar apuntando a la instancia de base de datos incorrecta o almacenando la contraseña incorrecta.
Para solucionar esto, puede intentar los siguientes pasos:
echo $ORACLE_SID
en el símbolo del sistema.sqlplus sys/manager@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=<port>))(CONNECT_DATA=(SID=dev))) as sysdba
. Esto debería resolver cualquier problema potencial con el parámetro ORACLE_SID.También vale la pena señalar que la conexión exitosa sin ORACLE_SID indica probablemente que el inicio de sesión se autentica a través del sistema operativo en lugar de la base de datos. Esto puede confirmarse verificando el parámetro SQLNET.AUTHENTICATION_SERVICES. Si incluye ‘OS’ o ‘NONE’, entonces se está utilizando la autenticación del sistema operativo.