Dar permisos de lectura a un usuario en todos sus objetos

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

Creando un usuario de base de datos oracle con autenticación en base de datos

Para crear un usuario en una base de datos Oracle y que autentique sobre la base de datos lo hacemos con CREATE USER.

Si quieres crear un usuario en tu base de datos, lo tienes que hacer con un usuario que tenga permisos para ello. Un usuario administrador (DBA) puede hacerlo porque tiene privilegios para realizar esa operación.

En este ejemplo, crearemos un usuario llamado PRUEBA con contraseña «pru3ba» y le asignaremos como tablespace permanente el tablespace USERS y como tablespace temporal el tablespace TEMP y la quota que tenga sobre el tablespace USERS será ilimitada.

create user PRUEBA identified by pru3ba
default tablespace USERS
temporary tablespace TEMP
quota unlimited on USERS;

Continuar leyendo «Creando un usuario de base de datos oracle con autenticación en base de datos»