abd capitulo 2 acceso a la información 2013

23
10/11/2013 1 Capítulo 2 ACCESO A LA INFORMACIモN En los sistemas actuales, la seguridad de acceso a la información de una base de datos contempla dos tipos de mecanismos: Seguridad integrada: Proporcionada por el Sistema Operativo bajo el que se está trabajando mediante un sistema de usuarios y permisos junto con un servicio de directorios LDAP (Lightweight Directory Access Protocol - Protocolo Ligero de Acceso a Directorios). Seguridad nativa: Propia del SGBD que consiste en un software del servidor que controla las autorizaciones a los distintos usuarios para acceder a los distintos elementos de una base de datos.

Upload: sebastian-rubio-gonzalez

Post on 22-Dec-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Administracion Base de datos

TRANSCRIPT

10/11/2013

1

Capítulo 2

ACCESO A LA INFORMACIÓN

En los sistemas actuales, la seguridad de acceso a la informaciónde una base de datos contempla dos tipos de mecanismos:

• Seguridad integrada: Proporcionada por el Sistema Operativobajo el que se está trabajando mediante un sistema de usuarios ypermisos junto con un servicio de directorios LDAP (LightweightDirectory Access Protocol - Protocolo Ligero de Acceso aDirectorios).

• Seguridad nativa: Propia del SGBD que consiste en un softwaredel servidor que controla las autorizaciones a los distintosusuarios para acceder a los distintos elementos de una base dedatos.

10/11/2013

2

Una Vista es una tabla virtual sin contenido de la que sólo sealmacena su definición de manera que cuando se hace referenciaa ella como tabla, se ejecuta la sentencia SQL asociada a ella.

La diferencia entre ejecutar una sentencia SQL y una vista es quela sentencia se tiene que compilar y ejecutar mientras que la vistaya está compilada cuando se almacena, por lo que el tiempo deejecución es menor en la vista que en la sentencia.

Otra ventaja que tienen las vistas es que permiten definiresquemas externos para los grupos de usuarios que se tienen enun sistema de bases de datos con lo que se puede controlar elacceso a los datos que en cada caso sean necesarios.

Vista:Create view VISTA_EMPLE as

Select NUM_EMP, NOMBRE, SALARIO

From EMPLEADOS;

Tabla base:EMPLEADOS;

UsuarioUsuario

10/11/2013

3

Sintaxis para crear una vistaSintaxis para crear una vista

CREATE [OR REPLACE] VIEW

[Esquema.]Nombre_vista [lista de columnas] AS

Sentencia select;

Ejemplo:

CREATE VIEW EMPLE20 AS

SELECT NUM_EMP, APELLIDO, CATEGORIA, SALARIO

FROM EMPLEADOS

WHERE NUM_DEPT=20;

La ejecución de la sentencia CREATE VIEW hace que secompile la sentencia SELECT y se almacena ya compilada.

Sintaxis para eliminar una vistaSintaxis para eliminar una vista

DROP VIEW [Esquema.]Nombre_vista;

Ejemplo:

DROP VIEW EMPLE20;

Existe también posibilidad de modificar la definición de unavista con la sentencia ALTER VIEW.

10/11/2013

4

2.3. Los usuarios2.3. Los usuarios

Un Usuario en un Sistema de Bases de Datos es una cuenta através de la cual una persona puede conectarse al SGBD paramanejar los objetos de una base de datos a los que tenga acceso.

Para crear una cuenta de usuario se utiliza la sentencia:

CREATE USER Nombre_usuario

IDENTIFIED BY Password [opciones];

Crear y eliminar un usuarioCrear y eliminar un usuario

Ejemplos:

CREATE USER USUARIO1 IDENTIFIED BY ‘USUARIO1’; (MySQL)

CREATE USER USUARIO1 IDENTIFIED BY USUARIO1

DEFAULT TABLESPACE DATOS_USUARIO1

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON DATOS_USUARIO1; (Oracle)

Para borrar un usuario:

DROP USER Nombre_usuario [CASCADE];

DROP USER USUARIO1; CASCADE se incluye para indicarque junto al usuario se eliminentodos sus objetos.

10/11/2013

5

Modificar un usuarioModificar un usuario

Para modificar un usuario se utiliza ALTER USER que tiene lasmismas opciones que CREATE USER. (No existe en MySQL).

