Sei sulla pagina 1di 47

Integridad y Seguridad en los sistemas de Bases de Datos

Javier Escobar Luis Ramirez Omar Asprino

Contenido
1. Restricciones de Integridad
1. 2. 3. 4. 5. Claves Primarias Restricciones de los Dominios Integridad Referencial Asertos Disparadores (Triggers)

2.

Seguridad y Autorizacin
1. 2. 3. 4. 5. 6. 7. Tipos de Seguridad Seguridad de la Base de Datos y el DBA Violaciones de Seguridad Autorizaciones y Vistas Cifrado y Autentificacin Control de Acceso Discrecional Control de Acceso Obligatorio

1. Integridad y Seguridad
Las restricciones de integridad proporcionan un medio de asegurar que las modificaciones hechas en la base de datos no provoquen la prdida de la consistencia de los datos. En el modelo Entidad Interrelacin existen dos restricciones: Declaracin de claves (Regla de la Entidad) Forma de la relacin (Regla de Integridad Referencial)

1.1. Claves Primarias


Es el mnimo subconjunto no vaco de atributos que permiten identificar en forma unvoca una tupla dentro de la relacin. Si existen varios conjuntos que cumplan esta condicin se denominan llaves candidatas y debe ser seleccionada una de estas como llave primaria. Los atributos que conforman denominan atributos primos. la clave primaria se

Esta definicin determina que para un valor llave primaria solo existir una tupla o registro en la tabla. Esta situacin garantiza que no se tendr informacin repetida o discordante para un valor de clave y puede ser usada como control, para evitar la inclusin de informacin inconsistente en las tablas.

1.2. Restricciones de los Dominios


A cada atributo se le debe asociar un dominio de valores posibles. El asociar un dominio a cierto atributo constituye una restriccin sobre los valores que puede tomar. Adems de los dominios "naturales", usados como tipos de datos, el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. Esta caracterstica, usada en forma correcta, se convierte en mecanismo de control, restriccin y validacin desde el DBMS, de los datos a ingresar.

1.3. Integridad Referencial (I)


La condicin de Integridad Referencial se refiere a que si un valor que aparece en una relacin para un conjunto de atributos determinado entonces aparece tambin en otra relacin para un cierto conjunto de atributos. La integridad referencial es una propiedad deseable en las bases de datos mediante la cual se garantiza que una entidad siempre se relaciona con otras entidades que existen en la base de datos. La integridad referencial es un sistema de reglas que utilizan la mayora de las bases de datos relacionales para asegurarse que los registros de tablas relacionadas son vlidos y que no se borren o cambien datos relacionados de forma accidental produciendo errores de integridad.

1.3. Integridad Referencial (II)


Cuando se define una columna como clave fornea, las filas de la tabla pueden contener en esa columna o bien el valor nulo (ningn valor), o bien un valor que existe en otra tabla, un error sera asignar a un habitante una poblacin que no est en la tabla de poblaciones.

La integridad referencial consiste en que los datos que referencian otros (claves forneas) deben ser correctos.

La integridad referencial se activa en cuanto creamos una clave fornea y a partir de ese momento se comprueba cada vez que se modifiquen datos que puedan alterarla.

1.3. Integridad Referencial (III)


Factura(Nmero, Factura(Nmero, CI, CI, Monto) Monto) Persona(CI, Persona(CI, Nombre, Nombre, Direccin) Direccin)
Una persona se identifica por su atributo CI (Cdula de Identidad). Tiene adems otros atributos como el nombre y la direccin. La entidad Factura tiene un atributo CI (del cliente) que identifica a quin pertenece la factura. Por sentido comn es evidente que todo valor de CI debe corresponder con algn valor existente del atributo CI de la entidad Persona.

1.3. Integridad Referencial (IV)


Cuando se crea una nueva instancia de Factura, la integridad referencial exige que el atributo CI coincida con el atributo CI de alguna instancia de la entidad Persona. En caso contrario, no se permite la operacin. Cuando se intenta eliminar una instancia de Persona, la integridad referencial exige que no exista ninguna factura asociada, es decir, se comprueba que no existe ninguna instancia de Factura cuyo atributo CI coincida con el atributo CI de la instancia a borrar. En caso contrario, no se permite la operacin.

1.3. Integridad Referencial (V)


Cundo se pueden producir errores en los datos? Cuando insertamos una nueva fila en la tabla secundaria y el valor de la clave fornea no existe en la tabla principal. Cuando modificamos el valor de la principal de un registro que tiene hijos. clave

