Me gustaría permitir que un usuario (super) de PostgreSQL se autentique con los métodos de autenticación "par" o "md5", preferiblemente usando sockets de dominio Unix locales en ambos casos. El problema es que el orden de las entradas en pg_hba.conf es importante y se aplicará la primera coincidencia.
Lo que tengo:
# TYPE DATABASE USER ADDRESS METHOD
local all harold peer
local all all md5
Lo que me gustaría (sintaxis no válida):
# TYPE DATABASE USER ADDRESS METHOD
local all harold peer-or-md5
local all all md5
Aquí hay más detalles sobre el entorno en el que nos gustaría usar esto:
En este servidor en particular, todas las bases de datos son relativamente pequeñas (<10 MB de datos cada una) y son de solo lectura. El superusuario de Harold los deja caer y se recrean todas las noches. harold también es una cuenta del sistema, por lo que "peer" funciona bien para cronjobs sin contraseña, etc. Luego hay una interfaz web que accede a las bases de datos: esto usa autenticación md5 (el usuario del sistema es el servidor web, el nombre de usuario pg, la contraseña y el nombre db son suministrados por los visitantes). Ahora me gustaría permitir que el usuario de Harold también inicie sesión en la interfaz web. Esto falla debido a la configuración de "par" para Harold.
La solución actual es permitir que la interfaz web se conecte a través de TCP, utilizando
# TYPE DATABASE USER ADDRESS METHOD
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
Además de las entradas locales en el primer ejemplo. Esto funciona, pero prefiero usar enchufes locales aquí también, para el rendimiento y debido a la sensación de que parece ser lo correcto.
es posible? ¿Hay alguna mejor solución para nosotros?