EJ. de Seguridad

Anuncio
Seguridad
Seguridad, Concurrencia y Recuperación
• Para salvaguardar derechos legales y éticos de
acceso a una información.
• Seguridad aspectos generales
• Autorizaciones de acceso
• Autorizaciones a nivel de esquema
• Otras consideraciones asociadas a la seguridad
• Concurrencia
• Propiedades ACID
• Políticas institucionales sobre información no
accesible
• Niveles de seguridad definidos sobre el sistema a
nivel de hardware, S.O., SBD
• Necesidad de definir diferentes niveles de
seguridad y clasificar segun ellos datos y usuarios
1
Autorizaciones de acceso
2
Autorizaciones a nivel de esquema
• A. de lectura: permite la lectura pero no su
• A. de Índices: Permite la creación y borrado
modificación.
• A. de recursos: Permite la creación de tablas
• A. de Inserción: Permite la inserción pero no la
• A. de Alteración: Permite el añadido y el borrado
modificación de los existentes.
de atributos de las relaciones
• A. de Actualización: Permite la modificación
• A. de eliminación: Permite el borrado de las
pero no el borrado.
tablas
• A. de Borrado: Permite el borrado de los datos
3
4
EJ. de Seguridad
Lenguaje para definir Reglas de Seguridad
CREATE ROLE cajero
CREATE ROLE <nombre del rol>
GRAN cajero TO Juan
GRANT <privilegios> ON <relación o vista>
TO <lista usuarios>
GRAN cajero TO Maria
REVOKE <privilegios> ON <relación o vista>
FROM <lista usuarios> [restrict | cascade]
GRANT SELECT ON cuenta TO Cajero
Equivalente
GRANT SELECT ON cuenta TO Juan, Maria
Privilegio: delete, insert, select, update, references, all
privileges, usage (para dominios)
GRANT Upadate(Importe)ON prestamo TO Juan
Usuario: La palabra public hace referencia a todos los
usuarios del presente y del futuro
NO Equivalente
5
GRANT Upadate ON prestamo TO Juan
6
EJ. de Seguridad
EJ. de Concesión de privilegios
GRANT Insert(A1,A2, …, An)ON prestamo TO Juan
Concede el privilegio de select al usuario
y permite que el mismo lo conceda a otros
usuario
NO Equivalente
GRANT Insert ON prestamo TO Juan
GRANT Select ON sucursal TO Gerente
GRANT REFERENCES (Ai)ON prestamo TO Juan
with grant option
REVOKE Select ON prestamo FROM Juan Restrict
REVOKE grant option for select on sucursal
from gerente
REVOKE Update ON prestamo FROM Cajero
[Cascade] valor por defecto
7
Solo anula la opción de conceder permisos
8
grant
Concurrencia
Seguridad. Otras consideraciones
Técnicas necesarias para asegurar que
transacciones concurrentes no interfieran
en sus respectivas operaciones.
• El creador de los objetos (tablas, vistas, roles, dominio)
tiene acceso absoluto sobre los mismos.
• No hay forma desde la BD de limitar el acceso a nivel de
tuplas.
Transacción
• Una vista nos permite una forma de permitir el acceso a
ciertos datos pero no a las tablas asociadas a dicha vista
– Unidad lógica de trabajo
– Secuencia de operaciones que transforman un
estado consistente de la BD en otro estado
consistente.
– Termina en COMMITo en ROLLBACK
• Auditorías (Logs)
• Criptografiado de datos
9
Transacción.. ejemplo
Transacción
...
while (true) {
...
try{ System.out.println (”Introducir los datos en la BD");
#sql {insert into vivienda values (:cod, :dir, :ciudad, :caraterísticas) };
if (!cliente_registrado) {
#sql {insert into cliente values (:dni, :nomCli, :dirCli, :ciuCli)};
}
#sql {insert into venta values (:dni, :cod, :dniRespon, :fecha, :precio)};
#sql {commit};
break;
}catch(SQLException e) {
if (e.getErrorCode() == 20001) {
System.err.println ("Error: " + e.getMessage());
#sql {rollback}; continue; }
else { System.err.println ("Error: " + e.getMessage());
#sql {rollback}; break; }
}
11
}
10
Concurrencia. Problemas
Pérdida de actualizaciones
transacción A
…
READ(P)
…
…
…
P ? P + 100
WRITE(P)
COMMIT
T
valor de P
t1
50
t2
50
t3
150
t4
70
transacción B
…
…
…
READ(P)
…
…
…
…
P ? P + 20
WRITE(P)
...
12
Concurrencia. Problemas
Concurrencia. Problemas
Análisis de Inconsistencias
Dependencia con UNCOMMIT
transacción A
…
...
…
…
…
READ(P)
READ(S)
S ? P + S + 30
WRITE(S)
…
…
…
T
t1
valor de P
50
valor de S
10
150
t2
150
10
190
t3
50
190
transacción B
…
READ(P)
P ? P + 100
WRITE(P)
…
…
...
…
…
…
ROLLBACK
13
Transacciones. Propiedades
ACID
transacción A
…
READ(P1)
READ(P2)
Bat ? P1 + P2
WRITE(Bat)
…
…
…
…
…
…
…
…
…
READ(P3)
Bat ? Bat + P3
WRITE(Bat)
…
T
P1
50
50
t1
P2
30
P3
60
Bat
0
60
80
30
50
t2
30
50
40
60
70
t3
transacción B
…
…
…
…
…
…
READ(P1)
P1 ? P1 – 10
WRITE(P1)
READ(P3)
P3 ? P3 + 10
WRITE(P3)
…
COMMIT
70
150
14
Transacciones. propiedades ACID
CAPA
• Atomicidad
• ATOMICITY
• CONSISTENCY
PRESERVATION
• CONSERVACIÓN
– La transacción es una unidad atómica. Se procesan
todas sus operaciones o ninguna.
DE LA
CONSISTENCIA
• Aislamiento
• ATOMICIDAD
• ISOLATION
• PERMANENCIA
• DURABILITY
• AISLAMIENTO
– La transacción no debe permitir que otras
transacciones vean sus cambios hasta que estos estén
comprometidos.
15
Transacciones. propiedades ACID
16
Propiedades ACID. Ejemplos (I)
Atomicidad
• Conservación de la consistencia
UPDATE Cuenta SET saldo = saldo-100 WHERE cod = 1;
– La ejecución correcta de una transacción cambia la
BD de un estado consistente a otro también
consistente.
T UPDATE Cuenta SET saldo = saldo+100 WHERE cod = 2;
Error del
Sistema
COMMIT;
Aislamiento
T1
saldo
T2
30
• Durabilidad
130
– Después de comprometer los cambios de una
transacción, éstos no se pueden perder.
17
UPDATE Cuenta
SET saldo = saldo-120
WHERE cod = 1;
COMMIT;
UPDATE Cuenta
SET saldo = saldo+100
WHERE cod = 1;
10
18
30
ROLLBACK;
Técnicas de Recuperación
Propiedades ACID. Ejemplos (II)
Conservación consistencia
T
Restricción de integridad: las cuentas no
pueden quedar en números rojos
read (cant);
UPDATE Cuenta SET saldo = saldo-cant WHERE cod = 1;
SELECT saldo INTO :x FROM Kontua WHERE cod = 1;
if (x < 0) {UPDATE Cuenta SET saldo = 0 WHERE cod = 1;
INSERT INTO Préstamo(cuentaCod, cantidad) VALUES (1, (-1)*x);
}
COMMIT;
Durabilidad
UPDATE Cuenta SET saldo = saldo-100 WHERE cod = 1;
T UPDATE Cuenta SET saldo = saldo+100 WHERE cod = 2;
Razones por las que una transacción puede tener
problemas
• Error en el sistema (hardware o software)
• Errores en las operaciones de la transacción
• Condiciones de excepción detectadas por la
transacción
• Por los mecanismos de control de concurrencia
• Fallos en partes del disco
• Catástrofes
COMMIT;
Error del
Sistema
19
Recuperación en las B.D.
20
Técnicas control interferencias
• Para recuperarse cuando se produzcan errores el
sistema mantiene un diario (log, journal) que
contiene información sobre todas las operaciones
de las transacciones que afecten a los datos de la
BD.
• Técnicas pesimistas (time-stamping, reservas)
– Imponen a priori ciertas restricciones al solapamiento
de transacciones que impiden horarios sospechosos
• Entradas del log:
• Técnicas optimistas (Kung)
[start_transaction, T]
[write_item, T, X, <valor anterior>, <valor nuevo>]
[commit, T]
[abort, T]
– No ponen trabas al solapamiento y a posteriori se
comprueba si ha habido interferencias
21
22
Descargar