2012-02-03 45 views
9

He trabajado con Oracle durante un tiempo, pero soy muy novato con el lado administrativo y estoy aprendiendo, así que tengan paciencia conmigo.No se puede iniciar sesión en la base de datos como SYS con Oracle SQL Developer

No puedo iniciar sesión en mi base de datos (orcl_test) con SQL Developer con el nombre de usuario SYS. Puedo iniciar sesión muy bien en SQLPlus con SYS como SYSDBA - cuando intento con SQL Developer obtengo un error:
ORA-01017: nombre de usuario/contraseña no válidos; inicio de sesión denegado.

Al iniciar sesión como SYSDBA en SQLPlus, creé una tabla de prueba dentro de la base de datos y otorgé al usuario de prueba SCOTT los permisos SELECT. El usuario de Scott puede iniciar sesión mediante SQL Developer sin problemas y acceder a las tablas permitidas.

He comprobado que el usuario Scott y SYS son el acceso utilizando la misma configuración -
nombre de host: (dirección IP)
Puerto: 1521
SID: orcl_test

Para SYS I Bandera el papel SYSDBA - pero por lo demás la configuración es la misma.

¿Alguna idea sobre por qué no puedo iniciar sesión con SYS? ¿Acabo de pasar por alto algo o he configurado mi base de datos incorrectamente?

No estoy seguro si esto es relevante pero no puedo usar 'localhost' para el nombre de host, tengo que ingresar la dirección IP. ¿Dónde configuro Oracle para reconocer localhost?

Esta es una nueva instalación de Oracle 11.2.0.1.0 en un cuadro de prueba independiente que ejecuta Windows XP. Ejecución de Oracle SQL Developer 1.5.5.

+1

Si se intenta con el tipo de conexión "TNS", lo que sucede? –

+1

¡Buena llamada! Aunque todavía estoy seguro de que algo anda mal: cambié el tipo de conexión a TNS (comprobé la entrada orcl_test en tnsnames.ora - se ve bien). Falla cuando se usa Network Alias: "orcl_test", pero si selecciono Connect Identifier en su lugar y lo dejo en blanco, entonces SYSDBA concuerda bien. Cualquier explicación de lo que acaba de suceder aquí sería apreciada. – owlie

+0

¿Tiene más de un cliente instalado en la máquina? Buscar tnsnames.ora, ¿existe más de uno? –

Respuesta

5

Si entiendo correctamente, la base de datos está en el mismo host que la instalación de SQL Developer? ¿Está totalmente calificando la conexión al probar con SQLPlus:

sqlplus "sys/[email protected] as sysdba" 

Puede darse el caso de que el error es correcto. Asegúrate de haber creado un archivo de contraseña.

+0

Sí, la base de datos está en el mismo host que la instalación de SQL Dev. Puedo conectarme con la cadena de conexión completa que mencionaste o simplemente ingresar 'sqlplus' en la línea de comando e ingresar el nombre de usuario/contraseña como se te solicite. Verificará la existencia del archivo de contraseña. – owlie

+0

Comprobado: la tabla v $ pwfile_users contiene SYS con los campos SYSDB y SYSOP configurados como TRUE. – owlie

+1

Esto es complicado. SQLDeveloper 3.0 ofrece una opción de conexión: Local/Bequeath, que puede ser útil. –

2

La contraseña de sys que está utilizando no es válida.

Pero como se está conectando a Oracle por comando en una máquina Oracle, Oracle no verifica su contraseña aunque su contraseña no sea correcta.

Simplemente cambie la contraseña del sys e inténtelo de nuevo.

2

su - oracle

archivos orapwd = $ ORACLE_HOME/dbs/orapw $ ORACLE_SID password = entradas Euro2016 = 5

que significa: escribir en un archivo $ ORACLE_HOME/dbs/orapw $ SID_ORACLE una contraseña Euro2016 que es utilizado por SYSDBA

Ahora se puede conectar con sqldeveloper: sys nombre de usuario, contraseña Euro2016 con SYSDBA elegido, nombre de host, el puerto, sid de $ SID_ORACLE

+0

¿Qué quiere decir con ... orapwd file = $ ORACLE_HOME/dbs/orapw $ ORACLE_SID password = Euro2016 entries = 5 ¿No puedes ser más descriptivo? – Hari

+0

Permite usar la contraseña de SYSDBA en este caso Euro2016 en muchas aplicaciones externas. Agregué algunos comentarios arriba. http://www.dba-oracle.com/t_advanced_orapwd_utility.htm – 42n4

3

desde el The SYSDBA System Privilege (1) y (Logging In and Connecting to the Database as SYSDBA (2)):

(1): Connecting AS SYSDBA invokes the SYSDBA privilege. If you omit the AS SYSDBA clause when logging in as user SYS, the SQL Command Line rejects the login attempt.

(2): Using SQL Developer, open a database connection to the SYS user AS SYSDBA.

Por lo tanto - si esto funciona para usted:

sqlplus sys/[email protected] as sysdba; 

Probar: "SYS AS SYSDBA" de la siguiente manera:

enter image description here

Alternativamente:

puede escribir: "SYS" y seleccionar desde el menú desplegable ROL: SYSDBA.

enter image description here

Cuestiones relacionadas