- Información: Nombres de usuarios, seguridad (accesos permitidos, privilegios, roles...), información sobre los objetos, restricciones de integridad, diversas estadísticas. En general, mantienen información sobre las llamadas ESTRUCTURAS INTERNAS de la BD.
- Las tablas del diccionario son propiedad del usuario SYS. El usuario SYSTEM es propietario de diversas vistas sobre esas tablas, las cuales pueden ser utilizadas por el resto de los usuarios de la BD.
- Solo ORACLE debe escribir y leer en las tablas del diccionario:
- Oracle accede cada vez que se ejecuta una sentencia DDL.
- Los usuarios podrán acceder a algunas vistas: En general, no se deben modificar estas vistas.
El usuario SYS es el dueño del DD y tiene todos los permisos sobre cualquier objeto de la DB (también los de cualquier usuario).
Componentes de la DD:
- Tablas base: Una serie de tablas a las que el servidor de datos accede cada vez que se procesa una instrucción DDL de SQL o en algunos comandos DML.
- Vistas estáticas: Se crean durante la instalación del RDBMS y decodifican y resumen la información contenida en las tablas base. Durante la creación de estas vistas se generan sinónimos públicos para proveer el acceso a los usuarios del RDBMS. Estas vistas deben ser utilizadas para las labores de administración rutinarias que necesiten información específica sobre configuración y estado de la DB. Tienen el nombre de estáticas porque no mantienen información relacionada con las sesiones. Se dividen en 3 categorías:
- Vistas con prefijo USER: Puede utilizarlas cualquier usuario de la DB y se refieren a objetos poseídos por dicho usuario.
- Ej: Usuario dave ejecuta: SELECT * FROM USER_TABLES;
- Se desplegará toda la información de las tablas cuyo propietario sea dave.
- Vistas con prefijo ALL: Evidente, las podrá usar cualquier usuario y además añaden la columna OWNER al resto de información. Con estas vistas se puede tener acceso a la información de los objetos que el usuario es dueño además de los objetos públicos y los que el usuario tiene acceso (por pertenecer a un grupo de seguridad o poseer ciertos privilegios).
- Vistas con prefijo DBA: Dan información sobre todos los objetos de la DB. Usualmente también tienen la columna OWNER. Sólo las puede utilizar el administrador o usuarios con privilegio SELECT ANY TABLE o pertenezca a un rol que incluya el privilegio.
- Vistas dinámicas (o performance views): Incluyen información sobre las condiciones actuales de operación del RDBMS. La mayor parte son creadas durante la instalación y algunas se crean específicamente para monitorear cierta actividad. Todas se identifican por el prefijo V$.
- EJ: La vista dinámica V$_SESSION incluye información sobre las sesiones actuales y la vista V$SYSSTAT provee información estadística sobre el RDBMS. Para obtener información general sobre las vistas del diccionario de datos se podría utilizar esta consulta: SELECT * FROM DICTIONARY WHERE table_name LIKE ´%indicador%´;
Por ejemplo, para ver todas las vistas relacionadas con tablas podríamos ejecutar:
SELECT * FROM DICTIONARY WHERE table_name LIKE ´%TABLE%´;
Vistas del Diccionario de Datos
SELECT OWNER, TABLE-NAME FROM DBA_TABLES WHERE OWNER = ‘usuario'; | Para ver las tablas de los usuarios |
DESC USER_TABLES | Para ver lo que se guarda en las tablas |
SELECT TABLE_NAME FROM USER_TABLES; | Para saber las tablas que tiene el usuario |
USER_CONS_COLUMNS DBA_CONS_COLUMNS ALL_CONS_COLUMNS | Para ver las restricciones que afectan a las columnas |
USER_TABLES | Muestra las tablas propias del usuario activo |
ALL_TABLES | Muestra todas las tablas propias del usuario activo |
DBA_TABLES | Muestra todas las tablas de la BD's |
USER_CONSTRAINTS | Para ver las restricciones del usuario activo |
DBA_CONSTRAINTS | Para ver las restricciones de la BD's |
ALL_CONSTRAINTS | Para ver todas las restricciones |
SELECT * FROM USER_TABLESPACES; | Para ver todos los tablespaces |
SELECT_CATALOG_ROLE | Para ver entero el diccionario de datos |
SESSIONS_PRIVS | Información de los privilegios del usuario activo |
USER_SYS_PRIVS | Información de los privilegios de sistema del usuario activo |
DBA_SYS_PRIVS | Información de los roles y privilegios del sistema del usuario activo |
USER_TAB_PRIVS | Información sobre los privilegios de objeto relacionados con el usuario, tanto otorgados como concedidos |
USER_TAB_PRIVS_MADE | Privilegios concedidos |
USER_TAB_PRIVS_RECD | Privilegios recibidos |
SESSION_ROLES | Roles del usuario activo |
ROLE_SYS_PRIVS | Privilegios de sistema asignados a los roles |
ROLE_TAB_PRIVS | Privilegios sobre objetos asignados a los roles |
DBA_ROLES | Todos los roles del sistema |
DBA_PROFILES | Todos los perfiles de la BD's |
DBA_DATA_FILES | Archivos que componen mi espacio de tabla |
USER_FREE_SPACE | Tamaño libre de mi espacio de tabla |
DBA_FREE_SPACE | Tamaño libre en todos los tablespaces |
DBA_TABLESPACES | Tablespaces del sistema |
DBA_TS_QUOTAS | Uso de los tablespaces por los usuarios |