lunes, 27 de junio de 2011

Consultar qué tablas pertenecen a un usuario en Oracle

Vista de SQL Developer en el que muestra las tablas de HR
«Vista de SQL Developer en el que muestra las tablas de HR»

Podríamos decirlo de otro modo: ¿Cómo conocer qué tablas tiene un esquema? Recordar que usuario y esquema en Oracle van asociados. Usuario es el propietario y esquema es la agrupación lógica de los objetos pertenecientes a un usuario. Tienen el mismo nombre. Suelo decir que esquema es el «cajón» donde están los objetos de un usuario.

Por ejemplo: conectados como el usuario HR, la siguiente consulta nos muestra el nombre de las tablas del esquema HR:
select    table_name
from     user_tables;
TABLE_NAME
------------------------------
COUNTRIES
DEPARTMENTS
EMPLOYEES
JOBS
JOB_HISTORY
LOCATIONS
REGIONS

Si queremos ver las tablas de un esquema distinto, lo hacemos sobre ALL_TABLES y condicionamos para el propietario que deseemos. Necesitaremos tener acceso a todas las tablas para poder verlas (privilegio SELECT ANY TABLE), o permiso sobre la tabla en cuestión y solo veremos esas tablas.
select   table_name
from    ALL_TABLES
where  owner='HR';
En la vista ALL_TABLES tendremos la información de las tablas pertenecientes al usuario con el que hemos iniciado sesión y de las tablas sobre las que tiene algún permiso explícito. Para usar DBA_TABLES tendremos que tener un rol DBA y se podrá ver la descripción de todas la tablas de la base de datos.

6 comentarios: