D/ DJANGO CON CRITERIO

UNIDAD 10 · GOBERNANZA DE POSTGRESQL

pgAdmin y acceso temporal verificable

Interfaz gráfica, DB restriction, permisos acumulados y retiro de acceso.

Ilustración: Una interfaz no es la barrera de acceso
Una interfaz no es la barrera de acceso

CAPÍTULO 8 · La base de datos también tiene fronteras

La herramienta de administración no decide los permisos

pgAdmin hace más cómoda la exploración de servidores, tablas y roles. Esa comodidad puede generar una confusión: que lo visible en el árbol representa exactamente lo autorizado o que esconder una base en la interfaz impide acceder a ella. La herramienta presenta operaciones, pero es PostgreSQL quien decide cuáles permite.

Organizamos conexiones con identidades individuales y alcance adecuado. Para una intervención puntual podemos necesitar acceso temporal, con una forma de retirarlo y verificar el resultado. El equipo debe poder usar la interfaz sin compartir indiscriminadamente la credencial más poderosa del servidor.

Esta práctica ayuda a administrar, pero todavía queremos una comprobación independiente de la apariencia de la herramienta. Por eso pasamos a una conexión directa: ejecutar operaciones permitidas y prohibidas nos dará evidencia de que la política existe en la base y no solamente en nuestra manera de navegarla.

Leer esta parte dentro del relato completo →

DEL RELATO A LA PRÁCTICA

Vamos a desarrollar esta decisión con su mapa, explicación, código y ejercicio.

MIRA · CONECTA · COMPRENDE

Una interfaz no es la barrera de acceso

Una interfaz no es la barrera de acceso1. pgAdmin: Organiza conexiones y árbol; 2. DB restriction: Filtra vista, no protege acceso; 3. PostgreSQL: Evalúa roles y privilegios; 4. Revocación: Comprueba membresías y sesiones01pgAdminOrganiza conexiones y árbol02DB restrictionFiltra vista, no protege acceso03PostgreSQLEvalúa roles y privilegios04RevocaciónComprueba membresías y sesiones

Cada carril muestra un ámbito distinto. Compara sus responsabilidades antes de unir sus configuraciones.

Selecciona una pieza para destacar su responsabilidad.

Leer la explicación del mapa
  1. pgAdmin. Organiza conexiones y árbol
  2. DB restriction. Filtra vista, no protege acceso
  3. PostgreSQL. Evalúa roles y privilegios
  4. Revocación. Comprueba membresías y sesiones
Descargar gráfico SVG ↓

¿Para qué sirve?

Ocultar bases del árbol de pgAdmin mejora orden visual, pero un usuario puede usar otro cliente. El control tiene que residir en PostgreSQL y en la política de conexión.

El concepto, explicado

El usuario de la interfaz pgAdmin y el rol PostgreSQL usado al conectarse son identidades distintas. Crear uno no crea automáticamente el otro.

Login/Group Roles permite gestionar roles, atributos y membresías; Privileges y Grant Wizard ayudan con grants. Inspecciona el SQL generado y confirma tipo de objeto antes de guardar.

DB restriction filtra bases visibles en esa conexión, no revoca CONNECT. El control real se prueba con SQL o una nueva conexión fuera de pgAdmin.

VALID UNTIL vence una contraseña para autenticación por contraseña, no todas las formas de autenticación ni permisos ni sesiones activas. REVOKE y NOLOGIN también requieren analizar sesiones y permisos acumulados. Un proceso JIT necesita aprobación, plazo, responsable y cierre verificable.

Implementación paso a paso

  1. Registra conexión con rol personal, base y TLS apropiados.
  2. En Login/Group Roles crea o revisa LOGIN, atributos y Member of sin elevar por conveniencia.
  3. Revisa SQL de cada GRANT sobre base, esquema, tabla o secuencia.
  4. Usa DB restriction como comodidad; prueba acceso real con otro cliente.
  5. Concede acceso temporal a objetos concretos y documenta plazo y motivo.
  6. Al cierre revoca membresía y acceso concedido; evalúa conexiones activas con el administrador autorizado.

Ejemplo en SensorHub

-- Ejemplo sobre un usuario temporal previamente creado y autorizado.
GRANT sh_readonly TO sh_support;
-- Solo si autentica con contraseña, sustituye por un plazo acordado:
-- ALTER ROLE sh_support VALID UNTIL '<FECHA_HORA_CON_ZONA>';

-- Cierre del acceso temporal:
REVOKE sh_readonly FROM sh_support;
ALTER ROLE sh_support NOLOGIN;

-- Inspección por un administrador con facultades de visibilidad apropiadas:
SELECT pid, usename, datname, application_name, state
FROM pg_stat_activity
WHERE usename = 'sh_support';
-- NOLOGIN no termina estas sesiones; su cierre se gestiona por separado.

Cómo leer el ejemplo

  • El ejemplo de cierre supone una identidad temporal; no deshabilites una cuenta permanente con otras funciones.
  • REVOKE quita esa membresía, no permisos obtenidos por otras rutas.
  • No se proporciona un cierre masivo de sesiones: se decide por PID, impacto y política.

Error habitual

Presentar VALID UNTIL o el filtro DB restriction como revocación total automática.

05 / PRACTICAR

Tu turno

Soporte venció su contraseña, pero una sesión antigua sigue conectada. ¿Está terminado el acceso?

Ver solución orientativa

No. Revisa sesiones, permisos directos y heredados, revoca lo temporal y cierra conexiones relevantes mediante operación autorizada si la política lo exige. Conserva evidencia de cierre.

Cómo sabes que funciona

  • El SQL generado por pgAdmin se revisa.
  • El acceso se prueba fuera del árbol visual.
  • La baja comprueba membresías y sesiones.
  • Nunca se comparte la cuenta administrativa para consulta.

Para profundizar

Documentación oficial para comprobar configuración, permisos y condiciones vigentes. Revisión del tema: 2026-10-11.

CONTINUAR LA EXPERIENCIA

El siguiente paso del recorrido:

psql: conexión segura y checklist de permisos →Continuar en modo relato