KEMBAR78
Blog de Iván López: Oracle
Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas

jueves, 22 de febrero de 2007

Conectarse a Oracle como sysdba sin saber el password

   El sistema que estoy probando en mi nuevo trabajo utiliza Oracle 10g como base de datos. El otro día quería ver más a fondo cómo estaban creados los datafiles, tablespaces, índices,... Obviamente con el usuario de aplicación que tengo para conectarme no podía hacer mucho, así que pensé qué podía hacer para conectarme con permisos de DBA.

   Recordando lo que aprendí el año pasado en los cursos de Oracle que hice y también en mi anterior trabajo, el usuario de sistema operativo dueño de la instalación de oracle puede conectarse como sysdba sin necesidad de conocer el password. Para ello sólo hay que hacer lo siguiente y automáticamente estaremos conectados a la instancia y además con permisos totales de administración. No obstante, en mi caso esto daba error:
C:\Documents and Settings\User>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on Wed Mar 14 10:32:28 2007

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

   Haciendo más memoria todavía, cuando se instala un servidor Oracle en windows, se crea el grupo ORA_DBA al que es necesario añadir todos los usuarios que se podrán conectar como dba. Mi usuario no estaba añadido, pero después de hacerlo seguía sin poder conectarme como sysdba.

   Lo dejé y después de comer (siempre dicen que con el estómago lleno se piensa mejor) me acordé de que había un parámetro en el archivo sqlnet.ora en el que se puede configurar si se va a utilizar la autenticación que proporciona el sistema operativo o no. En mi máquina estaba deshabilitada, por lo que era obligatorio utilizar el password.
#SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

   Cambié la línea en cuestión del archivo para indicarle que utilizase la autenticación de windows (simplemente descomentándola):
SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

   Y probé de nuevo:
C:\Documents and Settings\User>sqlplus /nolog

SQL*Plus: Release 10.2.0.2.0 - Production on Wed Mar 14 10:35:29 2007

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

SQL> conn / as sysdba;
Connected.

   Y una vez conectados nos podemos crear un usuario con permisos de dba para poder utilizarlo y conectarnos desde el Toad...
SQL> create user ivan identified by ivan;

User created.

SQL> grant connect,resource to ivan;

Grant succeeded.

SQL> grant dba to ivan;

Grant succeeded.