dblink_connect_u — ouvre une connexion distante à une base de données de façon non sécurisée.
dblink_connect_u(text connstr) returns text dblink_connect_u(text connname, text connstr) returns text
dblink_connect_u() est identique à dblink_connect(), à ceci près qu'elle permet à des utilisateurs non-privilégiés de se connecter par toute méthode d'authentification.
Si le serveur distant sélectionne une méthode d'authentification qui n'implique pas de mot de passe, une impersonnalisation et une escalade de droits peut survenir car la session semble émaner de l'utilisateur qui exécute le serveur PostgreSQL™ local. De plus, même si le serveur distant réclame un mot de passe, il est possible de fournir le mot de passe à partir de l'environnement du serveur, par exemple en utilisant un fichier ~/.pgpass appartenant à l'utilisateur du serveur. Cela apporte un risque supplémentaire d'impersonnification, sans parler de la possibilité d'exposer un mot de passe sur un serveur distant qui ne mérite pas votre confiance. C'est pourquoi, dblink_connect_u() est installé initialement sans aucun droit pour PUBLIC, ce qui restreint son utilisation aux seuls super-utilisateurs. Dans certaines cas, le droit EXECUTE sur dblink_connect_u() peut être accordé à quelque utilisateur spécifique digne de confiance, mais cela doit se faire avec une extrême prudence. Il est aussi recommandé que tout fichier ~/.pgpass appartenant à l'utilisateur du serveur ne contienne pas de joker dans le nom de l'hôte.
Pour plus de détails, voir dblink_connect().