Vous êtes sur la page 1sur 3

Diccionario de Datos

Oracle posee un diccionario de datos; es decir la manera de extraer el catlogo de objetos de una base de datos, nos referimos a: tablas, usuarios, roles, vistas, columnas de las tablas, secuencias, constraints, sinnimos, ndices, triggers, funciones etc.., esta informacin se encuentra contenida en tablas y vistas del sistema. Dichas tablas en base a las cuales podemos obtener esta informacin aplicando sentencias sql. A continuacin enumeramos las tablas ms importantes del diccionario de datos que nos permitir obtener informacin de los objetos de la base de datos.

Notas:
Los prefijos dba_ son exclusividad para los usuarios que tengan el rol dba que sera el administrador de la base de datos y mostrara informacin de accesos de los usuarios que tienen asignado dicho rol. Los prefijos_user indican que mostrar informacin en el mbito del usuario que se encuentre conectado; [esquema].[objeto]. Informacin sobre todos los objetos: tablas, vistas, funciones, procedimientos, ndices, triggers, etc. : dba_objects, user_objects, all_objects Cdigo de funciones y procedimientos: dba_source, user_source, all_source Usuarios: dba_users, user_users, all_users Roles: dba_roles Roles asignados a roles o usuarios: dba_role_privs, user_role_privs Privilegios asignados a roles o usuarios: dba_sys_privs Permisos sobre tablas asignados a roles o usuarios: dba_tab_privs Lmites de recursos: user_resource_limits Perfiles y sus lmites de recursos asociados: dba_profiles Lmites de recursos en cuanto a restricciones en claves: user_password_limits Lmites de recursos en cuanto a espacio mximo en tablespaces: dba_ts_quotas, user_ts_quotas Tablespaces: dba_tablespaces, user_tablespaces Ficheros que componen los datafiles: dba_data_files Segmentos: dba_segments, user_segments, all_segments Segmentos de Rollback: dba_rollback_segs Extensiones que forman los segmentos: dba_extents, user_extents Bloques libres: dba_free_space, user_free_space Bloques libres que podran unirse: dba_free_space_coalesced Secuencias: dba_sequences, user_sequences, all_sequences

Tablas, vistas, sinnimos y secuencias: dba_catalog, user_catalog, all_catalog Tablas : dba_tables, user_tables, all_tables Campos de tablas: dba_cons_columns, user_cons_columns, all_cons_columns Columnas de las tablas: dba_tab_columns, user_tab_columns, all_tab_columns Vistas: dba_views, user_views, all_views Sinnimos: dba_synonyms, user_synonyms, all_synonyms Restricciones de clave primaria, externa, not null, integridad referencial: dba_constraints, user_constraints, all_constraints ndices: dba_indexes, user_indexes, all_indexes Columnas de los ndices: dba_ind_columns, user_ind_columns, all_ind_columns

Obtener datos de tablas y columnas en Oracle Para obtener datos de una o varias tablas en Oracle, ya sea columnas, tipos de dato, comentarios, largo mximo, etc. se pueden consultar a las siguientes tablas de sistema : ALL_TABLES : para obtener datos de las tablas. ALL_TAB_COLUMNS : para obtener datos de las columnas. ALL_COL_COMMENTS : para obtener los comentarios ingresados a las columnas La siguiente consulta utiliza las 3 tablas para obtener la informacin necesaria para hacer un diccionario de datos: SELECT col.owner, col.table_name, col.column_name, col.data_type, col.data_length, col.nullable, col.data_default, com.comments FROM all_tab_columns col, all_col_comments com WHERE col.table_name = com.table_name AND col.column_name = com.column_name AND col.owner=com.owner AND col.owner = 'FFCC' ORDER BY col.table_name, col.column_id Nota : En la consulta, fue necesario filtrar por owner para que solo traiga las tablas necesarias.

COMO VER LOS ROLES DE UN USUARIO Para ver los roles del usuario conectado en ese momento: select username, granted_role from user_role_privs;

La siguiente select muestra los roles asignados a un usuario en concreto: select grantee, granted_role from dba_role_privs where grantee = upper ('&grantee') order by grantee; Para ver los roles asignado a un rol: select role, granted_role from role_role_privs; Para ver los roles definidos en la base de datos: select role from dba_roles;

Vous aimerez peut-être aussi