Title: Tarea 12 + 1: Gestión de Usuarios y Privilegios
Course: 2025 - LISI - Base de Datos Avanzadas 3-3 > Section: Unidad 2 - Seguridad y administración de bases de datos

🎯 Objetivo

Comprender cómo crear, administrar y asignar privilegios a distintos usuarios dentro de PostgreSQL, utilizando roles para establecer distintos niveles de acceso a la base de datos.

🧩 Instrucciones

1. Identificación
Al inicio del documento escribe tu nombre completo y el nombre del profesor.

1. Investigación teórica (breve)
Redacta un resumen corto en tus propias palabras que responda:
  - ¿Qué es un rol en PostgreSQL?
  - Diferencias entre roles con LOGIN (usuarios) y roles sin LOGIN (grupos).
  - ¿Por qué es importante gestionar privilegios en una base de datos?
(Extensión sugerida: 5 a 8 líneas.)

1. Creación de usuarios y roles
Escribe y explica brevemente los comandos necesarios para:
  - Crear dos usuarios:
    - profesor_db
    - alumno_db
  - Crear un rol sin LOGIN llamado grupo_lectura.
  - Asignar el rol grupo_lectura al usuario alumno_db.
(Ejemplo de referencia: CREATE ROLE nombre LOGIN PASSWORD 'contraseña';)

1. Asignación y revocación de privilegios
Muestra los comandos para:
  - Otorgar permisos de lectura (SELECT) a grupo_lectura sobre todas las tablas.
  - Dar permisos de inserción (INSERT) al usuario profesor_db solo en la tabla alumno.
  - Revocar el permiso de inserción al usuario profesor_db.
(Incluye una breve explicación debajo de cada bloque de comandos para que demuestren comprensión.)

1. Modificación de roles
Escribe los comandos para:
  - Permitir a grupo_lectura también consultar vistas (GRANT SELECT ON ALL VIEWS...).
  - Dar al usuario profesor_db permiso para crear bases de datos (ALTER ROLE profesor_db CREATEDB;).
Explica qué efecto tiene cada cambio.

1. Reflexión final
En 5–6 líneas responde:
  - ¿Por qué es importante limitar los permisos de los usuarios en una base de datos?
  - ¿Qué ventajas tiene usar roles en lugar de dar permisos uno por uno?

📁 Evidencia

Elabora un solo documento PDF que incluya:

- La parte teórica (preguntas y respuestas).
- Todos los comandos SQL con una breve explicación de su función.
- La reflexión final.

(No se piden capturas de pantalla ni archivos SQL; solo texto bien redactado y organizado en el PDF.)

🎯 Objetivo

Comprender cómo crear, administrar y asignar privilegios a distintos usuarios dentro de PostgreSQL, utilizando roles para establecer distintos niveles de acceso a la base de datos.

🧩 Instrucciones

1. Identificación
Al inicio del documento escribe tu nombre completo y el nombre del profesor.

1. Investigación teórica (breve)
Redacta un resumen corto en tus propias palabras que responda:
  - ¿Qué es un rol en PostgreSQL?
  - Diferencias entre roles con LOGIN (usuarios) y roles sin LOGIN (grupos).
  - ¿Por qué es importante gestionar privilegios en una base de datos?
(Extensión sugerida: 5 a 8 líneas.)

1. Creación de usuarios y roles
Escribe y explica brevemente los comandos necesarios para:
  - Crear dos usuarios:
    - profesor_db
    - alumno_db
  - Crear un rol sin LOGIN llamado grupo_lectura.
  - Asignar el rol grupo_lectura al usuario alumno_db.
(Ejemplo de referencia: CREATE ROLE nombre LOGIN PASSWORD 'contraseña';)

1. Asignación y revocación de privilegios
Muestra los comandos para:
  - Otorgar permisos de lectura (SELECT) a grupo_lectura sobre todas las tablas.
  - Dar permisos de inserción (INSERT) al usuario profesor_db solo en la tabla alumno.
  - Revocar el permiso de inserción al usuario profesor_db.
(Incluye una breve explicación debajo de cada bloque de comandos para que demuestren comprensión.)

1. Modificación de roles
Escribe los comandos para:
  - Permitir a grupo_lectura también consultar vistas (GRANT SELECT ON ALL VIEWS...).
  - Dar al usuario profesor_db permiso para crear bases de datos (ALTER ROLE profesor_db CREATEDB;).
Explica qué efecto tiene cada cambio.

1. Reflexión final
En 5–6 líneas responde:
  - ¿Por qué es importante limitar los permisos de los usuarios en una base de datos?
  - ¿Qué ventajas tiene usar roles en lugar de dar permisos uno por uno?

📁 Evidencia

Elabora un solo documento PDF que incluya:

- La parte teórica (preguntas y respuestas).
- Todos los comandos SQL con una breve explicación de su función.
- La reflexión final.

(No se piden capturas de pantalla ni archivos SQL; solo texto bien redactado y organizado en el PDF.)