Cuando modificamos el valor de la clave fornea, el nuevo valor debe existir en la tabla principal. Cuando queremos borrar una fila de la tabla principal y ese registro tiene hijos.

1.3. Integridad Referencial (VI)


Actualizar registros en cascada: Esta opcin le indica al SGBD que cuando se cambie un valor del campo clave de la tabla principal, automticamente cambiar el valor de la clave fornea de los registros relacionados en la tabla secundaria. Eliminar registros en cascada: Esta opcin le indica al SGBD que cuando se elimina un registro de la tabla principal automticamente se borran tambin los registros relacionados en la tabla secundaria.

1.4. Asertos (I)


Un Aserto es un predicado que expresa una condicin que se desea que la base de datos satisfaga siempre. Las integridades antes vistas son formas especiales de asertos. Cuando se crea un aserto el sistema comprueba su validez. Si el aserto es vlido, slo se permiten las modificaciones posteriores de la base de datos que no hagan que se viole el aserto.

1.4. Asertos (II)


La suma de todos los importes de los prstamos de cada sucursal debe ser menor que la suma de todos los saldos de las cuentas de esa sucursal.
create assertion restriccin-suma check (not exists (select * from sucursal where (select sum(importe) from prstamo where prstamo.nombre-sucursal = sucursal.nombre-sucursal) >= (select sum (importe) from cuenta where prstamo.nombre-sucursal = sucursal.nombre-sucursal)))

1.5. Disparadores (Triggers) (I)


Un Disparador es una orden que el sistema ejecuta de manera automtica como efecto secundario de la modificacin de la base de datos. Incluidos en el estndar SQL 1999, son mecanismos tiles ejecutados por el SGBD para alertar a los usuarios o para realizar de manera automtica ciertas tareas cuando se cumplen determinadas condiciones.

1.5. Disparadores (Triggers)(II)


Una base de datos que tiene un conjunto de disparadores asociados se conoce como una Base de Datos Activa. Para disear un mecanismo disparador hay que cumplir dos requisitos: Especificar las condiciones en las que se va a ejecutar el disparador. Esto es, el evento que causa la comprobacin del disparador y una condicin que se debe cumplir para ejecutar el disparador. Especificar las acciones que se van a realizar cuando se ejecute el disparador.

1.5. Disparadores (Triggers) (III)


La descripcin de un disparador comprende de tres partes: Evento: Es el cambio hecho sobre la base de datos que activa al disparador. Condicin: Es la solicitud o prueba que se ejecuta cuando se activa el disparador. Accin: Es un procedimiento que es ejecutado cuando el disparador es activado y la condicin es verdadera.

1.5. Disparadores (Triggers) (IV)


Sintaxis para la creacin de triggers
CREATE CREATE TRIGGER TRIGGER <trigger <trigger name> name> <BEFORE|AFTER> <BEFORE|AFTER> <INSERT|DELETE|UPDATE> <INSERT|DELETE|UPDATE> ON ON <relation <relation name> name> FOR FOR EACH EACH <ROW|STATEMENT> <ROW|STATEMENT> EXECUTE EXECUTE PROCEDURE PROCEDURE <procedure <procedure name> name> (<function (<function args>); args>);

1.5. Disparadores (Triggers) (V)


CREATE CREATE TRIGGER TRIGGER iniciar_conteo iniciar_conteo BEFORE BEFORE INSERT INSERT ON ON Estudiantes Estudiantes DECLARE DECLARE cont cont INTEGER; INTEGER; BEGIN BEGIN cont cont := := 0; 0; END END CREATE CREATE TRIGGER TRIGGER contar contar AFTER AFTER INSERT INSERT ON ON Estudiantes Estudiantes WHEN WHEN (new.edad (new.edad < < 18) 18) FOR FOR EACH EACH ROW ROW BEGIN BEGIN cont cont := := cont cont + + 1; 1; END END

1.5. Disparadores (Triggers) (VI)


Los disparadores se crean con la finalidad de mantener la integridad del sistema. La activacin de un disparador puede activar otro disparador y crear as una cadena de activacin de disparadores. Si un disparador reactiva un disparador anterior se les denomina disparadores recursivos. Los disparadores pueden tener mltiples usos como la creacin de historiales de uso de la base de datos y dotar de funciones adicionales al SGBD donde se ejecutan.

2.1. Tipos de Seguridad (I)