Por ejemplo, para cambiar la password de un usuario:

ALTER USER Nombre_usuario

IDENTIFIED BY Nueva_password;

Es importante recordar que para ejecutarestas instrucciones hay que estarconectado al SGBD como administrador.

Modificar un usuario enModificar un usuario en MySQLMySQL

Para modificar un usuario en MySQL hay que hacerlo modificandoel dato en la tabla user del esquema mysql o bien utilizandoMySQL Administrator.

Por ejemplo, para cambiar la password de un usuario:

UPDATE mysql.user

set password=PASSWORD(’nueva_password’)

where user=‘Nombre_usuario’;FLUSH PRIVILEGES;

En MySQL cuando se cambia algún valor deuna tabla del sistema hay que ejecutar elcomando FLUSH PRIVILEGES

10/11/2013

6

Modificar un usuario enModificar un usuario en MySQLMySQL

Modificar un usuario en MySQLModificar un usuario en MySQL

Para cambiar el nombre de un usuario conservando todos susprivilegios se utiliza el comando:

RENAME USER Nombre_antiguo TONombre_nuevo;

Para cambiar la password de un usuario también se utiliza:

SET PASSWORD for Nombre_usuario =

PASSWORD(‘Nueva_password’);

10/11/2013

7

2.4. Los privilegios2.4. Los privilegios

Son los permisos que se conceden a un usuario para poder realizaruna acción o manipular un determinado objeto de una Base deDatos.

Para conceder privilegios se utiliza la sentencia GRANT.

Para retirar privilegios se utiliza la sentencia REVOKE.

Estas sentencias pueden variar ligeramente según el SGBD que seesté utilizando.

2.4.1. El sistema de privilegios de2.4.1. El sistema de privilegios de MySQLMySQL

La sintaxis de la sentencia GRANT en MySQL es:

GRANT tipo_privilegio [(columnas)], ...

ON {nombre_tabla|*|*.*|esquema.*|esquema.nombre_tabla}

TO usuario [IDENTIFIED BY [password] ‘password’], ...

WITH opcion [opcion] ...

Donde opción puede ser:

GRANT OPTION

|MAX_QUERIES_PER_HOUR valor

|MAX_UPDATES_PER_HOUR valor

|MAX_CONNECTIONS_PER_HOUR valor

|MAX_USER_CONNECTIONS valor

En MySQL es posible conceder permisos aun usuario a nivel de esquema o base dedatos, tabla o columna de tabla.

10/11/2013

8

ElEl sistema de privilegios desistema de privilegios de MySQLMySQLEjemplo:

GRANT SELECT (num_emp, apellido, salario, num_dept)

ON empleados

TO prueba;

Privilegios típicos:

SELECT, INSERT y UPDATE

Se pueden aplicar a:

Nombre_tabla Afecta a una tabla.* Afecta a todas las tablas del esquema utilizado.*.* Afecta a todas las tablas de todos los esquemas.Esquema.* Afecta a todas las tablas del esquema referenciado.Esquema.nom_tabla Afecta a la tabla del esquema referenciado.

ElEl sistema de privilegios desistema de privilegios de MySQLMySQL

Ejemplos:

GRANT SELECT, INSERT ON test.* TO prueba;

GRANT ALL PRIVILEGES ON test.empleados TO prueba;

GRANT SELECT ON *.* TO prueba WITH GRANT OPTION;

GRANT SELECT, INSERT, UPDATE, DELETE

ON test.* TO prueba

WITH MAX_QUERIES_PER_HOUR 10 MAX_UPDATES_PER_HOUR 10;

Ver cuadro 2.2 (pág. 61) con las opciones adicionales a los permisos.Ver cuadro 2.3 (pág. 62) con los tipos de permisos en MySQL.

10/11/2013

9

ElEl sistema de privilegios desistema de privilegios de MySQLMySQLLa sintaxis de la sentencia REVOKE en MySQL es:

REVOKE tipo_privilegio [(columnas)], ...

ON {nombre_tabla|*|*.*|esquema.*|esquema.nombre_tabla}

FROM usuario [, usuario] ...;

Ejemplos:

REVOKE SELECT, INSERT ON test.* FROM prueba;

REVOKE ALL PRIVILEGES ON test.empleados FROM prueba;

REVOKE SELECT ON *.* FROM prueba;

