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.
Sin respuestas