La seguridad de las bases de datos es una rea amplia que abarca varios temas, entre ellos se encuentran los siguientes: Cuestiones ticas y legales relativas al derecho de tener acceso a cierta informacin Cuestiones de poltica a nivel gubernamental, institucional o corporativo, relacionadas con el tipo de informacin que no debe estar disponible para el publico Cuestiones relacionadas con el sistema, como los niveles del sistema en que deben manejarse diversas funciones de seguridad Las necesidades en las organizaciones de identificar mltiples niveles de seguridad y clasificar los datos y los usuarios segn estos niveles

2.1. Tipos de Seguridad (II)


En la actualidad se acostumbra hablar de dos tipos de mecanismos de seguridad en las bases de datos: Los mecanismos de seguridad discrecionales se usan para otorgar privilegios a los usuarios, incluida la capacidad de tener acceso a archivos, registros o campos de datos especficos en un determinado modo. Los mecanismos de seguridad obligatorios sirven para imponer igualdad de mltiples niveles clasificando los datos y los usuarios en varias clases (o niveles) de seguridad e implementando despus la poltica de seguridad apropiada de la organizacin.

2.1. Tipos de Seguridad (III)


Un problema de seguridad comn a todos los sistemas de computo es el de evitar que personas no autorizadas tengan acceso al sistema, ya sea para obtener informacin o para efectuar cambios mal intencionados en una porcin de la base de datos. El mecanismo de seguridad de un SGBD debe incluir formas de restringir el acceso al sistema como un todo. Esta funcin se denomina control de acceso y se pone en practicas creando cuentas de usuarios y contraseas para que es SGBD controle el proceso de entrada al sistema.

2.1. Tipos de Seguridad (IV)


Otra tcnica de seguridad es el cifrado de datos, que sirven para proteger datos confidenciales que se transmiten por satlite o por algn otro tipo de red de comunicaciones. El cifrado puede proveer proteccin adicional a secciones confidenciales de una base de datos.

Los datos se codifican mediante algn algoritmo de codificacin. Un usuario no autorizado que tenga acceso a los datos codificados tendr problemas para descifrarlos, pero un usuario autorizado contara con algoritmos (o claves) de codificacin o descifrado para descifrarlos.

2.2. Seguridad de la base de datos y el DBA


El administrador de bases de datos (DBA) es la autoridad central que controla un sistema de este tipo. El DBA tiene una cuenta privilegiada en el SGBD, a veces denominada cuenta del sistema, que confiere capacidades extraordinarias no disponibles para cuentas y usuarios ordinarios de la base de datos. El DBA ejecuta los siguientes tipos de acciones: Creacin de cuentas Concesin de privilegios Revocacin de privilegios Asignacin de niveles de seguridad El DBA es el responsable de la seguridad global del sistema de base de datos.

2.3. Violaciones de Seguridad (I)


Entre las formas de acceso malintencionado encuentran: La lectura no autorizada de los datos (robo informacin) La modificacin no autorizada de los datos La destruccin no autorizada de los datos se de

La seguridad de las bases de datos se refiere a la proteccin frente a accesos malintencionados. Para proteger la base de datos hay que adoptar medidas de seguridad en varios niveles: Sistema de bases de datos Sistema operativo Red Fsico Humano

2.3. Violaciones de Seguridad (II)


Debe conservarse la seguridad en todos estos niveles si hay que asegurar la seguridad de la base de datos. La debilidad de los niveles bajos de seguridad (fsico o humano) permite burlar las medidas de seguridad estrictas de niveles superiores (base de datos). La seguridad dentro del sistema operativo se aplica en varios niveles, que van desde las contraseas para el acceso al sistema hasta el aislamiento de los procesos concurrentes que se ejecutan en el sistema. El sistema de archivos tambin proporciona algn nivel de proteccin.

2.4. Autorizaciones y Vistas (I)


Los usuarios pueden tener varios tipos de autorizacin para diferentes partes de la base de datos. Entre ellas estn las siguientes: La autorizacin de lectura permite la lectura de los datos, pero no su modificacin. La autorizacin de insercin permite la insercin de datos nuevos, pero no la modificacin de los existentes. La autorizacin de actualizacin permite la modificacin de los datos, pero no su borrado. La autorizacin de borrado permite el borrado de los datos.

2.4. Autorizaciones y Vistas (II)


Adems de estas formas de autorizacin para el acceso a los datos, los usuarios pueden recibir autorizacin para modificar el esquema de la base de datos:

