Está en la página 1de 7

Unidad 5 Vistas 5.1 Definicin Objetivo de las Vistas 5.

2 Instrucciones Administracin de Vistas


http://www.slideshare.net/ZIscko/vistas-en-sql-y-my-sql http://www.buenastareas.com/ensayos/Tablas-Virtuales-Vistas/2224006.html http://es.scribd.com/doc/6581871/SQL1Vistas

Unidad 6 Seguridad 6.1 Esquemas de Autorizacin 6.2 Instrucciones Grant y Revoke


http://www.sqlserversi.com/2009/01/seguridad-en-sql-server.html http://tallerbd.hostoi.com/index.php?option=com_content&view=article&id=75&Itemid=89

Las vistas se pueden definir como tablas virtuales basadas en una o ms tablas o vistas y cuyos contenidos vienen definidos por una consulta sobre las mismas. Esta tabla virtual o consulta se le asigna un nombre y se almacena permanentemente en la BD, generando al igual que en las tablas una entrada en el diccionario de datos. Las vistas permiten que diferentes usuarios vean la BD desde diferentes perspectivas, as como restringir el acceso a los datos de modo que diferentes usuarios accedan slo a ciertas filas o columnas de una tabla. Desde el punto de vista del usuario, la vista es como una tabla real con filas y columnas, pero a diferencia de esta, sus datos no se almacenan fsicamente en la BD. Las filas y columnas de datos visibles a travs de la vista son los resultados producidos por la consulta que define la vista. En donde podemos visualizar los datos que consultemos. Si actualizamos los datos de una vista, actualizaremos la tabla, y si actualizamos la tabla estos cambios sern visibles desde la vista. Por que creamos vistas!! Seguridad: visualizamos solo una parte de la informacin que existe Comodidad: el modelo relacional no es cmodo para visualizar, tener una vista nos simplifica esta tarea. Creacin de vistas Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT vlida. CREATE VIEW <nombre_vista> AS(<sentencia_select>);

Creacin de vistas Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su cdigo. CREATE VIEW vAlquileres AS ( SELECT nombre, apellidos, matricula FROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ) Modificacin de vistas Si queremos, modificar la definicin de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo hacamos con las tablas. En este caso queremos aadir los campos fx_alquiler y fx_devolucion a la vista. ALTER VIEW vAlquileres AS ( SELECT nombre, apellidos, matricula, fx_alquiler, fx_devolucion FROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )) Eliminacin de vistas Por ltimo podemos eliminar la vista a travs de la sentencia DROP

VIEW. Para eliminar la vista que hemos creado anteriormente se utilizara: DROP VIEW vAlquileres; Unidad 6 Seguridad Los datos guardados en una base de datos deben estar protegidos contra los accesos no autorizados y ante destruccin y/o alteracin malintencionadas Accesos No Autorizados Lectura no autorizada de datos Modificacin no autorizada de datos Destruccin no autorizada de datos La Seguridad de las Bases de Datos se refiere a la proteccin frente a accesos malintencionados. La proteccin absoluta no es posible La idea que habitualmente se emplea es elevar el coste para quin lo realiza --> Medida disuasoria en la mayor parte de los casos Privilegios Por razones de seguridad, los sistemas SQL2 permiten obtener muchas clases de privilegios sobre los elementos de la base de datos; Entre ellos se encuentran: el derecho de seleccionar (leer), insertar, eliminar o actualizar relaciones y el derecho de referenciar relaciones (referirse a ellas en una restriccin); Los privilegios de insertar, actualizar y referenciar tambin pueden conseguirse en determinadas columnas de una relacin

Esquemas de Autorizacin Las autorizaciones de eliminacin y borrado se diferencian en que la autorizacin de borrado elimina slo las tuplas mientras que la autorizacin de eliminacin elimina la relacin. El usuario con autorizacin de recursos, y por tanto con la capacidad de crear nuevas relaciones, recibe automticamente todos los privilegios sobre ella. La autorizacin de ndices permite regular los recursos (los usuarios que realizan actualizaciones estaran tentados a eliminar ndices y los que realizan consultas a crearlos) La forma superior de privilegio o autoridad es la concedida al administrador de la base de datos Puede ocurrir que sea necesario autorizar a un usuario el acceso parcial a una relacin (ver unos atributos y otros no) Esto se puede conseguir mediante una combinacin de seguridad en el nivel relacional y en el nivel de las vistas La creacin de vistas no necesita la autorizacin de recursos El usuario que crea una vista no recibe necesariamente todos los privilegios sobre la misma (slo recibe los que no proporcionen autorizaciones adicionales a las que ya posee) Normalmente las autorizaciones no se conceden a usuarios individuales sino que se asocian a papeles o roles Los usuarios se asocian a papeles (ninguno, uno o varios) y reciben las autorizaciones que tengan esos papeles. El uso de papeles permite que los usuarios se conecten con su propio identificador nico incluso si van cambiando de papel

Creacin de Papeles en SQL La clusula CREATE ROLE se usa para crear papeles en SQL CREATE ROLE papel CREATE ROLE cajero CREATE ROLE gestor La clusula GRANT se usa para conceder o retirar privilegios en SQL GRANT lista_privilegios ON nombre_relacin TO lista_usuarios/papeles GRANT SELECT ON sucursal TO A, B, C GRANT UPDATE (importe) ON prestamo TO A, B GRANT REFERENCES (nombre_sucursal) ON sucursal TO A ALL PRIVILEGES concede todos los privilegios, PUBLIC hace referencia a todos los usuarios SQL permite asociar privilegios a los papeles definidos con la clusula CREATE ROLE CREATE ROLE cajero GRANT SELECT ON cuenta TO cajero GRANT cajero TO juan CREATE ROLE gestor GRANT cajero TO gestor GRANT gestor TO mara

Por defecto, un usuario o papel que recibe un privilegio no est autorizado a concedrselo a otros usuarios y/o papeles GRANT SELECT ON sucursal TO A WITH GRANT OPTION Para retirar un privilegio se emplea la clusula REVOKE REVOKE lista_privilegios ON nombre_relacin FROM lista_usuarios/papeles [RESTRICT|CASCADE] REVOKE SELECT ON sucursal FROM A, B, C REVOKE UPDATE (importe) ON prestamo FROM A, B REVOKE REFERENCES (nombre_sucursal) ON sucursal FROM A REVOKE GRANT OPTION FOR SELECT ON sucursal FROM A

También podría gustarte