Seguridad en BD
Transcript of Seguridad en BD
![Page 1: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/1.jpg)
1
Seguridad en BD
Universidad de los AndesDemián Gutierrez
Enero 2009
![Page 2: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/2.jpg)
2
¿Seguridad?
La seguridad informática consiste en asegurar que los recursos de sistemas y de información (material informático o
programas, bases de datos, etc.) de una organización sean utilizados de la manera
en que se decidió y que el acceso a la información allí contenida, así como su modificación, sólo sea posible a las
personas que se encuentren acreditadas y dentro de los límites de su autorización
Fuente: http://es.wikipedia.org/wiki/Seguridad_informática
![Page 3: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/3.jpg)
3
Seguridad
Físico: Los servidores (o nodos de cómputo) donde está el SGBD deben estar protegidos frente al acceso de
extraños
Humano:El personal encargado de los servidores debe ser
calificado y de confianza(sobornos / ingeniería social)
Red:La red en la que opera el SGBD debe tener las protecciones correspondientes, protección en el
envío de datos, firewalls, cifrado, entre otras
![Page 4: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/4.jpg)
4
Seguridad
SGBD:La base de datos debe ser configurada con roles, privilegios y permisos adecuados para evitar los
accesos malintencionados
Sistema Operativo: El sistema operativo debe estar actualizado y se
deben realizar todos los esfuerzos necesarios para que no sea vulnerable
Software / Aplicación: Las aplicaciones cliente de los SGBD deben ser diseñadas y desarrolladas con los niveles de
seguridad adecuados
![Page 5: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/5.jpg)
5
Seguridad Obligatoria(¿SGBD que lo soporten?)
¿Dónde implementar la seguridad?
¿Seguridad a nivel del SGBD o
seguridad a nivel de la Aplicación?
Recuerden el dilema:
¿Validar a nivel del SGBD, a nivel de la aplicación, a nivel del cliente?
![Page 6: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/6.jpg)
6
Seguridad Obligatoria(¿SGBD que lo soporten?)
SGBD
Aplicación
Seguridad a nivel de la BD: Usuarios, Roles, Vistas, Permisos, etc.
Seguridad a nivel de la
aplicación: ¿?
![Page 7: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/7.jpg)
7
Seguridad Obligatoria(¿SGBD que lo soporten?)
Aplicación
Seguridad a nivel de la aplicación:Usuarios, Roles, Permisos y Privilegios incrustados en la
lógica de negocio, restricciones de acceso a los recursos,
propietarios de registros/objetos, visibilidades, etc.
![Page 8: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/8.jpg)
8
¿SQL INJECTION?(Tópico Aparte,Mover a SQL)
![Page 9: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/9.jpg)
9
¿Quién puede explicar la razón por la que esta tira cómica es tan (pero tan) graciosa?
(al menos para mi)(Cortesía de xkcd)
![Page 10: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/10.jpg)
10
SELECT * FROM user WHERE name='%NAME%' AND pass='%PASS%'
(Si retorna al menos un registro, dejamos entrar al usuario)
%NAME% = foo%PASS% = whatever' OR '1'='1
¿Cuál será el SQL generado?
![Page 11: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/11.jpg)
11
SELECT * FROM user WHERE name='foo' AND pass='whatever' OR '1'='1'
¿Cuántos registros genera la consulta anterior?
¿Les resulta ahora gracioso?
![Page 12: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/12.jpg)
12
...volviendo al tópico (Seguridad)
![Page 13: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/13.jpg)
13
Seguridad(A nivel del SGBD)
En los SGBD, el concepto de seguridad se refiere a la protección de los datos ante usuarios no autorizados, es decir, definir estrategias que permitan establecer que usuarios pueden acceder a que datos
● Tipos de seguridad en los SGBD– Seguridad Discrecional
– Seguridad Obligatoria
– Seguridad en Sistemas Estadísticos
(¿Qué creen que sea esto?)
![Page 14: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/14.jpg)
14
Seguridad Discrecional
Se basa en otorgar privilegios a usuarios (o grupos de usuarios), en los que se incluye la capacidad de tener acceso tablas, registros o campos específicos con un determinado modo
(para leer, insertar o actualizar)
● Autorizar al usuario X a realizar consultas en
filas de la tabla A
● Autorizar al usuario X a utilizar un
procedimiento almacenado B
![Page 15: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/15.jpg)
15
Seguridad Discrecional
Usuario 1(Grupo 1)
Usuario 2(Grupo 1)(Grupo 2)
Grupo 1
Grupo 2
Grupo 3
Tabla 1
Tabla 2
Secuencia 2
Vista 1
Índice 1
...
Las vistas son una poderosa herramienta para
controlar la seguridad
![Page 16: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/16.jpg)
16
Seguridad Discrecional
Usuario 1(Grupo 1)
Tabla 1:Columna XColumna YColumna Z
Tabla 2:Columna AColumna BColumna C
Vista 1:Columna AColumna BColumna XColumna Y
CREATE VIEW vista1 AS ( SELECT ColumnaA, ColumnaB, ColumnaX, ColumnaY FROM tabla1, tabla2 WHERE ...)
Grupo
¿Puede Usuario 1 ver los valores de las columnas C y Z? ¿Puede modificar alguna
fila de las tablas 2 y 3?
¿Cómo evitan que Usuario 1 vea ciertas filas específicas?
![Page 17: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/17.jpg)
17
Seguridad Obligatoria
Consiste en imponer seguridad de múltiples niveles, clasificando los datos y los usuarios en varias clases (o niveles) de seguridad, de manera que los usuarios puedan acceder a
los datos según tengan o no el nivel necesario para el dato que desean acceder
● Las filas (o los objetos) tienen un nivel Fi de
seguridad, que solo se pueden leer si el usuario
tiene un nivel Ui >= Fi de seguridad...
1 2 3 4
![Page 18: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/18.jpg)
18
Seguridad Obligatoria(Reglas)
● El usuario X puede recuperar (leer) el objeto Y
sólo si el nivel de acreditación (seguridad) de X
(Ui) es mayor o igual que el nivel de
clasificación de Y (Fi)
(“propiedad de seguridad simple)
● El usuario X puede actualizar el objeto Y sólo si
el nivel de acreditación de X (Ui) es igual al
nivel de clasificación de Y (Fi) (“propiedad
estrella”). ¿Ideas de por qué esto es así?
![Page 19: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/19.jpg)
19
Seguridad Obligatoria(Reglas)
La segunda regla anterior evita que existan filtraciones de seguridad hacia abajo, o que un
usuario escriba datos que luego no pueda leer... (hacia arriba)
Empleado
Cédula Nombre Sueldo Clasificación
12.334.543 Pedro Perez 3000 3
14.232.650 Juan García 2500 3
15.556.345 Diego Rojas 4000 3
16.343.222 Luis Silva 10000 4
18.909.123 Marcos Quintero 1000 2Usuario 1(Seguridad 2)
(MenosSeguridad)
Usuario 2(Seguridad 3)
(MásSeguridad)
![Page 20: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/20.jpg)
20
Seguridad Obligatoria(Reglas)
Usuario 1(Seguridad 2)
Empleado
Cédula Nombre Sueldo Clasificación
18.909.123 Marcos Quintero 1000 2
SELECT * FROM empleado
SELECT * FROM empleado WHERE clasificacion <= 2
SELECT * FROM empleado
SELECT * FROM empleado WHERE clasificacion <= 3
Empleado
Cédula Nombre Sueldo Clasificación
12.334.543 3000 3
14.232.650 2500 3
15.556.345 Diego Rojas 4000 3
18.909.123 Marcos Quintero 1000 2
Pedro Perez
Juan GarcíaUsuario 2(Seguridad 3)
![Page 21: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/21.jpg)
21
Seguridad Obligatoria(Reglas)
Usuario 1(Seguridad 2)
INSERT INTO empleado VALUES(16.343.222, 'Luis Silva', 2000)
INSERT INTO empleado VALUES(16.343.222, 'Luis Silva', 2000, 2)
Empleado
Cédula Nombre Sueldo Clasificación
12.334.543 3000 3
14.232.650 2500 3
15.556.345 Diego Rojas 4000 3
16.343.222 Luis Silva 2000 2
16.343.222 Luis Silva 10000 4
18.909.123 Marcos Quintero 1000 2
Pedro Perez
Juan García
![Page 22: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/22.jpg)
22
Seguridad Obligatoria(Reglas)
Usuario 1(Seguridad 2)
Empleado
Cédula Nombre Sueldo Clasificación
18.909.123 Marcos Quintero 1000 2
16.343.222 Luis Silva 2000 2
SELECT * FROM empleadoSELECT * FROM empleado WHERE clasificacion <= 2
SELECT * FROM empleadoSELECT * FROM empleado WHERE clasificacion <= 4Empleado
Cédula Nombre Sueldo Clasificación
12.334.543 3000 3
14.232.650 2500 3
15.556.345 Diego Rojas 4000 3
16.343.222 Luis Silva 2000 2
16.343.222 Luis Silva 10000 4
18.909.123 Marcos Quintero 1000 2
Pedro Perez
Juan García
Usuario 3(Seguridad 4)
![Page 23: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/23.jpg)
23
Seguridad Obligatoria(¿SGBD que lo soporten?)
Oracle Label Securityhttp://www.oracle.com/technology/deploy/security/database-security/label-security/index.html
SEPostgreSQL (Security Enhaced)http://wiki.postgresql.org/wiki/SEPostgreSQL_Introduction
![Page 24: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/24.jpg)
24
Seguridad Discrecional(PostgreSQL)
PostgreSQL manages database access permissions using the concept of roles. A role can be thought of as
either a database user, or a group of database users, depending on how the role is set up. Roles can own database objects (for example, tables) and can
assign privileges on those objects to other roles to control who has access to which objects. Furthermore, it is possible to grant membership in a role to another role, thus allowing the member role use of privileges
assigned to the role it is a member of.
Fuente: http://www.postgresql.org/docs/8.4/interactive/user-manag.html
![Page 25: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/25.jpg)
25
Seguridad Discrecional(PostgreSQL)
Rol
Privilegios(Seguridad a
nivel deObjetos)
Atributos(Seguridad global y a
nivel de BD)
Usuario(Puede
hacer Login)
Grupo(No puede
hacer Login)
es de tipo
pertenece yhereda privilegios
y atributos de
tiene tiene
![Page 26: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/26.jpg)
26
Seguridad Discrecional(PostgreSQL)
Advertencia: La herencia entre Grupo, Usuario y Rol y la relación entre Grupo y Usuario tiende a crear mucha
confusión en lo que respecta a la terminología...
![Page 27: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/27.jpg)
27
Seguridad Discrecional(PostgreSQL)
Los roles de la BD son “usuarios”, son globales, es decir, no existen por cada base
de datos
CREATE ROLE nombre_rol;
DROP ROLE nombre_rol;
SELECT * FROM pg_roles;rolname |super|inherit|createrole|createdb|catupdate|canlogin|connlimit|pass|...--------+-----+-------+----------+--------+---------+--------+---------+----+---postgres|t |t |t |t |t |t | -1|****|...foo |f |t |f |t |f |t | -1|****|...
Para más información sobre el resultado del select consultar el manual de PostgreSQL
![Page 28: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/28.jpg)
28
Seguridad Discrecional(PostgreSQL / Atributos)
CREATE ROLE foo LOGIN CREATEDB PASSWORD 'foo123';
ALTER ROLE foo CREATEDB PASSWORD 'xxxyyy';
● LOGIN: La posibilidad de hacer login
● SUPERUSER: Permisos de superusuario (usar con
cuidado)
● CREATEDB: La posibilidad de crear bases de datos
● CREATEROLE: La posibilidad de crear otros roles
● PASSWORD 'string': Para asignar una contraseña
(String es el password)
![Page 29: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/29.jpg)
29
Seguridad Discrecional(PostgreSQL / Sobre el password)
#TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only#local all all trust local all all password
# IPv4 local connections:#host all all 127.0.0.1/32 trust host all all 127.0.0.1/32 password
# IPv6 local connections:#host all all ::1/128 trust host all all ::1/128 password
Archivo de Configuración de PostgreSQL/usr/local/pgsql/data/pg_hba.conf
Es decir, la estrategia de autentificación puede variar y ajustarse según las necesidades (No solo en PostgreSQL,
sino en la mayoría de los SGBD)
![Page 30: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/30.jpg)
30
ESQUEMASSCHEMAS
(Tópico Aparte,Mover a SQL)
![Page 31: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/31.jpg)
31
Seguridad Discrecional(PostgreSQL / Privi legios)
SGBD
Schema 1 tabla/objeto 1BD1
BD2
BD3
BDn
...
Schema 2
Schema 3
Schema N
...
tabla/objeto 2
tabla/objeto 1
tabla/objeto N
...
tabla/objeto 1
No todos los SGBD usan esta esta estrategia, pero es común que la
mayoría definan estructuras de este tipo
![Page 32: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/32.jpg)
32
Crear o El iminar una Schema(¿Qué es un Schema?)
test=# \dn List of schemas Name | Owner --------------------+---------- information_schema | postgres pg_catalog | postgres pg_toast | postgres pg_toast_temp_1 | postgres public | postgres(5 rows)
test=# CREATE SCHEMA some_schema_name;CREATE SCHEMAtest=# \dn List of schemas Name | Owner --------------------+---------- information_schema | postgres pg_catalog | postgres pg_toast | postgres pg_toast_temp_1 | postgres public | postgres some_schema_name | postgres(6 rows)
test=#
test=# DROP SCHEMA some_schema_name;DROP SCHEMAtest=# \dn List of schemas Name | Owner --------------------+---------- information_schema | postgres pg_catalog | postgres pg_toast | postgres pg_toast_temp_1 | postgres public | postgres(5 rows)
test=#
El schema es básicamente un espacio de nombre, es
posible tener tablas con el mismo nombre en diferentes
schemas
![Page 33: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/33.jpg)
33
Seguridad Discrecional(PostgreSQL / Privi legios)
test=# CREATE SCHEMA some_name_a;CREATE SCHEMAtest=# CREATE SCHEMA some_name_b;CREATE SCHEMAtest=# CREATE TABLE some_name_a.tableX
(id INT);CREATE TABLEtest=# CREATE TABLE some_name_b.tableX
(id INT);CREATE TABLEtest=# INSERT INTO some_name_a.tableX
VALUES (1);INSERT 0 1test=# INSERT INTO some_name_b.tableX
VALUES (9);INSERT 0 1test=# SELECT * FROM some_name_a.tableX; id ---- 1test=# SELECT * FROM some_name_b.tableX; id ---- 9
TEST
somename A
somename B
tableX tableX
Los schemas ayudan en la seguridad en el sentido de que son OBJETOS a los que les podemos asignar
privilegios y que agrupan a OTROS OBJETOS
![Page 34: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/34.jpg)
34
...volviendo al tópico (Seguridad)
![Page 35: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/35.jpg)
35
Seguridad Discrecional(PostgreSQL / Privi legios)
Cuando un “objeto” (tabla, secuencia, índice, etc) es creado usualmente se le asigna un
dueño. Por defecto, el dueño es el rol (usuario) que crea el objeto. Es decir, para la mayor parte de los objetos, inicialmente, sólo el dueño y el superusuario pueden hacer algo
con el objeto
Para permitir a otros usuarios hacer algo con esos objetos es necesario asignar privilegios,
de los cuales hay de distintos tipos:(Lamina siguiente)
![Page 36: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/36.jpg)
36
Seguridad Discrecional(PostgreSQL / Privi legios)
SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER, CREATE, CONNECT,
TEMPORARY, EXECUTE, USAGE
Los privilegios se asignan con el comando GRANT:
GRANT UPDATE ON tabla TO rol;
y se eliminan con REVOKE:
REVOKE ALL ON tabla FROM rol;
![Page 37: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/37.jpg)
37
Ejemplo en SQL con SELECT e INSERT...
Seguridad Discrecional(PostgreSQL / Privi legios)
![Page 38: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/38.jpg)
38
SELECTPermite hacer SELECT de cualquier columna
en la tabla, vista o secuencia especificada. También permite usar COPY FROM. Para secuencias este privilegio permite usar la
función currval.
INSERTPermite insertar nuevas filas en la tabla
especificada, también permite la operación COPY TO sobre la tabla en cuestión.
Seguridad Discrecional(PostgreSQL / Privi legios)
![Page 39: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/39.jpg)
39
Seguridad Discrecional(PostgreSQL / Privi legios)
UPDATE
Permite actualizar cualquier columna de la tabla especificada. SELECT ... FOR UPDATE y SELECT ... FOR SHARE también requieren
este privilegio (Además del privilegio SELECT). Para secuencias, este privilegio
permite el uso de la función nextval y setval.
DELETE
Permite eliminar filas de la tabla en cuestión.
![Page 40: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/40.jpg)
40
Seguridad Discrecional(PostgreSQL / Privi legios)
REFERENCES
Para crear claves foráneas es necesario tener este privilegio tanto en la tabla que hace la referencia como en la tabla referenciada.
TRIGGER
Permite crear gatillos en la tabla especificada
![Page 41: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/41.jpg)
41
Seguridad Discrecional(PostgreSQL / Privi legios)
CREATE
Si se asocia a bases de datos, permite crear esquemas dentro de la base de datos.
Si se asocia a esquemas permite crear objetos (tablas, vistas, etc) dentro del
esquema. Para cambiar el nombre de un objeto es necesario tener este privilegio.
![Page 42: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/42.jpg)
42
Seguridad Discrecional(PostgreSQL / Privi legios)
CONNECT
Permite a los usuarios conectarse a la base de datos especificada.
TEMPORARYTEMP
Permite la creación de tablas temporales en la base de datos especificada.
![Page 43: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/43.jpg)
43
Seguridad Discrecional(PostgreSQL / Privi legios)
EXECUTE
Permite el uso de la función especificada (Sólo aplica a funciones)
![Page 44: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/44.jpg)
44
Seguridad Discrecional(PostgreSQL / Privi legios)
USAGE
Para lenguajes de procedimientos permite el uso del lenguaje especificado (para crear funciones en el
lenguaje especificado)
Para esquemas permite el acceso a los objetos contenidos en el esquema (asumiendo que los
privilegios de los objetos particulares se cumplen)
Para secuencias, permite el uso de la función currval y nextval sobre la secuencia especificada.
![Page 45: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/45.jpg)
45
Seguridad Discrecional(PostgreSQL / Privi legios)
ALL PRIVILEGES
Da todos los privilegios disponibles. La palabra PRIVILEGES es opcional en
PostgreSQL pero su uso es obligatorio en el estándar SQL.
![Page 46: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/46.jpg)
46
Seguridad
Native PostgreSQL restricts DB users with ACLs on views. This means that access
paths to a certain table cannot be described clearly, because multiple views to a table may be defined. Moreover, an
ACL on a table is not evaluated when accessed from a view. Thus, a DB user who
has the authority to define a view can access any information in the database.
Un ejemplo de la clase de problemas que se pueden encontrar...
![Page 47: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/47.jpg)
47
Gracias
¡Gracias!
![Page 48: Seguridad en BD](https://reader031.fdocumento.com/reader031/viewer/2022021503/589eccc11a28ab9f4a8be66b/html5/thumbnails/48.jpg)
48
Seguridad
● Añadir– Seguridad en sistemas estadísticos (O dejarlo
como tarea)