REVOKE SELECT, INSERT, UPDATE, DELETE

ON test.* FROM prueba;

También se pueden manipular los permisos mediante tablas delcatálogo de MySQL que se encuentran en el esquema mysql. Lastablas son: user, db, host, tables_priv y colums_priv.

ElEl sistema de privilegios desistema de privilegios de MySQLMySQL

10/11/2013

10

ElEl sistema de privilegios desistema de privilegios de MySQLMySQLAutorización de ejecución de consulta

Consulta de permisos en la tabla user

Consulta de permisos en las tablas db y host

Consulta de permisos en la tabla tables_priv

Consulta de permisos en la tabla columns_priv

¿Hay permisos?

¿Hay permisos?

¿Hay permisos?

¿Hay permisos?

Devuelveresultados

Grado2: Consulta de permisosa nivel db.* y @host

Devuelveresultados

Devuelveresultados

Devuelveresultados

Accesodenegado

SI

SI

SI

SI

NO

NO

NO

NO

Grado1: Consulta depermisos a nivel *.*

Grado3: Consulta de permisosa nivel db.tabla

Grado4: Consulta de permisosa nivel db.tabla.columna

2.4.2. El sistema de privilegios de Oracle2.4.2. El sistema de privilegios de Oracle

El sistema de privilegios de Oracle clasifica los permisos en dostipos:

• Privilegios del sistema.• Privilegios de objetos.

Además define los siguientes conceptos:

• ROLES: Conjunto de privilegios que se pueden asignar a undeterminado usuario. Un usuario puede pertenecer a varios roles.

• PERFILES: Conjunto de restricciones sobre el uso de recursos. Cadausuario puede pertenecer a un único perfil.

Oracle permite asignar a un usuario privilegios del sistema, deobjetos, roles y perfiles mediante la sentencia GRANT.

10/11/2013

11

ElEl sistema de privilegios de Oraclesistema de privilegios de Oracle

La sintaxis de la sentencia GRANT en Oracle es:

GRANT privilegio, ...

[ON [esquema.]objeto]

TO {usuario|rol|PUBLIC}

[WITH {GRANT|ADMIN} OPTION];

Donde privilegio puede ser:

Tipo_privilegio [(columnas)][, ...]

|privilegio_sistema

|rol

ElEl sistema de privilegios de Oraclesistema de privilegios de Oracle

Ejemplos de privilegios sobre un objeto a un usuario o a un rol:

GRANT SELECT, UPDATE (num_emp, apellido, salario)

ON empleados

TO scott;

GRANT ALL PRIVILEGES

ON empleados

TO nombre_rol;

Ejemplos de privilegios del sistema a un usuario o a un rol:

GRANT CREATE VIEW TO usuario;

GRANT CREATE VIEW TO resource;

10/11/2013

12

ElEl sistema de privilegios de Oraclesistema de privilegios de Oracle

Ejemplos de asignación de roles a un usuario o a otro rol:

GRANT CONNECT, RESOURCE TO usuario;

GRANT CONNECT, RESOURCE TO nombre_rol;

Ejemplos de asignación de privilegios a todos los usuarios:

GRANT CONNECT, RESOURCE TO PUBLIC;

GRANT SELECT ON empleados TO PUBLIC;

Las cláusulas WITH GRAN OPTION y WITH ADMIN OPTION

permiten conceder el privilegio en cuestión a otro usuario o rol.

Privilegios sobre objetos en Oracle

ALTER Permite cambiar la definición de un objeto.DELETE Permite el uso de DELETE.EXECUTE Permite ejecutar un procedimiento, función, paquete,…INDEX Permite crear índices en una tabla.INSERT Permite el uso de INSERT.REFERENCES Permite crear claves foráneas (ajenas).SELECT Permite el uso de SELECT.UPDATE Permite el uso de UPDATE.ALL o ALL PRIVILEGES Concede todos los permisos incluido GRANT OPTION

ElEl sistema de privilegios de Oraclesistema de privilegios de Oracle

Cuadro 2.4 (pág. 66)

10/11/2013

13

ElEl sistema de privilegios de Oraclesistema de privilegios de OracleVer cuadro 2.5 (pág. 66)

ElEl sistema de privilegios de Oraclesistema de privilegios de Oracle

