dblink_connect_u — abre una conexión persistente e insegura a una base de datos remota
dblink_connect_u(text connstr) returns text dblink_connect_u(text connname, text connstr) returns text
dblink_connect_u() es idéntica a
dblink_connect(), excepto que permitirá a los usuarios que no son
superusuarios conectarse utilizando cualquier método de autenticación.
Si el servidor remoto selecciona un método de autenticación que no
involucra una contraseña, entonces se puede producir la suplantación de identidad y la consecuente escalada de
privilegios, porque la sesión parecerá haberse
originado desde el usuario con el que se ejecuta el servidor local de PostgreSQL.
Además, incluso si el servidor remoto exige una contraseña,
es posible que la contraseña sea suministrada desde el entorno del servidor,
como un archivo ~/.pgpass perteneciente al usuario del servidor.
Esto abre no solo un riesgo de suplantación de identidad, sino la
posibilidad de exponer una contraseña a un servidor remoto no confiable.
Por lo tanto, dblink_connect_u() se instala inicialmente
con todos los privilegios revocados de PUBLIC,
haciendo que no sea ejecutable excepto por los superusuarios. En algunas situaciones
puede ser apropiado conceder el permiso EXECUTE para
dblink_connect_u() a usuarios específicos que se consideren
confiables, pero esto debe hacerse con cuidado. También se recomienda
que cualquier archivo ~/.pgpass perteneciente al usuario del servidor
no contenga ningún registro que especifique un nombre de host comodín.
Para más detalles, consulta dblink_connect().