Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEGURIDAD
INTRODUCCIÓN
DESARROLLO
• Los usuarios, que son los actores de la BD. Cada vez que el SGBD hace
una operación sobre la BD la hace a cuenta de algún usuario determinado.
El SGBD debe permitir la operación dependiendo de cual usuario está
efectuando esta operación.
• Los objetos de la BD, que son los elementos a los cuales se puede aplicar
la protección. La seguridad se aplica generalmente a tablas y vistas, pero
en dependencia del SGBD puede ser protegidos otros objetos
(disparadores, formularios, etc).
• Los privilegios que son las acciones que un usuario tiene permitido
efectuar sobre un determinado objeto de la BD. Los privilegios más
comunes son SELECT, INSERT, DELETE y UPDATE.
Identificadores de usuario
Cada usuario de una base de datos basada en SQL tiene asignado un id-usuario,
generalmente un nombre breve que identifica al usuario dentro del SGBD. Toda
sentencia SQL ejecutada por el SGBD se hace a cuenta de un id-usuario
específico. En general estos identificadores son asignados por el administrador del
sistema. En el estándar de SQL los identificadores de usuario son nombres de
hasta 18 caracteres. Esto varía considerablemente de una SGBD a otro.
Es importante señalar que para un SGBD puede ser que un grupo de usuarios
tengan el mismo identificador. Por ejemplo todos los empleados de un
departamento determinado pueden tener el mismo identificador, pues ellos tendrán
los mismos derechos sobre la BD.
1
En el estándar de SQL muchas veces se utiliza el término id-autorización en lugar
de id-usuario. Este término es un poco más preciso puesto que no se asocia a
personas determinadas sino a privilegios sobre la BD.
Cada SGBD deberá implementar la forma de autentificar los id-usuarios que han
sido emitidos por su administrador, esto se hace comúnmente a través de una
contraseña, pero el SQL no dice nada sobre esto.
Objetos de seguridad
Privilegios
Cuando se crea una tabla con la sentencia CREATE, quien lo hace se convierte en
su propietario y recibe totales privilegios sobre esa tabla (SELECT, INSERT,
DELETE; UPDATE). Otros usuarios no tienen inicialmente privilegios sobre la tabla
recién creada. Si se les va a proporcionar acceso a la tabla, hay que
concedérselos utilizando la sentencia GRANT.
Concesión de privilegios
2
La sentencia que se utiliza para conceder privilegios, es la sentencia GRANT, cuya
sintaxis se muestra a continuación:
Por ejemplo:
Permitir al usuario usuariocc recuperar datos del cliente y añadir nuevos clientes.
GRANT SELECT
ON oficinas
TO PUBLIC
3
Observar que en el caso de UPDATE se puede permitir acceso a columnas
determinadas, si no se especifica nada se supone que se está dando privilegios
sobre todas las columnas.
Paso de privilegios
Supongamos que el usuario sam crea la vista vendeste (la misma de la clase
anterior). El puede hacer la siguiente operación:
GRANT SELECT
ON repeste
TO larry
WITH GRANT OPTION
Aquí le está dando permiso al usuario larry a usar la vista de solo lectura y además
le está dando la potestad a larry que pueda dar este permiso a otros usuarios.
Luego ahora larry puede hacer lo siguiente:
GRANT SELECT
ON repeste
TO sue
El usuario sue tiene derecho a usar la vista pero no puede dar este permiso a
otros usuarios.
Revocación de privilegios
4
FROM larry CASCADE
CONCLUSIONES
Insistir en :
- Los tres elementos que intervienen en la seguridad SQL: usuarios, objetos de
la BD y privilegios.
- Usuarios como actores de la base de datos.
- Objetos: tablas y vistas (pueden ser otros)
- Privilegios: SELECT, INSERT, DELETE y UPDATE.
- Propietario de una tabla o vista: aquel usuario que la crea.
- Sentencia GRANT para otorgar privilegios.
- Sentencia REVOKE para revocar privilegios.
Bibliografía:
Ejercicios:
1. Permitir al usuario sam insertar o suprimir una oficina.
2. Dar todos los privilegios al usuario sam sobre la tabla vendedores