La sintaxis de la sentencia REVOKE en Oracle es:

REVOKE privilegio

[ON [esquema.]objeto]

FROM {usuario|rol|PUBLIC};

Donde privilegio puede ser:

Tipo_privilegio [(columnas)][, ...]

|privilegio_sistema

|rol

10/11/2013

14

ElEl sistema de privilegios de Oraclesistema de privilegios de Oracle

Ejemplos:

REVOKE SELECT, UPDATE (num_emp, apellido, salario)

ON empleados

FROM scott;

REVOKE CONNECT FROM PUBLIC;

REVOKE CREATE VIEW FROM usuario;

REVOKE ALL PRIVILEGES

ON empleados

FROM usuario;

REVOKE CONNECT, RESOURCE FROM usuario;

REVOKE CONNECT, RESOURCE FROM nombre_rol;

ElEl sistema de privilegios desistema de privilegios de Oracle (roles)Oracle (roles)

Un rol es un concepto que permite simplificar la tarea de asignarpermisos a los usuarios.

Para crear un rol se utiliza la sentencia CREATE ROLE cuya sintaxises:

CREATE ROLE nombre_rol [opciones_identificación];

Donde opciones_identificación puede ser:

NOT IDENTIFIED | IDENTIFIED {BY password | EXTERNALLY |

GLOBALLY | USING [esquema].package}

NOT IDENTIFIED hace que no sea necesaria ninguna contraseña para activarlo.IDENTIFIED BY password hace necesaria la autenticación antes de activarlo

EXTERNALLY hace que sea necesaria una autorización externa (Sist. Operativo).GLOBALLY hace que sea necesaria una autorización externa (Oracle Security Service).USING permite que se active el rol mediante aplicaciones de un determinado paquete.

10/11/2013

15

ElEl sistema de privilegios desistema de privilegios de Oracle (roles)Oracle (roles)

Cuando un usuario se conecta a Oracle se le asignanautomáticamente los permisos que se le hayan concedidomediante la sentencia GRANT y los permisos que tengan los rolespor defecto del usuario.

Para asignar un rol por defecto a un usuario se utiliza:

ALTER USER DEFAULT ROLE [opciones_rol];

Donde opciones_rol puede ser:

rol [, rol]... | ALL [EXCEPT rol] | NONE

NONE permite anular el rol por defecto.ALL permite habilitar todos los roles excepto los que seindiquen.

ElEl sistema de privilegios desistema de privilegios de Oracle (roles)Oracle (roles)

Ejemplos:CREATE ROLE LECTURA1;

GRANT SELECT ON EMPLEADOS TO LECTURA1;

GRANT SELECT ON DEPARTAMENTOS TO LECTURA1;

GRANT LECTURA1 TO USUARIO;

------------------------------------------------------CREATE ROLE LECTURA2 IDENTIFIED BY LECTURA2;

GRANT SELECT ON EMPLEADOS TO LECTURA2;

GRANT SELECT ON DEPARTAMENTOS TO LECTURA2;

GRANT LECTURA2 TO USUARIO;

-- Para activar los permisos de LECTURA2

SET ROLE LECTURA2 IDENTIFIED BY LECTURA2;

SET ROLE se utiliza para activar los privilegios de un rol con password.

10/11/2013

16

ElEl sistema de privilegios desistema de privilegios de Oracle (perfiles)Oracle (perfiles)

Los perfiles se usan para limitar la cantidad de recursos del sistemao de la base de datos disponibles para un usuario.

Existe un perfil DEFAULT que concede recursos ilimitados a todoslos usuarios.

Gestión de privilegios y recursos

ElEl sistema de privilegios desistema de privilegios de Oracle (perfiles)Oracle (perfiles)Para crear un perfil se utiliza la sentencia:

CREATE PROFILE nombre_perfil LIMIT recursos … ;

Donde recursos es:

recurso {cantidad | UNLIMITED | DEFAULT} | password

recurso puede ser:

SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL |

CONNECT_TIME | IDLE_TIME | LOGICAL_READS_PER_SESSION |

LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT | PRIVATE_SGA

password puede ser:

parametro { cantidad | UNLIMITED | DEFAULT }

parametro puede ser:FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME |

PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX |

PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME

10/11/2013

17

Recursos en Oracle (select * from user_resource_limits;)

