PROBLEMA:
Hemos creado un usuario en Oracle y queremos darle permisos de SELECT en todos los objetos del esquema. Esto supondria tener que ir uno por uno dando permisos de grant.
Solución:
Para ello lo que vamos ha hacer es con una query sacar un fichero txt con todos los grant que luego ejecutaremos directamente.
Por ejemplo nuestro usuario se llama read_user
CREATE USER read_user IDENTIFIED BY lectura;
A continuación ejecutamos la siguiente consulta
SELECT 'GRANT SELECT ON MySchema.'||object_Name||' TO read_user;' From dba_objects where object_type = 'TABLE' and owner = 'Usuario_propiertario'
Quedando algo de esta manera
RANT SELECT ON Usuario_propiertario.USERPICKERFILTER TO read_user; GRANT SELECT ON Usuario_propiertario.USERPICKERFILTERGROUP TO read_user; GRANT SELECT ON Usuario_propiertario.USERPICKERFILTERROLE TO read_user; GRANT SELECT ON Usuario_propiertario.PROJECTVERSION TO read_user; GRANT SELECT ON Usuario_propiertario.VERSIONCONTROL TO read_user; GRANT SELECT ON Usuario_propiertario.VOTEHISTORY TO read_user; GRANT SELECT ON Usuario_propiertario.WORKFLOWSCHEME TO read_user; GRANT SELECT ON Usuario_propiertario.WORKFLOWSCHEMEENTITY TO read_user; GRANT SELECT ON Usuario_propiertario.JIRAWORKFLOWSTATUSES TO read_user; GRANT SELECT ON Usuario_propiertario.APP_USER TO read_user;
Con esto nos ahorraríamos bastante tiempo