Solución:
Llama SYS_CONTEXT
para obtener el esquema actual. De Ask Tom “Cómo obtener el esquema actual:
select sys_context( 'userenv', 'current_schema' ) from dual;
Para crear un usuario de solo lectura, debe configurar un usuario diferente al que posee las tablas a las que desea acceder.
Si solo crea el usuario y otorga el permiso SELECT al usuario de solo lectura, deberá anteponer el nombre de esquema a cada nombre de tabla. Para evitar esto, tiene básicamente dos opciones:
- Selecciona el esquema actual en tu sesión:
ALTER SESSION SET CURRENT_SCHEMA=XYZ
- Cree sinónimos para todas las tablas:
CREATE SYNONYM READER_USER.TABLE1 FOR XYZ.TABLE1
Entonces, si no le han dicho el nombre del esquema propietario, básicamente tiene tres opciones. El último siempre debería funcionar:
- Consultar la configuración del esquema actual:
SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL
- Enumere sus sinónimos:
SELECT * FROM ALL_SYNONYMS WHERE OWNER = USER
- Investigue todas las tablas (con la excepción de algunos esquemas estándar conocidos):
SELECT * FROM ALL_TABLES WHERE OWNER NOT IN ('SYS', 'SYSTEM', 'CTXSYS', 'MDSYS');
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)