SESSIONS_PER_USER Número máximo de sesiones abiertas por un usuario.

CPU_PER_SESSION Tiempo límite para una sesión expresado en centésimas de seg.

CPU_PER_CALL Tiempo límite de respuesta para una llamada (parse,fetch o ejecución) en centésimas de segundo.

CONNECT_TIME Tiempo límite total de una sesión expresado en minutos.

IDLE_TIME Tiempo máximo de inactividad de una sesión expresado en min.

LOGICAL_READS_PER_SESSION Número máximo de bloques de datos leídos por sesión.

LOGICAL_READS_PER_CALL Número máximo de bloques de datos leídos por llamada.

PRIVATE_SGA Tamaño de memoria que una sesión puede reservar delespacio privado de memoria del SGA.

COMPOSITE_LIMIT Coste total en recursos de una sesión.

ElEl sistema de privilegios desistema de privilegios de Oracle (perfiles)Oracle (perfiles)Ver cuadro 2.6 (pág. 69)

ElEl sistema de privilegios desistema de privilegios de Oracle (perfiles)Oracle (perfiles)

Ejemplos:CREATE PROFILE OPERADOR LIMIT

SESSIONS_PER_USER 5 -- 5 sesiones simultáneas

CPU_PER_SESSION UNLIMITED -- Tiempo de CPU ilimitado

IDLE_TIME 10 -- 10 minutos de inactividad

CONNECT_TIME 120; -- 120 minutos totales de

-- conexión

ALTER PROFILE OPERADOR LIMIT CONNECT_TIME UNLIMITED;

-- Tiempo de conexión ilimitado

CREATE USER PRUEBA IDENTIFIED BY PRUEBAQUOTA UNLIMITED ON USERSPROFILE OPERADOR;

10/11/2013

18

ElEl sistema de privilegios desistema de privilegios de Oracle (Resumen)Oracle (Resumen)

Privilegio Permiso para realizar una acción en un SGBD, se puede asignar aun usuario o a un rol.

Rol Conjunto de privilegios, asignables a un usuario o a otro rol.

Usuario Colección de objetos y privilegios identificado con un nombre ypassword que permite su utilización.

Perfil Conjunto de restricciones relativas al uso de recursos que puedeasignarse a un usuario. Un usuario sólo puede tener un perfil.

Recurso Uso dentro de un SGBD susceptible de ser restringido, asignable aun perfil.

Concepto Significado

ElEl sistema de privilegios desistema de privilegios de Oracle (Resumen)Oracle (Resumen)

Privilegios GRANT (conceder un privilegio a un usuario o a un rol)REVOKE (denegar un privilegio a un usuario o a un rol)

Roles CREATE ROLE (crear)ALTER ROLE (modificar)DROP ROLE (borrar)SET ROLE (activar, desactivar)GRANT (conceder un permiso o un rol a un rol)REVOKE (denegar un permiso o un rol a un rol)

Usuarios CREATE USER (crear)ALTER USER (modificar)DROP USER (borrar)GRANT (conceder un permiso o un rol a un usuario)REVOKE (denegar un permiso o un rol a un usuario)

Perfiles yRecursos

CREATE PROFILE (crear)ALTER PROFILE (modificar)DROP PROFILE (borrar)ALTER USER ... PROFILE (asignar a un usuario)CREATE USER ... PROFILE (asignar a un usuario)

Se utilizan los comandosPara lagestión de

10/11/2013

19

ElEl sistema de privilegios desistema de privilegios de Oracle (Resumen)Oracle (Resumen)

Cómo ver la password encriptada de un usuario:

SQL>select password from dba_users where username='SCOTT';

Para modificar la password de un usuario:

SQL>alter user scott identified by nueva;

SQL>alter user scott identified by values 'F894844C34402B67';

En Oracle, los nombres de los usuarios y sus passwords encriptadas sealmacenan en la propia base de datos.

SQL>select * from dba_users;

Sys SQL>alter user sys identified by change_on_install;

System SQL>alter user system identified by manager;

Scott SQL>alter user scott identified by tiger;

ElEl sistema de privilegios desistema de privilegios de Oracle (Resumen)Oracle (Resumen)

