Saltar al contenido

¿Cómo encontrar el nombre del esquema en Oracle? cuando está conectado en una sesión SQL usando un usuario de solo lectura

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:

  1. Selecciona el esquema actual en tu sesión:
ALTER SESSION SET CURRENT_SCHEMA=XYZ
  1. 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:

  1. Consultar la configuración del esquema actual:
SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL
  1. Enumere sus sinónimos:
SELECT * FROM ALL_SYNONYMS WHERE OWNER = USER
  1. 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)



Utiliza Nuestro Buscador

Deja una respuesta

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