Asignar roles a un usuario en Oracle

Existen momentos en los que se hace necesario definir roles con el fin de determinar permisos para unos usuarios y otros permisos específicos para otros usuarios en la instancia de Oracle.

Los roles simplemente nos permiten definir el tipo de permisos que debe tener uno o varios usuarios.

Para crear un rol, ejecutamos la siguiente orden dentro de SQL Developer o por medio de SQLPlus*

CREATE ROLE consulta;

Con esto hemos creado el rol, nos falta dar los privilegios que queremos que tenga dicho rol.

Para asignar los privilegios, usamos una consulta SQL como la siguiente

SET PAGESIZE 0;
SET LINESIZE 128;
SET FEEDBACK OFF;
SET HEADING OFF;
SELECT 'GRANT SELECT ON ' ||  owner || '.' || table_name ||  CHR(32) || ' TO  CONSULTA ; ' FROM all_tables WHERE owner = 'ICEMNGR' ORDER BY table_name ;
exit;

Se generarán una serie de instrucciones SQL que podemos ejecutar para aplicar los permisos indicados. Un ejemplo de sentencias SQL generadas, siguen a continuación:

GRANT SELECT ON ICEMNGR.RPOSUCURS  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTALLAS  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTCOLOR  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTESORO  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTIMPTO  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTIPDOC  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTIPMAT  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTTALLA  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOTUNIDA  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOUNECAT  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOUNIMED  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOVDEVCM  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOVDEVDS  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOVEHEXT  TO  CONSULTA ;
GRANT SELECT ON ICEMNGR.RPOVENAGR  TO  CONSULTA ;

Con esto, ya hemos otorgado los privilegios al rol indicado.

Ahora, debemos asignar el rol a un usuario, lo cual podemos realizar con la siguiente instrucción.

GRANT consulta TO usuario_1;

Si este es el único rol que tiene el usuario usuario_1, recomiendo dejarlo como rol por default, con la siguiente sentencia SQL

ALTER USER usuario_1 DEFAULT ROLE consulta;

Con esto hemos terminado de definir y asignar el rol para un usuario.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *