SEGURIDAD - Departamento de Lenguajes y Sistemas Informáticos

Anuncio
Departamento de Lenguajes y Sistemas Informáticos
Avda Reina Mercedes s/n. 41012 Sevilla
Tlf/Fax 954 557 139 E-mail [email protected] www.lsi.us.es
E.T.S. Ingeniería
Informática
Diseño de Bases de Datos
SEGURIDAD (Tema 6)
1.
Introducción.
Es la protección de los datos contra el acceso, alteración o destrucción no
autorizada.
La seguridad implica controlar que los usuarios están autorizados para llevar a
cabo lo que tratan de hacer. Mientras que la integridad implica asegurar que lo que
tratan de hacer es correcto.
La información sobre las autorizaciones de acceso a los datos estarán escritas en
algún lenguaje apropiado (en nuestro caso SQL) y se mantienen en el catálogo o
diccionario del sistema. El SGBD deberá supervisar que se cumplan estas restricciones
de autorización.
La unidad de información para propósito de seguridad (es decir el objeto de
datos que pudiera requerir protección individual) puede ser desde una base de datos o
conjunto de tablas completo hasta un valor específico en una posición específica de fila
y columna.
Un usuario puede tener diferentes derechos de acceso o autorizaciones sobre
diferentes objetos de información.
En SQL el sistema cuenta con dos mecanismos para el mantenimiento de la
seguridad.
•
Las vistas. Permiten ocultar datos confidenciales a usuarios no
autorizados.
•
Las autorizaciones. Mediante el cual usuarios con derechos específicos
pueden conceder de manera selectiva y dinámica esos derechos a otros
usuarios.
Seguridad
Página 1 de 3
2.
Seguridad en SQL.
El mecanismo de vistas hace posible dividir conceptualmente la base de datos en
fragmentos con objeto de ocultar información. Sin embargo, no permite especificar las
operaciones que los usuarios autorizados pueden ejecutar con esos fragmentos. Esta
función la realizan las proposiciones GRANT (conceder) y REVOKE (revocar).
Para poder realizar cualquier operación en SQL, el usuario debe contar con la
autorización apropiada, en caso contrario la operación se rechazará con un mensaje de
error.
Por ej. para ejecutar:
SELECT * FROM S;
el usuario debe tener autorización de selección sobre S.
Cuando se realiza la instalación de la base de datos parte del procedimiento
implica la designación de un usuario con privilegios específicos como administrador
del sistema (que se identificará, al igual que el resto de los usuarios, mediante un
identificador de usuario).
Este usuario privilegiado recibe de manera automática una autorización especial
llamada SYSADM que confiere el derecho a realizar todas las operaciones del sistema.
Puede crear otros usuarios y conceder las autorizaciones.
La concesión de derechos se hace mediante la proposición GRANT.
GRANT <derecho> ON TABLE <nombre tabla/vista> TO <nombre de usuario>
Algunos ejemplos:
GRANT SELECT ON TABLE tabla1 TO usuario1
GRANT SELECT ON TABLE tabla1 TO public
GRANT SELECT, UPDATE (columna1, columna2,..) ON TABLE tabla1
TO usuario1, usuario2,..
GRANT ALL ON TABLE tabla1 TO usuario1
Seguridad
Página 2 de 3
En general, las autorizaciones aplicables a tablas son:
Autorización
SELECT
UPDATE
DELETE
INSERT
ALTER
INDEX
CONNECT
RESOURCE
ALL
Seleccionar
Actualizar
Eliminar
Insertar
Derecho a ejecutar ALTER TABLE
Derecho a ejecutar CREATE INDEX
Conectarse a la Base de Datos
Crear objetos
Todos los permisos
Especificando WITH GRANT OPTION en la proposición GRANT, es posible
que dicho usuario pueda ceder el permiso a otro usuario.
GRANT <derecho>
ON TABLE <nombre tabla/vista>
TO <nombre de usuario>
WITH GRANT OPTION
Para revocar las autorizaciones se utiliza la proposición REVOKE.
REVOKE <derecho> ON TABLE <nombre tabla/vista> FROM <nombre de usuario>
Seguridad
Página 3 de 3
Descargar