Vistas más relevantesUsuarios dba_users user_users all_usersRoles dba_rolesRoles asignados aroles o usuarios dba_role_privs user_role_privsPrivilegios asignadosa roles o usuarios dba_sys_privsPermisos sobre tablasasignados a roles o usuarios dba_tab_privsRoles asignados a roles role_role_privsPrivilegios de cada rol role_sys_privsLímites de recursos user_resource_limitsPerfiles y sus límitesde recursos asociados dba_profilesLímites de recursos encuanto a restricciones en claves user_password_limitsLímites de recursos en cuantoa espacio máximo en tablespaces dba_ts_quotas user_ts_quotas

dba_useuser_userall_usersdba_role--dba_role_privuser_role_privs-dba_sys_priv--dba_tab_priv--role_role_privsrole_sys_privs-user_resource_limits-dba_profiles---user_password_limit-dba_ts_quotuser_ts_quota-

10/11/2013

20

ElEl sistema de privilegios desistema de privilegios de Oracle (Resumen)Oracle (Resumen)

Limites en uso del espacio en disco (select * from dba_ts_quotas;)

ALTER USER SCOTT QUOTA UNLIMITED ON USER_DATA;ALTER USER SCOTT QUOTA 5M ON TEMPORARY_DATA;ALTER USER SCOTT QUOTA 0 ON SYSTEM;

2.5. El catálogo de metadatos2.5. El catálogo de metadatos

El catálogo de metadatos o diccionario de datos es una de laspartes más importantes de un SGBD.

Su misión es proporcionar información al propio sistema y aladministrador (DBA) de todas las estructuras de informaciónalmacenadas en una base de datos.

REGLA 4 DE CODDCATÁLOGO DINÁMICO EN LÍNEA BASADO EN EL MODELO RELACIONAL

La descripción de la base de datos se representa a nivel lógico de lamisma manera que los datos normales, de modo que los usuariosautorizados pueden aplicar el mismo lenguaje relacional a su consulta,igual que lo aplican a los datos normales.

10/11/2013

21

2.5.1. El catálogo de MySQL2.5.1. El catálogo de MySQL

MySQL tiene una base dedatos denominadainformation_schema en laque almacena la definiciónde las tablas, vistas, índicesy el estado general delSGBD.

TABLA

SCHEMATA Bases de datos disponibles en el SGBD.TABLES Tablas de todas las bases de datos.COLUMNS Columnas de todas las tablas.VIEWS Vistas disponibles en todas las bases de datos.SESSION_STATUS Estado de la sesión actual.GLOBAL_STATUS Estado del Sistema Gestor de Bases de DatosSESSION_VARIABLES Parámetros de configuración de la sesión.GLOBAL_VARIABLES Parámetros de configuración del sistema.USER_PRIVILEGES Privilegios de los usuarios.

Cuadro 2.7 (pág. 72)

ElEl catálogo decatálogo de MySQLMySQL

10/11/2013

22

Por otra parte, tieneotra base de datosmysql en la quealmacena la informacióncorrespondiente a losusuarios y susprivilegios.

El catálogo de MySQLEl catálogo de MySQL

El catálogo de MySQLEl catálogo de MySQLConsultando las tablas del catálogo con la sentencia SELECT se puedeobtener información muy útil. Ejemplos:

SELECT table_name, table_type, engine

FROM information_schema.tables

WHERE table_schema = 'test'

ORDER BY table_name DESC;

SELECT table_schema, table_name, privileges

FROM information_schema.tables

WHERE table_schema = 'test';

Mediante el comando show se puede obtener información del catálogo deforma más sencilla.Select * from session_status

where variable_name='UPTIME';

Show status like 'UPTIME';

Tiempo que lleva el SGBD activo

10/11/2013

23

2.5.2. El catálogo de Oracle2.5.2. El catálogo de OracleOracle también utiliza vistas para obtener información del catálogo de datos.Para ello utiliza los prefijos:

• user_*: Información de los objetos que pertenecen al usuario.Ejemplos: user_tables, user_views,…

• all_: Información de todos los objetos a los que tiene acceso el usuario.Ejemplo: all_tables,…

• dba_: Información de todos los objetos de la base de datos.Ejemplo: dba_tables,…

select table_name from user_tables;

select owner, table_name from all_tables;

select owner, table_name from dba_tables;

También existen las vistas v$ que proporcionan estadísticas en tiempo realde la utilización del SGBD.

select sid, serial#, status from v$session where username =‘scott’;