Edificio residencial Tarsia de AEDAS Homes Granada
Seguridad de bases de datos
1. SEGURIDAD DE BASES DE DATOS
1. Concepto:
Los datos en una base de datos deben estar protegidos contra los accesos no
autorizados, de la destrucción o alteración malintencionadas y de la introducción
accidental de inconsistencias.
Consiste en las acciones que toma el diseñador de base de datos al momento de
crear la base de datos tomando en cuenta el volumen de las transacciones y las
restricciones que tiene que especificar en el acceso a los datos; esto permitirá que el
usuario adecuado sea quien visualice la información adecuada.
2. Violaciones de Seguridad.-
El mal uso de la base de datos puede clasificarse como malintencionado o
accidental. La pérdida accidental de la consistencia de los datos puede ser resultado
de:
Caídas durante el procesamiento de transacciones.
Anomalías causadas por el acceso concurrente a la base de datos.
Anomalías causadas por la distribución de los datos entre varias
computadoras.
Errores lógicos que violan la suposición de que las transacciones
conservan las ligaduras de consistencia de la base de datos.
Es más sencilla la protección contra la perdida accidental de la consistencia de los
datos que la protección contra el acceso malintencionado a la base de datos. Entre las
formas de acceso malintencionado se encuentran:
La lectura no autorizada de los datos (robo de información).
La modificación no autorizada de los datos.
La destrucción no autorizada de los datos.
No es posible la protección absoluta de la base de datos contra el mal uso
intencionado. La seguridad de las bases de datos suele hacer referencia a la
protección contra los accesos malintencionados, mientras que la integridad hace
referencia a la evitación de la perdida accidental de consistencia.
Para proteger la base de datos hay que adoptar medidas de seguridad en varios
niveles:
Físico: El nodo a nodos que contiene los sistemas informáticos deben estar
protegidos físicamente contra la entrada de intrusos.
Humano: Los usuarios deben ser autorizados cuidadosamente para reducir
la posibilidad de que alguno de ellos de acceso a intrusos a cambio de
sobornos u otros favores.
2. Sistema Operativo: Independientemente de los seguros que puede ser el
sistema de bases de datos, la debilidad de la seguridad del sistema operativo
puede servir como medio para el acceso no autorizado a la base de datos.
Red: Dado que casi todos los sistemas de bases de datos permiten el acceso
remoto mediante terminales o redes, la seguridad en el nivel del software de
la red es tan importante como la seguridad física, tanto en Internet como en
las redes privadas de las empresas.
Sistema de base de datos: Puede que algunos usuarios del sistema de bases
de datos solo estén autorizados a tener acceso a una parte limitada de la base
de datos. Puede que otros usuarios estén autorizados a formular consultas
pero tengan prohibido modificar los datos. Es responsabilidad del sistema de
base de datos asegurarse de que no se violen estas restricciones de
autorización.
Deben conservarse la seguridad en todos estos niveles si hay que asegurar la
seguridad de la base de datos.
En muchas aplicaciones merece la pena dedicar un esfuerzo considerable a
conservar la integridad y la seguridad de la base de datos.
3. Autorizaciones.-
Los usuarios pueden tener varios tipos de autorización para diferentes partes de la
base de datos. Entre ellas están las siguientes:
La autorización de la lectura: Permite la lectura de los datos, pero no
su modificación.
La autorización de inserción: Permite la inserción de los datos nuevos,
pero no la modificación de los existentes.
La autorización de actualización: Permite la modificación de los datos,
pero no su borrado.
La autorización de borrado: Permite el borrado de los datos.
Los usuarios pueden recibir todos los tipos de autorización, ninguno de ellos, o una
combinación determinada de los mismos.
Además de estas formas de autorización para el acceso de los datos, los usuarios
pueden recibir autorización para modificar el esquema de la base de datos.
La autorización de índices: Permite la creación y borrado de índices.
La autorización de recursos: Permite la creación de relaciones nuevas.
La autorización de alteración: Permite el añadido o el borrado de atributos
de las relaciones.
La autorización de eliminación: Permite el borrado de relaciones.
La autorización de índices puede parecer innecesaria, dado que la creación o
borrado de un índice no afecta a los datos de la relaciones. Más bien, los índices son
3. una estructura para las mejoras de rendimiento. Sin embargo, los índices también
ocupan espacio o se exige que todas las modificaciones de las bases de datos
actualicen los índices. Si se concediera a todos los usuarios la autorización de
índices, los que llevaran a cabo actualizaciones estarían tentados de borrar los
índices, mientras que los que formularan consultas estarían tentados de crear
numerosos índices. Para permitir al administrador de la base de datos que regule el
uso de los recursos del sistema es necesario tratar la creación de índices como un
privilegio.
La forma superior de autoridad es la concedida al administrador de la base de datos.
El administrador de la base de datos puede autorizar usuarios nuevos reestructurar la
base de datos, etc. Esta forma de autorización es análoga a la proporcionada al
súper usuario u operador del sistema operativo.
4. Autorizaciones y Vistas.-
Una vista puede ocultar los datos que un usuario no necesita ver. La capacidad de
las vistas para ocultar datos sirve para simplificar el uso del sistema y para mejorar
la seguridad. El uso del sistema se simplifica porque se permite al usuario restringir
su atención a los datos de interés. Aunque puede que se niegue el acceso directo a
una relación, puede que se le permita el acceso a parte de esa relación mediante una
vista. Por tanto, se puede utilizar una combinación de seguridad en el nivel
relacional y en el nivel de las vistas para limitar el acceso de un usuario
precisamente a los datos que necesita.
En el ejemplo bancario, considérense un empleado que necesita saber los nombres
de todos los clientes que tiene un préstamo en cada sucursal. Este empleado no esta
autorizado a ver la información concerniente a los préstamos concretos que pueda
tener cada cliente. Por tanto, se le debe negar el acceso directo a la relación
préstamo. Pero si va ha tener acceso a la información necesaria, se le debe conceder
acceso a la vista cliente-préstamo, que consiste solo en los nombres de los clientes y
las sucursales en los que tienen un préstamo. Ejemplo:
Create view cliente-préstamo as
(select nombre-sucursal, nombre-cliente
From prestatario, préstamo
Where prestatario.numero-préstamo=pretamo.numero-préstamo)
Supóngase que el empleado formula la siguiente consulta SQL:
Select * from préstamo-cliente
5. Concesión de Privilegios.-
El usuario que se le ha concedido alguna forma de autorización puede ser autorizado
a transmitir usa autorización a otros usuarios. Sin embargo, hay que tener cuidado
con el modo en que se puede trasmitir la autorización entre los usuarios para
asegurar que la misma puede retirarse en el futuro.
6. Especificación de la Seguridad en SQL.-
4. El lenguaje de definición de datos SQL incluye órdenes para conceder y retirar
privilegios. La norma SQL incluye los privilegios delete, insert, select y update. El
privilegio select se corresponde con el privilegio de lectura. SQL también incluye
un privilegio references que restringe la capacidad de un usuario para declara claves
externas al crear relaciones. Si la relación que se va a crear incluye una clave
externa que hace referencia a atributos de otra relación, el usuario debe haber
recibido el privilegio references sobre esos atributos. El motivo de que el privilegio
references sea una característica útil es algo sutil y se explica mas adelante en este
mismo apartado.
La instrucción grant se utiliza para conferir autorizaciones. La forma mas básica de
esta instrucción es la siguiente:
Grant <lista de privilegios> on <nombre de relación o de lista> to <lista de
usuarios>
La lista de privilegios permite la concesión de varios privilegios con una sola orden.
7. Cifrado.-
Su objetivo es el de hacer ilegibles los datos a usuarios no autorizados que sean capaces
de acceder a ellos.
Existen numerosos métodos de cifrado, los cifrados mas antiguos y mas conocidos son
los que hacen uso de una clave privada para mediante un conjunto de transformaciones
matemáticas, mantener oculto el significado de determinados datos.
Los métodos de cifrado de datos pueden ser:
• Simétricos: cuando la clave de cifrado es la misma que la de descifrado.
• Asimétricos: cuando ambas claves son distintas