Roles de la base de datos y control de acceso

Diseño de bases de datos

Lis Sulmont

Curriculum Manager

Conceder y revocar el acceso a una vista

GRANT privilege(s) o REVOKE privilege(s)

ON object

TO role o FROM role

SELECTPrivilegios: INSERT, UPDATE, DELETE, , etc. Objetos: tabla, vista, esquema, etc. Roles: un usuario de la base de datos o un grupo de usuarios de la base de datos.

GRANT UPDATE ON ratings TO PUBLIC; 
REVOKE INSERT ON films FROM db_user; 
Diseño de bases de datos

Roles de la base de datos

Gestionar los permisos de acceso a la base de datos

Diseño de bases de datos

Crear un rol

Rol vacío

CREATE ROLE data_analyst;

Roles con algunos atributos establecidos

CREATE ROLE intern WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';
CREATE ROLE admin CREATEDB;
ALTER ROLE admin CREATEROLE;
1 http://bit.ly/postgresql_attributes
Diseño de bases de datos

GRANT y REVOKE privilegios de los roles

GRANT UPDATE ON ratings TO data_analyst;
REVOKE UPDATE ON ratings FROM data_analyst;

Los privilegios disponibles en PostgreSQL son:

1 http://bit.ly/postgresql_privileges
Diseño de bases de datos

Usuarios y grupos (ambos son roles)

Un rol es una entidad que puede funcionar como usuario y/o grupo.

Gráfico de roles donde un círculo exterior representa un rol de grupo y tres círculos interiores dentro del círculo exterior son roles de usuario

Diseño de bases de datos

Usuarios y grupos (ambos son roles)

Roles de grupo

CREATE ROLE data_analyst;

Rol de usuario

CREATE ROLE intern WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';
Diseño de bases de datos

Usuarios y grupos (ambos son roles)

Roles de grupo

CREATE ROLE data_analyst;

Rol de usuario

CREATE ROLE alex WITH PASSWORD 'PasswordForIntern' VALID UNTIL '2020-01-01';

GRANT data_analyst TO alex;
REVOKE data_analyst FROM alex;
Diseño de bases de datos

Roles comunes de PostgreSQL

Rol Acceso permitido
pg_read_all_settings Lee todas las variables de configuración, incluso aquellas que normalmente solo son visibles para los superusuarios.
pg_read_all_stats Lee todas las vistas pg_stat_* y utiliza diversas extensiones relacionadas con estadísticas, incluso aquellas que normalmente solo son visibles para los superusuarios.
pg_signal_backend Envía señales a otros backends (por ejemplo: cancelar consulta, terminar).
Más... Más...
1 http://bit.ly/default_roles_postgresql
Diseño de bases de datos

Ventajas y desventajas de los roles

Ventajas

Las funciones siguen vigentes después de eliminar a los usuarios.

Escollos

A veces, un rol otorga demasiado acceso a un usuario específico.

Diseño de bases de datos

¡Practiquemos!

Diseño de bases de datos

Preparing Video For Download...