Puede que nos pasa que al intentar conectarnos a nuestra Oracle con "sqlplus / as sysdba", nos responda con el error ORA-01031: Insufficient privileges y nos pida el usuario y contraseña de nuevo.
Este problema se debe principalmente a problemas con los propietarios de los archivos de Oracle y/o sus grupos, me explico, si instalamos Oracle RDBMS con el usuario oracle y grupo dba pero por cualquier motivo cambiamos el grupo del usuario oracle a otro, entonces Oracle -el motor- no autenticará al usuario del sistema oracle porque no pertecene al grupo que él tiene almacenado -dba-
Para solucionarlo, primero debemos verificar los permisos de los archivos: listener.ora, sqlnet.ora y tnsnames.ora que se encuentran en <TNS_ADMIN> que pertenezcan al usuario que debe ejecutar Oracle RDMS
$ id -pA continuación, debemos verificar que en nuestro $TNS_ADMIN/sqlnet.ora tenemos correctamente la búsqueda de nombre -en mi caso sólo files-
uid=2011(oracle) gid=2010(dba) projid=106(group.dba)
$ ls -l $ORACLE_HOME/network/admin/*.ora
-rw------- 1 oracle dba 1690 ago 18 2009 /u01/app/oracle/10.2/db/network/admin/listener.ora
-rw-r----- 1 oracle dba 91 ago 12 2009 /u01/app/oracle/10.2/db/network/admin/sqlnet.ora
-rw-r----- 1 oracle dba 8391 nov 17 16:56 /u01/app/oracle/10.2/db/network/admin/tnsnames.ora
$ cat $ORACLE_HOME/network/admin/sqlnet.oraPor último, el más importante, con qué usuario y grupo se linkaron los binarios de Oracle RDBMS en la instalación, para ello, debemos buscar en el archivo <config.s> la entrada 0x0008 15 donde se muestra que grupo tiene Oracle RDBMS asignado
sqlnet.expire_time = 2
sqlnet.inbound_connect_timeout = 90
names.directory_path=(TNSNAMES)
$ cat $ORACLE_HOME/rdbms/lib/config.s |grep "0x0008"Llegados a este punto, si nuestro valor es diferente -que era nuestro caso de ejemplo- tenemos que asignar el grupo <dba> a nuestro usuario <oracle> o, hacer un relink de Oracle -esto lo veremos en otro post-.
/* 0x0008 26 */ .type ss_dba_grp,#object
/* 0x0008 27 */ .size ss_dba_grp,16
/* 0x0008 13 */ .align 8
/* 0x0008 15 */ .ascii "dba\0"
Para modificar nuestro usuario <oracle> y añadir como grupo <dba>, simplemente utilizaremos el comando <usermod> con la opción -G para añadirlos
# usermod -G dba,oinstall oracleConclusión
Las instalaciones de Oracle tienen muchas configuraciones y parámetros unidos al usuario y al nombre del host, por ello, como recomendación, hacer los cambios antes de instalar los productos de Oracle, os ahorrará muchos disgustos
Referencias
No hay comentarios:
Publicar un comentario