Al hacer un GRANT conectado tanto como el usuario SYSTEM y/o SYS en una versión Oracle 7.3.4 para dar permisos de un package de un usuario a otro me aparece el error Oracle:
ORA-01031: privilegios insuficientes
La solución más rápida a este error es conectarse como el usuario propietario del Package (u del objeto que nos dé problemas) y ejecutar el comando GRANT.
Ej.
$ sqlplus system/password_system
SQL> connect usuario/password_usuario
SQL> show user
el usuario es “usuario”
SQL> GRANT DELETE, INSERT, SELECT, UPDATE ON OPS$USUARIO.PACKAGE_EJEMPLO TO OPS$USUARIO_DESTINO;
Pero en mi caso, no tenía el password del usuario en concreto y tampoco me dejaban cambiarlo por si afectaba a alguna aplicación. ¿ Que se puede hacer en este caso ?
Como sí que tenía el password de root a nivel de sistema operativo (Unix en este caso) hice lo siguiente:
# su – usuario
$ whoami
usuario
$ sqlplus /
Ahora ya estaba conectado como el usuario “usuario” y ya podía ejecutar el comando GRANT.
SQL> show user
el usuario es “usuario”
SQL> GRANT DELETE, INSERT, SELECT, UPDATE ON OPS$USUARIO.PACKAGE_EJEMPLO TO OPS$USUARIO_DESTINO;
Fácil ¿verdad?