La autorizacin de ndices permite la creacin y borrado de ndices. La autorizacin de recursos permite la creacin de relaciones nuevas. La autorizacin de alteracin permite el aadido o el borrado de atributos de las relaciones. La autorizacin de eliminacin permite el borrado de relaciones.

2.4. Autorizaciones y Vistas (III)


Recordando el concepto de Vistas, decimos que: Una vista es una relacin virtual. Una vista se puede construir realizando operaciones como las del lgebra relacional a partir de las relaciones base de la base de datos. Las relaciones base son aquellas que forman parte directa de la base de datos, las que se encuentran almacenadas fsicamente. Estas proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de datos a ciertos usuarios. El usuario no sabr que existen aquellos atributos que se han omitido al definir una vista.

2.4. Autorizaciones y Vistas (IV)


En Postgre SQL: CREATE TABLE estudiante PRIMARY KEY, edad int2); (nombre varchar(20), ci int8

nombre
Mara Juan Luis

ci
17345678 12345657 23456923

edad
17 20 19

2.4. Autorizaciones y Vistas (V)


CREATE VIEW mayoresedad WHERE edad>18; AS SELECT * FROM estudiante

nombre
Juan Luis

ci
12345657 23456923

edad
20 19

Esto permite que cuando se consulte utilizando la vista mayores de edad, slo se impriman aquellas tuplas donde la edad es mayor a 18 en el caso de la relacin Estudiantes Estas proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de datos a ciertos usuarios. El usuario no sabr que existen aquellos atributos que se han omitido al definir una vista.

2.4. Autorizaciones y Vistas (VI)


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. Ese usuario slo recibe los privilegios que no proporcionan autorizaciones adicionales respecto de las que ya posee. Si un usuario crea una vista sobre la que no se puede conceder ninguna autorizacin, se deniega la solicitud de creacin de la vista.

2.5. Cifrado y Autentificacin (I)


Una tcnica de seguridad es el cifrado de datos que sirve para proteger datos confidenciales que se transmiten por satlite o algn tipo de red de comunicaciones. Asimismo el cifrado puede proveer proteccin adicional a secciones confidenciales de una base de datos. Los datos se codifican mediante algn algoritmo de codificacin. Un usuario no autorizado tendr problemas para descifrar los datos codificados, pero un usuario autorizado contar con algoritmos para descifrarlos.

2.5. Cifrado y Autentificacin (II)

Ejemplo que nos permitir saber cmo utilizar las nuevas funciones de cifrado y descifrado de DB2 en este caso hipottico para proporcionar una capa adicional de seguridad:
SET ENCRYPTION PASSWORD = 'SECRETO' INSERT INTO cliente VALUES('JOSE', ENCRYPT('1111222233334444')) SET ENCRYPTION PASSWORD = 'SECRETO' SELECT nombre, DECRYPT_CHAR(num_tarj) FROM cliente

2.5. Cifrado y Autentificacin (III)


En el cdigo anterior, la sentencia Set Encryption Password proporciona a DB2 la clave que se utilizar para cifrar (y descifrar) los datos. En la sentencia siguiente se muestra cmo se utiliza la funcin de cifrado de DB2 para codificar el nmero de la tarjeta de crdito antes de grabarlo en la tabla de DB2. La ltima sentencia muestra los pasos necesarios para ver el valor original del nmero de la tarjeta de crdito, 1111222233334444. En primer lugar, la clave de cifrado debe ser la misma que la que se utiliz para cifrar el nmero. Despus, debe utilizarse una de las funciones de descifrado de DB2 para convertir el valor binario cifrado en el valor original de tipo carcter.

2.5. Cifrado y Autentificacin (IV)


No hay palabras clave de SQL o DDS que indiquen a DB2 UDB que cifre o descifre automticamente los datos. Hay que realizar cambios en la aplicacin. La razn es que el cifrado y descifrado automtico no ofrece una capa adicional de seguridad. Si DB2 descifra automticamente el nmero de la tarjeta de crdito para todos los usuarios que lean la tabla de clientes, entonces dicho nmero sera visible para los mismos usuarios que antes de cifrarlo. nicamente podr sacar partido de la seguridad que ofrece el cifrado si cambia las aplicaciones y las interfaces para que descifren de forma selectiva los datos para un subconjunto de usuarios autorizados.

2.6. Control de Acceso Discrecional (I)


Obviamente, una BD para una empresa contiene grandes cantidades de informacin y usualmente tiene varios grupos de usuarios, la mayora de estos usuarios necesitan acceder slo a una pequea parte de los datos.

Por ello, un DBMS tiene dos enfoques principales para esto: 1.- Control de acceso discrecional: Previene de accesos no autorizados a la base de datos y est basado en los derechos de acceso o privilegios y mecanismos para darle al usuario tales privilegios.

2.6. Control de Acceso Discrecional (II)


Acceso discrecional es un modo de restringir el acceso a la informacin basado en privilegios. Dos niveles de asignacin de privilegios: Nivel de cuenta: En este nivel el administrador especifica los privilegios particulares que tiene cada usuario, independiente de las tablas de la BD (CREATE TABLE, CREATE VIEW, ALTER, MODIFY, SELECT). Nivel de relacin: En este nivel se controlan los privilegios para tener acceso cada relacin o vista individual. Cada tabla de BD tiene asignada una cuenta propietario, que tiene todos los privilegios sobre esa tabla y se encarga de otorgarlos al resto de cuentas.

2.6. Control de Acceso Discrecional (III)


En SQL: Privilegio SELECT para R confiere a la cuenta el privilegio de consultar la BD para obtener datos de R. Privilegio MODIFY para R confiere a la cuenta el privilegio de modificar las tuplas de la tabla R. Privilegio REFERENCES para R confiere a la cuenta el privilegio de hacer referencia a la tabla R por media de una clave ajena. En SQL las intrucciones para asignar privilegios se denomina GRANT y las que los elimina REVOKE.

2.7. Control de Acceso Obligatorio (I)


Entre las obligaciones del DBA est otorgar privilegios a los usuarios y clasificar los usuarios y los datos de acuerdo con la poltica de la organizacin. Las rdenes privilegiadas del DBA incluyen los siguientes tipos de acciones: 1. Creacin de cuentas 2. Concesin de privilegios. 3. Revocacin de privilegios. 4. Asignacin de niveles de seguridad. La accin 1 de la lista sirve para controlar el acceso al SGBD en general, la 2 y la 3 para controlar las autorizaciones discrecionales y la 4 controla la autorizacin obligatoria

2.7. Control de Acceso Obligatorio (II)


Los mecanismos de seguridad obligatorios sirven para imponer seguridad de mltiples niveles clasificando los datos y los usuarios en varias clases de seguridad e implementando despus la poltica de seguridad apropiada de la organizacin.

Consiste en la clasificacin de tanto los sujetos como los objetos en el sistema en clases de acceso que determinan sus caractersticas de confidencialidad.

2.7. Control de Acceso Obligatorio (III)


Una clase de acceso es un elemento de un conjunto de clases parcialmente ordenadas. Las clases de acceso se definen como un conjunto formado por dos componentes, un nivel de seguridad y un conjunto de categoras. Cada nivel de seguridad es un elemento de un conjunto jerrquicamente ordenado como alto secreto (TS), secreto (S), confidencial (C) y sin clasificar (U), donde TS > S > C > U. El conjunto de categoras es un subconjunto de un conjunto desordenado, donde los elementos pueden reflejar reas funcionales o diferentes competencias como por ejemplo finanzas, administracin, ventas y compras para sistemas comerciales.

2.7. Control de Acceso Obligatorio (IV)


Sujetos de autorizacin USUARIOS GRUPOS DE USUARIOS ROLES PROCESOS Privilegios de autorizacin LEER, ESCRIBIR, EJECUTAR SELECCIONAR, INSERTAR, ACTUALIZAR, REFERENCIAR, INDEXAR

2.7. Control de Acceso Obligatorio (V)


Las polticas de control de acceso se pueden clasificar en dos grupos: Cerradas: Solamente los accesos autorizados explcitamente son permitidos

2.7. Control de Acceso Obligatorio (VI)


Abiertas: Los accesos que no son explcitamente prohibidos son permitidos.

Referencias Consultadas

http://www.virtual.unal.edu.co/cursos/sedes/manizales/406002 9/lecciones/cap7-1.html http://www.aulaclic.es/sql/b_8_1_1.htm http://es.wikipedia.org/wiki/Integridad_referencial http://es.tldp.org/Tutoriales/NOTAS-CURSO-BBDD/notascurso-BD/node44.html Sistemas de Bases de Datos Conceptos Fundamentales. Segunda Edicin. Elmasri; Navathe. Pearson Education. Mxico 2000.

Javier Escobar

Potrebbero piacerti anche