6
UNIVERSIDAD LAICA “ELOY ALFARO DE MANABÍ” TEMA: VISTAS Y ROLES DE USUARIOS AUTOR: RIVERA SANCHEZ JOHN VALENTIN DOCENTE: ING. PATRICIA QUIROZ. CÁTEDRA: BASE DE DATOS DISTRIBUIDAS CURSO: SEXTO NIVEL “A” AÑO LECTIVO: 2014 – 2015

vistas y roles de usuarios.docx

Embed Size (px)

Citation preview

UNIVERSIDAD LAICA ELOY ALFARO DE MANAB

TEMA:VISTAS Y ROLES DE USUARIOSAUTOR:RIVERA SANCHEZ JOHN VALENTINDOCENTE: ING. PATRICIA QUIROZ.CTEDRA:BASE DE DATOS DISTRIBUIDASCURSO:SEXTO NIVEL AAO LECTIVO: 2014 2015

Vistas

Enteora de bases de datos, unavistaes una consulta accesible como una tabla virtual en unabase de datos relacionalo en un conjunto dedocumentosen una base de datos orientada a documentos.Las vistas tienen la misma estructura que una tabla: filas y columnas. La nica diferencia es que slo se almacena de ellas la definicin, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarn igual que los de una tabla. De hecho, si no se sabe que se est trabajando con una vista, nada hace suponer que es as. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas condiciones existen restricciones para realizar el resto de las operaciones sobre vistas.Una vista se especifica a travs de una expresin de consulta (una sentencia SELECT) que la calcula y que puede realizarse sobre una o ms tablas. Sobre un conjunto de tablas relacionales se puede trabajar con un nmero cualquiera de vistas.La mayora de losSGBDsoportan la creacin y manipulacin de vistas. Las vistas se crean cuando se necesitan hacer varias sentencias para devolver una tabla final.La vista es una tabla virtual, que es el resultado de una consulta SQL en las que se carga los datos en el momento de ser llamada. La vista puede tener datos de una tabla o de la agrupacin de varias tablas. El objetivo de estas vistas es agilizar el proceso de consulta a una base de datos.Para entender este tema un poco mejor vamos a tomar como ejemplo, el siguiente modelo de datos

Si se tuviera que hacer un reporte de este modelo, donde aparecieran los siguientes datos el nombre (nombres y apellidos) de la persona, su genero y su estado civil (no en cdigo) seria necesario hacer una consulta de este tipo:SELECT P.CODIGO 'CODIGO', P.PRIMER_NOMBRE 'PRIMER NOMBRE', P.SEGUNDO_NOMBRE 'SEGUNDO NOMBRE', P.PRIMER_APELLIDO 'PRIMER APELLIDO', P.SEGUNDO_APELLIDO 'SEGUNDO APELLIDO', E.DESCRIPCION 'ESTADO CIVIL',G.DESCRIPCION 'GENERO'FROM PERSONA P, ESTADO_CIVIL E, GENERO GWHERE P.COD_ESTADO_CIVIL = E.CODIGO AND P.COD_GENERO = G.GENEEROPero al ver que es frecuente este tipo de reportes, se ve la necesidad de crear una vista para guardar la consulta SQL. Para crear una vista se utilizara el siguiente cdigoCREATE OR REPLACE VIEW NOMBRE_VISTA AS( En este espacio va la consulta SQL que se realiza confrecuencia);dondeCREATE OR REPLACE(OR REPLACEes opcional pero recomendable, para que la remplace en caso de que exista) lo que hace es crear o remplazar la vista y NOMBRE_VISTA es el nombre que se le desee dar a la vista. EjemploCREATE OR REPLACE VIEW PERSONA_GENERO_ESTADO AS(SELECT P.CODIGO 'CODIGO', P.PRIMER_NOMBRE 'PRIMER NOMBRE', P.SEGUNDO_NOMBRE 'SEGUNDO NOMBRE', P.PRIMER_APELLIDO 'PRIMER APELLIDO', P.SEGUNDO_APELLIDO 'SEGUNDO APELLIDO', E.DESCRIPCION 'ESTADO CIVIL', G.DESCRIPCION 'GENERO'FROM PERSONA P, ESTADO_CIVIL E, GENERO GWHERE P.COD_ESTADO_CIVIL = E.CODIGO AND P.COD_GENERO = G.GENEERO); y en una prxima vez que se requiera hacer esa consulta bastara con el siguiente query:SELECT * FROM PERSONA_GENERO_ESTADOROLES DE USUARIOSTipos de Usuarios en Base de Datos Usuario Final:es lapersonaque utiliza los datos, esta persona ve datos convertidos en informacin: Desarrollador de Aplicaciones:es la persona que desarrolla lossistemasque interactun con la Base de Datos. DBA:es la persona que asegura integridad, consistencia, redundancia,seguridadeste es el Administrador de Base de Datos quien se encarga de realizar elmantenimientodiario o peridico de los datos.Las personas tienen acceso DBMS se clasifican de la siguiente manera:USUARIOS INGENUOS. Son aquellos que interactan con el sistema por medio de aplicaciones permanentes.USUARIOS SOFISTICADOS.- son aquellos con la capacidad de acceder a la informacin pormediosde lenguajes de consulta.PROGRAMADORES DE APLICACIN.- son aquellos con un ampliodominiodel DML capaces de generar nuevos mdulos o utileras capaces de manejar nuevos datos en el sistema.USUARIOS ESPECIALIZADOS.- son aquellos que desarrollan mdulos que no se refieren precisamente al manejo de los datos, si no a aplicaciones avanzadas como sistemas expertos, reconocimientos deimgenes, procesamiento de audio y dems.Un rol es una coleccin de privilegios del sistema y de objetos que se otorgan a usuarios y a otras tareas.Oracledispone de muchos roles predeterminados mientras queMySQLno los soporta.El rolCONNECECTpermite al usuario conectarse a la base de datos, crear tablas, vistas, secuencias, sinnimos y otros objetos en el esquema asociado.El rolRESOURCEpermite permite al usuario utilizar los recursos tpicos para la programacin de aplicaciones (clusters, disparadores, paquetes, funciones, etc.)El rol DBA, tpico de los administradores, permite al usuario realizar cualquier funcin de base de datos y disponer de cualquier privilegioLa sentencia que permite crear roles esCREATE ROL. Su sintaxis es la siguiente1234CREATE ROLE rol[ NOT IDENTIFIED| IDENTIFIED {BY password | USING [usuario.] paquete| EXTERNALLY | GLOBALLY} ];

NOT IDENTIFIEDindica que no se requiere contrasea para utilizar el rol,INDENTIFIED BYpassword indica que se requiere la contrase;a especificada.EXTERNALLYcrea un rol de usuario externo yGLOBALLYcrea un rol de usuario global.Ejemplo: Crear un rol y asignarle privilegios123CREATE ROLE miPrimerRole;GRANT SELECT, INSERT, UPDATE, DELETE ON tablaTO miPrimerRole;

Ejemplo: Crear un rol y asignarle todos los privilegios12CREATE ROLE miPrimerRole;GRANT ALL ON tabla TO miPrimerROLE;

Ejemplo: Asignar un rol a un usuario1GRANT miPrimerRole TO miUsuario;

Ejemplo: Eliminar un rol1DROP ROLE miPrimerRole;